什么是微服务?
- 通过一套拆分后的服务(功能)来开发单体应用的架构风格。
- 每个服务都是独立运行。
- 服务可使用不同技术栈,不同数据存储。
微服务架构的优势?
- 分而治之:单个服务功能内聚吗,方便管理。
- 伸缩性 :能够单独的对指定的功能进行伸缩,扩展
- 快速迭代 :Agile已经是一种趋势,我们可频繁的发布小版本,快速交付需求。
- 独立性 : 独立部署独立开发。
以上不懂的可参考另一篇文章: 白话之为什么需要MicroServices
有优势必然,个人觉得主要有以下几点:
- 团队能力: 不仅仅于开发,需要成员掌握从开发测试到部署整一套流程。(CI/CD,自动化)
- 迭代周期: 各个服务之前存在依赖关系,需要团队多沟通,并协商好版本计划。
- 问题定位: 无法快速定位错误位于哪一个服务。
对于开发团队的要求是比较高的.对于虚拟化容器(Docker)的使用,日志聚合监控等等。云平台可以提供很好的支持。
微服务的目的是有效的拆分应用,实现敏捷.但是其实并不是越“微”越好。
对于划分的粒度,个人觉得并没有一个很好的标准,它是需要针对某个APP进行一个很好的设计。
可能 DDD(领域驱动设计) 会为你提供一些帮助。
网友评论