特点
- 微服务粒度
- 独立进程
- 围绕业务建模
- 轻量级通信(独立部署)
- 去中心化的管理
如何设计
整体设计
- 水平分层(先)
- 垂直业务拆分(在水平基础上)
每层设计
- 微服务(业务单元垂直拆分)
- 无状态化
- 独立进程、部署、运维
高可用
- 冗余
- 自动恢复
柔性设计
系统降级
拒绝部分请求
- 拒绝老请求
- 减轻微服务请求处理数量
- 确保新请求正常响应
- RPC队列方式
- 优先级请求方式
- 非核心请求直接丢弃
- 随机拒绝方式
- 随机丢弃一定比例请求
关闭部分服务
围绕业务决定。
数据层降级
更新请求
- 持久到消息队列
- 只更新缓存
读请求
- 读缓存
数据补齐
- 消息队列->数据库(恢复)
实现
Spring Cloud