微服务设计 (1-微服务)
微服务
领域驱动设计 : 用代码呈现真实世界的重要性,并且告诉我们如何更好地进行建模
持续交付理论 : 告诉我们如何更有效及更高效地发布软件产品,并指出保持每次提交均可发布的重要性
六边形架构理论 :
参考:http://www.cnblogs.com/Leo_wl/p/4418663.html
什么是微服务
微服务就是一些协同工作的小而自治的服务。
- 服务应该多小
微服务将单一职责原则应用在独立的服务上,根据业务的边界来确定服务的边界。
如果你不再感觉你的代码库过大,可能它就足够小了。
该服务是否能够很好地与团队结构相匹配。如果代码库过大,一个小团队无法正常维护,那么很显然应该将其拆成小的。
- 自治性
一个微服务就是一个独立的实体。
主要好处
技术异构性
弹性
如果系统中的一个组件不可用了,但并没有导致级联故障,那么系统的其他部分还可以正常运行。
扩展
简化部署
与组织结构相匹配
可组合性
在微服务架构中,系统会开放很多接缝供外部使用。当情况发生改变时,可以使用不同的方式构建应用,而整体化应用程序只能提供一个非常粗粒度的接缝供外部使用。
对可替代性的优化
微服务架构的团队可以在需要时轻易地重写服务,或者删除不再使用的服务。
面向服务的架构
SOA(Service-Oriented Architecture,面向服务的架构)是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。
由于我们对项目的系统和架构有着更好的理解,所以能够更好地实施SOA,而这事实上就是微服务架构。就像认为XP或者Scrum是敏捷软件开发的一种特定方法一样,你也可以认为微服务架构是SOA的一种特定方法。
转载请注明:转载自srzyhead的博客(https://srzyhead.github.io)
本文链接地址: 微服务设计 (1-微服务)