特点
通过将⼀个应⽤程序设计构建为⼀组松散耦合的协作服务。每个服务都实现了⼀部分的相关功能。对应于Scale Cube(参考)的Y轴。服务使⽤HTTP / REST等同步协议或AMQP等异步协议进⾏通信。可以彼此独⽴地开发和部署服务。每个服务都有⾃⼰的数据库。 优点
⽀持⼤型复杂应⽤程序的持续交付和部署
更好的可测试性 - 测试服务更⼩,速度更快;
液晶大屏拼接墙更好的可部署性 - 可以独⽴部署服务;陶瓷球
能够围绕多个⾃动团队组织开发⼯作。
每个微服务的代码规模更⼩
使开发⼈员更容易理解和开发;
开发⼈员的在使⽤IDE时更加⾼效;混纺纱
应⽤程序启动速度更快,加快了部署速度。
改善了整个应⽤体系的故障隔离能⼒
消除对技术堆栈的长期绑定
缺点
分布式系统的额外复杂性
开发⼯具没有针对分布式系统的特定⽀持;
集成测试更加困难;
必须实现分布式的通信机制;
处理分布式事务的复杂度;
要处理多个开发团队之间的协调⼯作。
部署的复杂性
容器化部署的复杂性;
容器编排和服务治理的复杂性;
需要更多公共服务的⽀持,例如服务发现,服务指标监控等。
额外的内存消耗
⾸先要解决的问题
如何将⼀个⼤型复杂的应⽤程序分解为微服务?
微服务架构是⼀组架构模式和特性的集合,这个集合很⼤程度上定义了什么是微服务,也说明了如何应⽤微服务架构来构建⼤型/复杂应⽤程序。
部署模式
公共特性
通信模式
外部访问模式
服务发现模式
可靠特性
变电箱
水焊机数据管理模式
安全特性
测试特性
可监控特性
拉碗UI模式
相关⽂章
你现在的⽓质⾥,藏着你⾛过的路,读过的书,爱过的⼈。