Workflow
Apache Pulsar
icon
搜索文档
【今跃教育】vivo 海量数据场景下的消息系统架构演进
搜狐财经· 2025-10-11 05:42
业务规模与技术挑战 - vivo移动互联网业务为全球超过4亿用户提供服务,其消息中间件平台日均处理数据量达十万亿级别[1] - 随着业务流量数十倍增长,原有Kafka架构在多集群管理、弹性扩缩容和海量分区场景下面临性能瓶颈[3] - Kafka架构下Topic和分区数量持续增加导致磁盘随机读写加剧,严重影响集群性能,且资源组隔离与集群拆分的运维成本显著上升[3] - 滴滴大数据原有的DKafka系统面临磁盘IO瓶颈问题,当Broker承载成百上千个Topic分区时,磁盘写入由顺序变为随机,性能急剧下降[8] 技术选型与架构优势 - 公司选择引入Apache Pulsar作为新一代消息中间件,其存算分离架构带来显著优势:无状态Broker支持快速扩缩容,存储层基于BookKeeper实现数据均匀分布和高可用保障[4] - Pulsar独有的Bundle机制能够以有限的逻辑单元管理海量Topic,有效避免元数据膨胀问题,并支持多种消费模式,消费能力扩展不再完全依赖分区数量[4] - Pulsar的存算分离架构通过BookKeeper实现顺序刷盘,彻底解决了随机写入导致的IO瓶颈问题,其多级缓存机制有效实现了IO隔离[9] - Bundle机制将海量分区映射到有限哈希环上,大幅降低了元数据管理和Rebalance压力,节点对等和无状态设计使得扩缩容变得简单高效[9] 实践优化与性能提升 - 在落地实践中,vivo重点优化了Pulsar的Bundle管理机制,通过合理设置Bundle数量范围和拆分策略,确保流量在Broker间的均衡分布[5] - vivo优化了Ledger翻转参数防止数据存储不均衡,建立了统一的数据保留策略,并构建了基于Prometheus + Kafka + Druid的多维监控指标体系[5] - 通过调整负载均衡参数将节点流量偏差控制在20%以内,优化客户端发送参数配置,实施“能者多劳”的发送策略,显著提升发送性能[6] - 滴滴大数据团队在硬件选型上采用SATA HDD盘 + NVME的异构机型,利用Pulsar的Ensemble机制使所有数据盘的存储容量利用率差异控制在10%以内,彻底解决存储热点问题[10] 应用成效与系统替代 - 优化后的Pulsar集群在vivo环境中稳定支撑千亿级消息流量,有效应对各类异常场景,为业务提供高可靠、低延迟的消息服务[6] - 滴滴大数据平台于2021年8月正式上线首个Pulsar集群,经过两年多稳定运行,成功替代原有DKafka系统,支撑数据开发平台和同步中心的数据通道同步任务[7] - Pulsar成功支撑了滴滴Log->ES、BamaiLog->ES、BamaiLog->CK和Log->HDFS等重要数据同步链路,在性能、成本和可靠性方面都带来显著提升[12] - Pulsar在扩缩容方面展现显著优势,计算层Broker扩容后可通过bundle漂移立即分担负载,存储层Bookie扩容后无需数据迁移,新数据自动选择低负载节点写入[10]