东南亚Grab如何降低Kafka流量成本?
💡
原文中文,约3000字,阅读约需7分钟。
📝
内容提要
Grab是东南亚领先的超级应用平台,通过提供广泛的按需服务,如叫车、送餐、移动支付等,帮助用户满足各种需求。Coban团队通过让Kafka消费者从最近的复制副本获取数据,成功降低了年度数据流成本。他们通过升级Kafka集群并进行配置更改,实现了这一功能。然而,启用该功能会增加端到端延迟,并在代理轮换期间无法优雅地隔离代理。此外,消费者的位置也会影响代理服务器的负载。目前,他们正在积极宣传和倡导更多用户采用这一功能。
🎯
关键要点
- Grab是东南亚领先的超级应用平台,提供多种按需服务,包括叫车、送餐和移动支付。
- Coban团队通过让Kafka消费者从最近的复制副本获取数据,成功降低了年度数据流成本。
- Grab平台主要托管在AWS云上,跨越三个可用区,跨可用区流量占总成本的一半。
- Kafka 2.3引入了消费者从分区副本获取数据的能力,需进行额外配置以实现成本效益。
- 升级过程分为三个阶段:升级Zookeeper、升级Kafka到3.1版、升级经纪商间协议版本。
- Kafka消费者需要配置更改以从最近的副本获取数据,并利用机架感知功能。
- Coban内部的Golang Kafka SDK已更新,以支持从最近的副本获取数据。
- 启用新功能后,观察到端到端延迟增加,最多500毫秒,影响对延迟敏感的使用案例。
- 在代理轮换期间,Kafka消费者可能无法优雅地隔离代理,需处理连接错误和重试机制。
- 消费者位置不均衡可能导致代理服务器负载倾斜,影响成本效率。
➡️