关于微服务的理解
如何理解微服务,解决什么问题,有什么好处。
-
理解:单一职责原则,把相同原因而变化的东西聚合到一起,把不同原因而变化的东西分离开来
就比如,社会岗位分工一样,每个人因岗位的不同,处理的内容不同,
所以可以把每个岗位看做是单一职责原则。
服务之间均通过网络调用进行通信,从而加强服务之间的隔离性,避免紧耦合。
通过暴露服务API,给其对外调用,让其作为平台服务提供给消费方使用 -
好处:
- 技术的异构性:比如博客论坛帖子 ,社交,图片 三者后面的存储可能是文档存储,图数据库,bloc存储,也可能是不同语言及框架开发。但其对外提供服务就3个服务。
- 弹性:当其中某一个服务不可用时,不会影响到其他服务,同样的实例可以运行在 不同的机器上来降低功能不可用的概率。功能可用降级
- 扩展: 在帖子,社交,图片3个服务中,我们可以部署多个实例来运行他们,每一个服务可以运行在不同的机器上,也可以运行在同一台机器上,方便扩展。
- 可组合性:可以方便的组合各种业务场景,将微小的服务组合到一起,比如,订单,支付,仓库。以订单服务串联后面其他微小服务。
-
解决什么问题:微服务实际上面是一种理念,是由一个MartinFlower和James Lewis在2014年合写的一个关于微服务的学术性文件,详细阐述了微服务。微服务框架可以算的上是一种互联网服务架构的演进思想。总结了当今互联网架构的一些经验,从建模服务,集成,分解单块系统,部署,测试,监控,安全等多方面来诠释。
文章部分内容来自 《微服务设计》——Sam Newman