不要单独去理解或解释“微服务”,要整体理解“微服务架构”
一个“微服务”是在一个语境下、一个背景下才有意义的词,尝试独立去定义或解释它是说不清楚的。
微服务架构是什么?
微服务架构是一种架构风格(或叫架构模式)、以及一组成功架构实践的总称。有时也代表一种架构思想。
微服务架构就是:以一组“按领域功能解耦的、彼此之间以轻量级通讯框架交互的、可独立开发/测试/发布/部署/升级和替换的、较小粒度的组件”的方式构建应用的架构模式!
微服务架构的典型特征
1、 按领域功能边界解耦
- 高内聚、低耦合
- 单一职责
- 全功能团队(麻雀虽小,五脏俱全)
- 不是按技术纬度分团队,如分层
2、 轻量级通信框架
- 非集中式总线
- 分布式架构
- 高性能
3、 独立性、自治
- 可独立开发、测试、发布、部署、升级
- 可独立技术实现,如语言选择
- 独立数据模型,不在数据层面耦合
- 可独立数据库部署,执行态在数据层面也是解耦的
- 可单独替换,面向API设计、开发态与执行期解耦
- 无状态
4、 小粒度
- 两个披萨团队、TOT
5、 基础设施自动化,部署一个应用/单元,和部署100个应用/单元,没有显著差别(部署时间、人力等)《一组成功实践》
- 自动化部署,弹性伸缩
- infrastructure as code
- CI、CT&自动化测试、CD
- 服务治理,如服务调用链
6、 面向失败的设计
- 防雪崩、防扇出
- 熔断、限流(成功实践)
- 服务调用链、日志服务
7、 持续演进
- 兼容性
网友评论