作者:刘宇
CSDN博客地址:https://blog.csdn.net/liuyu973971883
有部分资料参考,如有侵权,请联系删除。如有不正确的地方,烦请指正,谢谢。
一、什么是微服务
Martin Fowler:微服务是一种架构风格,这种开发方法,是以开发一种小型服务的方式来开发一个独立的应用系统。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。
二、微服务设计原则
- 单一职责原则
- 服务自治原则
- 轻量级通信原则
- 接口明确原则
三、微服务的优缺点
3.1、优点:
- 开发简单
- 技术栈灵活
- 服务独立
- 按需扩展
3.2、缺点:
- 运维复杂
- 分布式的复杂性
- 数据一致性问题
- 接口调整成本高
- 集成测试复杂性
- 重复代码
- 监控问题
四、微服务特性
- 每个微服务可独立运行在自己的进程里
- 一系列独立运行的微服务共同构建起了整个系统、每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等
- 微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用