1.概述
微服务是系统架构上的一种设计风格,主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RestFul API进行通信协作。
①围绕着系统中的某一项或一些耦合度较高的业务功能进行构建
②维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制
③以轻量级通信协议为基础,可以使用不同的语言编程
2.单体系统
单体应用由于面对的业务需求更为宽泛,不断扩大的需求会使得单体应用变得越来越臃肿。产生的问题:
①由于部署在一个进程内,修改一个功能部署上线会影响其他功能的运行
②各个功能模块使用场景、并发量、消耗的资源类型各不相同,对于资源利用相互影响导致难以评估各模块的系统容量
③随着系统发展,维护成本高且难以控制
3.微服务面临的挑战
①运维:维护的进程数量大大增加
②接口一致性:拆分服务将代码依赖转为服务间通信依赖,对原接口修改,交互方也需协调这种改变
③分布式复杂性:微服务系统架构需靠考虑分布式环境问题,如:网络延迟、分布式事务、异步消息等