本文说明了微服务架构风格的优缺点,以及微服务架构的模式集合。html
特色
微服务架构是一组架构模式和特性的集合,这个集合很大程度上定义了什么是微服务,也说明了如何应用微服务架构来构建大型/复杂应用程序。前端

遵循微服务架构的模式和特性,经过将一个应用程序设计构建为一组松散耦合的协做服务。每一个服务都实现了一部分的相关功能。对应于Scale Cube(请参考分布式系统三维可缩放模型)的Y轴。数据库
服务使用HTTP / REST等同步协议或AMQP等异步协议进行通讯。能够彼此独立地开发和部署服务。每一个服务都有本身的数据库。后端

优势
支持大型复杂应用程序的持续交付和部署
- 更好的可测试性 - 测试服务更小,速度更快;
- 更好的可部署性 - 能够独立部署服务;
- 可以围绕多个自动团队组织开发工做。
每一个微服务的代码规模更小
- 使开发人员更容易理解和开发;
- 开发人员的在使用IDE时更加高效;
- 应用程序启动速度更快,加快了部署速度。
改善了整个应用体系的故障隔离能力
消除对技术堆栈的长期绑定
缺点
分布式系统的额外复杂性
- 开发工具没有针对分布式系统的特定支持;
- 集成测试更加困难;
- 必须实现分布式的通讯机制;
- 处理分布式事务的复杂度;
- 要处理多个开发团队之间的协调工做。
部署的复杂性
- 容器化部署的复杂性;
- 容器编排和服务治理的复杂性;
- 须要更多公共服务的支持,例如服务发现,服务指标监控等。
额外的内存消耗
首先要解决的问题
如何将一个大型复杂的应用程序分解为微服务?安全
分解模式
部署模式
特性
通讯模式
外部访问模式
服务发现模式
可靠特性
数据管理模式
安全特性
测试特性
可监控特性
UI模式
相关文章