努力了一周的微服务 demo,欢迎访问

2018-10-12 16:20:57 +08:00
 daijinming

努力了一周的微服务 demo,欢迎拍砖 ,https://www.jianshu.com/c/d512bd2ddbc5

3779 次点击
所在节点    程序员
8 条回复
PulpFunction
2018-10-12 16:39:49 +08:00
写的挺细致,

个人比较讨厌加句号

学习了
Kilerd
2018-10-12 20:17:30 +08:00
你这算哪门子的微服务?
撑死算个前后端分离,外加后端用 docker 起起来。1.4 代码用 git 管理也能写一个点也是服。
微服务起码来两个服务吧,你的呢?
Gateway 在哪里?服务发现,服务注册呢?
Retry 机制也得有吧?
微服务基本高度依赖于 CICD,也没发现你有写出来。
v2dead
2018-10-12 20:46:55 +08:00
老哥不用这么激动,虽然楼主确实对微服务可能有所误解。并不是上了 docker,写个 api 就是微服务了,微服务化更多的是对业务层面的拆解,更靠近工程方面。
其实这种东西你要做过相应的工程才知道这么做有什么优势,业务量级,复杂性达到一定程度才能理解这么做有什么实际的意义,你这光学个形,还画歪了。
像规模不达到一定程度,微服务化除了恶心自己以外没什么用处。
blessyou
2018-10-12 20:58:56 +08:00
😂这算是前后端分离吧
znood
2018-10-13 07:09:54 +08:00
接楼上,楼主研究了一周还是没搞懂微服务是什么,跟 Docker/Kubernetes 没有直接关系,只是一种系统架构,Docker (部署)能够更好的发挥微服务的优势,所以被炒起来的概念,还有 Docker 不是 linux 微内核。

楼主还需要多加学习,不能了解一点点概念就开始吹嘘。

我的笔记:
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API )。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

微服务是软件开发中把一个单一的应用拆分成一系列微服务的架构方法。每一个服务都有其独特且定义良好的角色,有自己的进程,并通过 HTTP API 或者消息进行通信。在同一应用中,每个微服务可以独立于同级其他的服务,进行部署、升级、扩展和重启。它们通常由自动化系统进行编排,使得在不影响最终用户的情况下,对实时应用程序的频繁更新成为可能。

1、small service 这个好理解,就是微服务就是小服务。
2、independently deployable 可独立部署。微服务就是将原来的共享库的依赖方式,改为远程调用的依赖方式,每个微服务都是独立部署的服务。
3、fully automated deployment 完全的自动化部署。这点往往被大家忽略,为什么微服务就要完全的自动化部署呢?因为以前的几个服务,被拆分为成百上千的服务,如果没有完全的自动化部署,基本上是不可维护的。当然,你可以说『我就是不差钱,我就招上千个人来管这些服务』:)就不叫微服务了?也能行,但这也违背了我们搞微服务的目标吧。


IBM 文章:
解析微服务架构(一):什么是微服务
https://www.ibm.com/developerworks/community/blogs/3302cc3b-074e-44da-90b1-5055f1dc0d9c/entry/%E8%A7%A3%E6%9E%90%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84_%E4%B8%80_%E4%BB%80%E4%B9%88%E6%98%AF%E5%BE%AE%E6%9C%8D%E5%8A%A1?lang=en
解析微服务架构(二):融入微服务的企业集成架构
https://www.ibm.com/developerworks/community/blogs/3302cc3b-074e-44da-90b1-5055f1dc0d9c/entry/%E8%A7%A3%E6%9E%90%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84_%E4%BA%8C_%E8%9E%8D%E5%85%A5%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%9A%84%E4%BC%81%E4%B8%9A%E9%9B%86%E6%88%90%E6%9E%B6%E6%9E%84?lang=zh
解析微服务架构(三):微服务重构应用及 IBM 解决方案
https://www.ibm.com/developerworks/community/blogs/3302cc3b-074e-44da-90b1-5055f1dc0d9c/entry/%E8%A7%A3%E6%9E%90%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84_%E4%B8%89_%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%87%8D%E6%9E%84%E5%BA%94%E7%94%A8%E5%8F%8AIBM%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88?lang=zh
q397064399
2018-10-13 07:32:00 +08:00
@Kilerd #2 你这也算不上是哪门子微服务,只不过是个分布式系统而已 ,
Martin Flower 对微服务做过明确的定义

其中有一点很明确,那就是微服务是一种架构风格,手段是分布式,目标是从业务上考量
对单体应用的系统进行拆分 隔离业务的复杂性 将单体应用进行划分 提升整体系统的可靠性。

从实践上来看,不从业务上考量如何拆分系统的微服务都是打着微服务 耍流氓而已,只不过是是用到了
一些分布式系统的优点而已,这些 限流 注册 在微服务概念还没有被提出的时候 早就有人在做了

最重要的是系统划分,而不是技术 限流 注册 XX 技术都只是次要属性,关键是划分,
目前 Martin Flower 提出理想的划分方式 是 领域驱动建模
Kilerd
2018-10-13 10:45:44 +08:00
@q397064399 是是是,你说得都对,我不认为楼主写出这样水平的文章,还能知道啥是 DDD。
daijinming
2018-10-14 09:10:07 +08:00
@Kilerd @PulpFunction @blessyou @v2dead @q397064399 @znood 我会继续努力,希望能逐渐搞明白微服务的开发和部署

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/497101

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX