- 8
- 0
- 约1.87千字
- 约 9页
- 2022-03-21 发布于浙江
- 举报
?
?
饿了么异地多活技术实现API-Router的设计与实现
?
?
背景:
饿了么随着业务量的增长,单个数据中心的容量无法支撑全部流量,同时传统机房冷备份方式的缺陷,促使饿了么异地多活应运而生;而作为多活重要组件之一的API-Router,扮演着客户端入口流量到后端机房路由的重要角色,当一个机房出现故障甚至宕机,可以实现机房快速切换。
?
设计目标:
1、入口流量可以根据sharding key规则路由到对应的机房(准确的说是ezone);
2、配合机房切换规则,能实现流量的转移;
3、尽可能的实现高性能、高可用、高并发,保护后端服务、削峰填谷;
前两点,主要是API-Router所需要实现的主要功能;第三点,是面对饿了么业务体量成倍的上涨带来的挑战所需要解决的问题;因此,API-Router定位为一个HTTP反向代理和负载均衡器,在此基础上实现路由的分发。
?
一、流量路由实现篇:
API-Router根据业务分集群部署在云上,参考饿了么异地多活的整体架构,API-Router的物理架构如下,
1、API-Router从Router控制台获取维护的每个域名的ezone到数据中心地址的映射关系;
2、API-Router将订阅GZS的关于shard到机房ezone的路由表;
3、API-Router在内存中,将请求头中的sharding key(地理位置、商户ID、订单
原创力文档

文档评论(0)