第一课 微服务概览与治理
一、微服务概览
-
单体架构
- 单体的原因(缺点):应用太复杂,无法拓展,可靠性低
应对方式:化繁为简,分而治之
-
微服务起源
- SOA(面向服务)& 微服务
- 核心:小而美
- 代码少,bug少,易测试,易维护,易迭代
- 单一职责:专注,低耦合
-
微服务定义
- 服务关注单一业务 原子服务
- 服务间轻量级通信 独立进程
- 可自动独立部署 隔离部署
- 可用不同语言和存储技术 去中心化治理服务
-
微服务缺点
- 分布式应用:需要进行进程间通信,导致消息速度慢,服务不可用等局部失效问题
- 分区的数据库架构:一致性的保证
- 如何测试基于微服务架构的应用也很复杂
- 服务模块间的依赖关系复杂
-
组件服务化
- 传统方式:库与应用绑定,运行在进程中,库的改变引起应用的重新部署
- 方式
- kit 微服务基础库
- service 业务代码 + kit依赖 + 第三方依赖
- rpc + message queue
-
按业务组织服务
- 服务所提供的能力需要与业务功能相对应
-
去中心化
- 数据、治理、技术 去中心化
- 有利于服务的独立性和隔离
-
自动化的基础设施
- 自动化测试+部署
-
可用性兼容性
- 保持服务接口的兼容性
- 发送的数据要保守,最小化发送必要信息
- 接收数据开放,最大限度容忍冗余数据