什么是微服务什么是微服务:微服务写的最全的一篇文章微服务写的最全的一篇文章
本文主要讲解的是微服务,详细阐述了微服务的利弊、服务分层、微服务的服务发现的三种方式微服务的路由发现体系等相关
知识。
今年有人提出了2018年微服务将疯狂至死,可见微服务的争论从未停止过。在这我将自己对微服务的理解整理了一下,希望对大家有所帮
助。
1.什么是微服务什么是微服务
1)一组小的服务(大小没有特别的标准,只要同一团队的工程师理解服务的标识一致即可)
2)独立的进程(java的tomcat,nodejs等)
3)轻量级的通信(不是soap,是http协议)
4)基于业务能力(类似用户服务,商品服务等等)
5)独立部署(迭代速度快)
6)无集中式管理(无须统一技术栈,可以根据不同的服务或者团队进行灵活选择)
ps:微服务的先行者Netflix公司,开源了一些好的微服务框架,后续会有介绍。
2. 怎么权衡微服务的利于弊怎么权衡微服务的利于弊
利:
强模块边界 。(模块化的演化过程:类-->组件/类库(sdk)-->服务(service),方式越来越灵活)
可独立部署。
技术多样性。
弊:
分布式复杂性。
最终一致性。(各个服务的团队,数据也是分散式治理,会出现不一致的问题)
运维复杂性。
测试复杂性。
3. 企业在什么时候考虑引入微服务企业在什么时候考虑引入微服务
从生产力和系统的复杂性这两个方面来看。公司一开始的时候,业务复杂性不高,这时候是验证商业模式的时候,业务简单,用单体服务反
而生产力很高。随着公司的发展,业务复杂性慢慢提高,这时候就可以采用微服务来提升生产力了。至于这个转化的点,需要团队的架构师来进
行各方面衡量,就个人经验而言,团队发展到百人以上,采用微服务就很有必要了。
有些架构师是具有微服务架构能力,所以设计系统时就直接设计成了微服务,而不是通过单服务慢慢演化发展成微服务。在这里我并不推荐
这种做法,因为一开始对业务领域并不是很了解,并且业务模式还没有得到验证,这时候上微服务风险比较高,很有可能失败。所以建议大家在
单服务的应用成熟时,并且对业务领域比较熟悉的时候,如果发现单服务无法适应业务发展时,再考虑微服务的设计和架构。
4.微服务的组织架构微服务的组织架构
评论0