速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

降本增效:Grab 如何在亚马逊云科技上将 Kafka 消费者流量成本降到零

  • 2023-09-07
    北京
  • 本文字数:1076 字

    阅读完需:约 4 分钟

大小:597.00K时长:03:23
降本增效:Grab如何在亚马逊云科技上将Kafka消费者流量成本降到零

Kafka 2.3 引入了将 Apache Kafka 消费者连接到相同可用区域(AZ)代理节点的能力,Grab 利用这一能力重新配置了消费者,将亚马逊云科技上的流量成本降低为零。这一更改大大降低了在亚马逊云科技上运行 Apache Kafka 的基础设施总成本。

 

Grab 以 Apache Kafka 为中心创建了一个流数据平台,支撑公司所有的产品。遵循 Kafka 最佳实践,他们的初始配置为每个 Kafka 分区三个副本,横跨亚马逊云科技区域中三个不同的可用区。负责该平台的团队观察到,跨 AZ 流量占了他们 Kafka 平台一半的成本,因为亚马逊云科技对跨AZ数据传输收费

 

对于初始设置的成本,Fabrice HarbulotQuang Minh Tran的看法如下:

这种设计的问题在于,它会产生惊人的跨 AZ 网络流量。这是因为,在默认情况下,Kafka 客户端只与分区 leader 通信,而分区 leader 有 67%的概率驻留在不同的 AZ 中。

 

跨 AZ 流量包括新发布的消息、代理之间的数据复制和消费者获取的消息。



默认消费者配置,消费者从分区 leader 获取数据(图片来源:Grab工程博客

 

Apache Kafka 2.3开始,可以将消费者配置为从分区副本中获取数据了。这样,如果消费者只从同一 AZ 中的代理获取消息,就不会产生数据传输成本了。

 

这个特性要求 Kafka 代理和消费者都知道其所在的 AZ。对于 Kafka 代理,团队会使用 AZ ID(az1、az2、az3 等)配置broker.rack 。AZ ID 与 AZ 名称(1a、1b、1c 等)不同,因为AZ名称在亚马逊云科技账户间不一致。他们还将参数replica.selector.class的值设置为org.apache.kafka.common.replica.RackAwareReplicaSelector

 

在消费者端,团队更新了内部 Kafka SDK,基于 EC2 主机元数据用 AZ ID 配置client.rack 参数,为的是应用程序团队可以通过导出环境变量来启用该功能。



自定义消费者配置,消费者从最近的副本获取数据(图片来源:Grab工程博客

 

在某些服务上应用新设置后,团队观察发现,跨 AZ 流量成本下降,并且有一些值得注意的副作用。首先,端到端延迟最多增加了 500 毫秒。考虑到大多数消费者从副本获取消息,这也是意料之中的。延迟增加是由复制时间导致的。理论上,任何对延迟敏感的数据流都应该始终从分区 leader 获取数据,即使那样会产生额外的成本。

 

其次,在代理维护(停机)时,直接从副本获取消息的消费者可能会遇到代理不可用的情况,因此,它们应该等待/重试,直到同一 AZ 中的代理恢复在线。最后,团队观察到,代理的负载与跨 AZ 的消费者数量有关。这意味着,消费者的均匀分布对于确保代理的负载平衡至关重要。

 

原文链接:

https://www.infoq.com/news/2023/07/grab-apache-kafka-aws-cost/


相关阅读:

Cloudflare的Kafka之旅:万亿级消息处理实践

使用Strimzi提高Kafka集群的安全性


2023-09-07 08:002398

评论

发布
暂无评论
发现更多内容

什么是仿真软件?推荐几个简单易上手的几款CAE软件!

智造软件

CAE 仿真软件 仿真技术 CAE软件

推特(Twitter)蓝V,怎么升级蓝V

跨境

twitter VISA

E往无前|腾讯云大数据ES索引原理剖析及写入性能优化最佳实践

腾讯云大数据

ES

联邦云,一站式多云多活平台!

如水

联邦云 多云多活

喜讯!MIAOYUN正式获封“专精特新”中小企业称号!

MIAOYUN

四川省创新型中小企业 专精特新 MIAOYUN 专精特新中小企业 成都高新梯度培育企业

天谋科技荣获 2023 OpenCloudOS 社区年度优秀贡献企业 | 企业深度参与开源又添认可

Apache IoTDB

钉钉集成金蝶云星辰丨聚道云助力企业实现财务流程自动化

聚道云软件连接器

案例分享

畅捷通的 Serverless 探索实践之路

阿里巴巴云原生

阿里云 Serverless 云原生

TDengine 技术培训班开课,来听“地震烈度速报与预警工程”成功案例

TDengine

tdengine 时序数据库

python3中,//、/ 的区别

GoodTime

Python 水仙花数 // /

Databend 部署与运维概要:本地部署 Meta 服务并利用 Kubernetes 管理 Query 服务

Databend

基于开源模型搭建实时人脸识别系统(六):人脸识别(人脸特征提取)

EquatorCoco

开源 刷脸支付 人脸

京东方董事长署名文章:新元肇启:敬征程,致未来!

科技热闻

MATLAB R2023b for mac(数值计算和科学编程软件)v23.2.0.2409890永久激活版

mac

苹果mac Windows软件 MATLAB R2023b 科学计算软件

主编夜话,2023 技术圈儿大事件盘点丨 RTE 开发者日报 Vol.115

声网

2023:突破迷雾,追寻不惑之旅

BY林子

软件开发者必读!2024年30大趋势提前曝光!

SoFlu软件机器人

联邦云高效的云计算解决方案

如水

联邦云 多云多活

重磅发布|博睿数据2023年度精选案例集—— IT运维之光

博睿数据

可观测性

TDengine 2023 年成绩单“曝光”,六大维度彰显卓越成就

TDengine

tdengine 时序数据库

爬虫业务中,为什么使用高匿代理ip仍然会被识别出来呢?

巨量HTTP

数据采集 代理IP http代理

BDTC2023:CloudberryDB开源创新与实践

酷克数据HashData

支付宝 v3 验签如何实现

盐焗代码虾

Java 支付宝 验签

仪表盘、数据分析新增分享功能及应用服务下新增服务实例菜单

博睿数据

AfterShip 举办首届 Hack-day 论坛,用技术助力业务增长,赋能研发提效

科技热闻

聚道云软件连接器助力企业微信与U9无缝对接,审批通知考勤一网打尽

聚道云软件连接器

案例分享

市场上常见的5种LED异形屏

Dylan

设计 场景 LED LED显示屏

元数据中心的数据有哪些分类?

如水

元数据

云原生应用开发模式的一个构想

Jade@pluto-lang

Serverless Faas 云原生(Cloud Native) aws lambda Pluto

PTS 3.0:可观测加持的下一代性能测试服务

阿里巴巴云原生

阿里云 云原生 性能压测

QCN9274, QCN9024-QCA9880 three different chips - how are they connected?

wifi6-yiyi

QCN9024 qcn9274

降本增效:Grab如何在亚马逊云科技上将Kafka消费者流量成本降到零_云端开发_Rafal Gancarz_InfoQ精选文章