微服务架构风格

本文说明了微服务架构风格的优缺点,以及微服务架构的模式集合。

特点

微服务架构是一组架构模式和特性的集合,这个集合很大程度上定义了什么是微服务,也说明了如何应用微服务架构来构建大型/复杂应用程序。

遵循微服务架构的模式和特性,通过将一个应用程序设计构建为一组松散耦合的协作服务。每个服务都实现了一部分的相关功能。对应于Scale Cube(请参考分布式系统三维可缩放模型)的Y轴。

服务使用HTTP / REST等同步协议或AMQP等异步协议进行通信。可以彼此独立地开发和部署服务。每个服务都有自己的数据库。

优点

支持大型复杂应用程序的持续交付和部署

  • 更好的可测试性 - 测试服务更小,速度更快;
  • 更好的可部署性 - 可以独立部署服务;
  • 能够围绕多个自动团队组织开发工作。

每个微服务的代码规模更小

  • 使开发人员更容易理解和开发;
  • 开发人员的在使用IDE时更加高效;
  • 应用程序启动速度更快,加快了部署速度。

改善了整个应用体系的故障隔离能力

消除对技术堆栈的长期绑定

缺点

分布式系统的额外复杂性

  • 开发工具没有针对分布式系统的特定支持;
  • 集成测试更加困难;
  • 必须实现分布式的通信机制;
  • 处理分布式事务的复杂度;
  • 要处理多个开发团队之间的协调工作。

部署的复杂性

  • 容器化部署的复杂性;
  • 容器编排和服务治理的复杂性;
  • 需要更多公共服务的支持,例如服务发现,服务指标监控等。

额外的内存消耗

首先要解决的问题

如何将一个大型复杂的应用程序分解为微服务?

分解模式

部署模式

特性

通信模式

外部访问模式

服务发现模式

可靠特性

数据管理模式

安全特性

测试特性

可监控特性

UI模式

相关文章

posted @ 2018-07-06 14:43  羽客  阅读(1118)  评论(0编辑  收藏  举报