微服务架构风格
特点 通过将一个应用程序设计构建为一组松散耦合的协作服务。每个服务都实现了一部分的相关功能。对应于Scale Cube(参考分布式系统三维可缩放模型)的Y轴。 服务使用HTTP / REST等同步协议或AMQP等异步协议进行通信。可以彼此独立地开发和部署服务。每个服务都有自己的数据库。 优点 支持大型复杂应用程序的持续交付和部署 更好的可测试性 - 测试服务更小,速度更快; 更好的可部署性 - 可以独立部署服务; 能够围绕多个自动团队组织开发工作。 每个微服务的代码规模更小 使开发人员更容易理解和开发; 开发人员的在使用IDE时更加高效; 应用程序启动速度更快,加快了部署速度。 改善了整个应用体系的故障隔离能力 消除对技术堆栈的长期绑定 缺点 分布式系统的额外复杂性 开发工具没有针对分布式系统的特定支持; 集成测试更加困难; 必须实现分布式的通信机制; 处理分布式事务的复杂度; 要处理多个开发团队之间的协调工作。 部署的复杂性 容器化部署的复杂性; 容器编排和服务治理的复杂性; 需要更多公共服务的支持,例如服务发现,服务指标监控等。 额外的内存消耗 首先要解决的问题 如何将一个大型复杂...