东南亚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消费者可能无法优雅地隔离代理,需处理连接错误和重试机制。
  • 消费者位置不均衡可能导致代理服务器负载倾斜,影响成本效率。
➡️

继续阅读