单体应用
从小王所在城市(北京)到支付宝的生产机房(杭州)进行一次异地请求。
因为是单体应用,应用内的调用都是进程调用,时长忽略不计。
假设数据库调用为10次,因为和业务服务器在同机房,调用时长可以忽略不计。
单机房服务化
耗时比单体应用大
分库分表

同城多机房阶段一

同城多机房阶段二

两地三中心

总结
| 架构类型 | 优势 | 问题 |
|---|---|---|
| 单体应用 | 网络开销小 | 扩展性差,维护困难 |
| 单机房服务化 | 解耦,可扩展 | 容量受限,机房单节点 |
| 同城多机房阶段一 | 突破但机房容量瓶颈 | 非必要的跨机房网络开销大 |
| 同城多机房阶段二 | 非必要的跨机房网络开销小;机房级容灾能力 | 城市级单点 |
| 两地三中心 | (理论上的)异地容灾能力 | 网络耗时与数据一致性的矛盾 |
蚂蚁金服单元化实践
数据库连接瓶颈

单元化设想

单元化设计原则
- 核⼼心业务单元化
- 保证核⼼心业务单元分⽚片均衡(UID)
- 核⼼心业务尽量量⾃自包含(调⽤用封闭)
- ⾯面向逻辑分区设计,⽽而不不是物理理部署
逻辑单元与物理数据中心

两地三中心的一种典型部署

向三地五中心演进

三地五中心的一种典型部署



城市级容灾


技术组件
单元化流量量管控

全局服务注册中⼼

统⼀一路路由规则

注解驱动的 RPC 路路由


小结
- 多层防线,迷途知返,尽可能早进⼊入正确的单元
- 单元粒度的服务发现
- 全局统⼀一路路由规则
- 业务透明的单元化 RPC 框架
- DAL层最后兜底,确保数据正确性