返回博客

澎贝科技 Palmpay 使用 AutoMQ 替换 Kafka,成本优化 50%+

关于 Palmpay Palmpay 是一家金融科技公司,专注于为用户提供便捷的移动支付和金融服务。 Palmpay 是目前非洲大陆增长最快的金融科技企业。作为金融科技创新者,PalmPay致力于为用户及商户提供更普惠、安全、灵活的数字支付体验,推动非洲普惠金融发展。 Palmpay 在业务中大量使

澎贝科技 Palmpay 使用 AutoMQ 替换 Kafka,成本优化 50%+

关于 Palmpay

Palmpay 是一家金融科技公司,专注于为用户提供便捷的移动支付和金融服务。 Palmpay 是目前非洲大陆增长最快的金融科技企业。作为金融科技创新者,PalmPay致力于为用户及商户提供更普惠、安全、灵活的数字支付体验,推动非洲普惠金融发展。 Palmpay 在业务中大量使用 Kafka 解决指标埋点上报和 CDC 传输场景的问题。

Palmpay 的业务背景

Palmpay 利用 Kafka 处理实时计算需求和移动应用埋点数据收集。实时计算业务通过在线应用收集数据库的变动事件,这些变动事件被统一捕获并存储到 Kafka 中。然后,下游服务可以从 Kafka 订阅这些数据库变动,进而用于实时仪表盘、风险控制检测等场景。对于移动应用业务埋点,网关将上报的埋点数据经 Kafka 异步分发,以便进行离线业务清洗和转储。

文章配图

为什么选择 AutoMQ

Palmpay 的初期架构选择了 Kafka,然而在长期运营过程中,发现 Kafka 在资源开销和弹性伸缩性方面存在一定的短板。

Palmpay 对 AutoMQ 进行了深入评估。这是一款重新设计,基于对象存储的存储和计算分离 Kafka 替代品,实现了 Kafka 存储到对象存储的转换。它带来了计算的无状态性,秒级的分区迁移,自动弹性和流量重平衡等优势。

成本优势明显

AutoMQ, 以对象存储为基础,对 Apache Kafka 的存储层进行了重构,从而在成本方面获得了显著优势:

对象存储,成本低 :AutoMQ 使用对象存储来存数据,是按需使用,无需预留空间的。对象存储每 GB 数据的成本相比基于云盘部署的 Kafka 低至十分之一。

存储计算无闲置 :AutoMQ 的存储和计算是分离的,可以按需扩展存储或计算的规模,实现小流量大存储,或者大流量小存储的效果,资源没有闲置。

自动流量重平衡

AutoMQ, 基于存算分离的基础,进一步实现了 自动流量重平衡 。集群内的读写压力可按分区粒度自动调度和均衡,以此解决了 Apache Kafka 原有的一些限制。

无热点,更均衡 :因为支持自动流量平衡,AutoMQ 集群内各节点之间的负载基本是一致的,集群中分区不再产生热点,风险更低。

扩缩容不需要手动迁移分区 :体验过 AutoMQ 发现升降规格后节点之间自动完成了流量均衡,不再需要运维人员手工将分区迁移到新节点,运维更简单。

迁移方案与整体收益

由于 AutoMQ 的架构仅更换了存储层,计算层完全采用了 Apache Kafka 的代码,因此在替换为 AutoMQ 时,未出现任何兼容性问题。

迁移过程 Palmpay 采用双写切流的方案

Kafka 上游双写 :通过 Flink 任务等同时写 AutoMQ 和原 Kafka 集群,验证数据一致性。

下游灰度切换 :下游灰度部分业务切换到 AutoMQ 消费,验证既有业务逻辑。

上游停写原集群 :等下游全部切换完成后,上游分批次停写原集群,完成整个切换。

在短短一个月内,Palmpay成功地将其业务如指标埋点、实时计算等无缝迁移到AutoMQ,并每日通过AutoMQ处理和分发数百亿的消息和变更事件。在不产生任何负面影响的前提下,AutoMQ的新方案相较原有方案,成本节约超过50%。