dbaplus社群 2024年10月31日
弃用MQ吧!迁移到Pulsar后时间和成本都省了一半……
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了小红书在线消息队列的演进过程,从最初基于 RocketMQ 的架构到最终选择 Pulsar 作为新引擎。文章详细分析了 Pulsar 的优势,包括成本降低、资源利用率提升、弹性伸缩等,并分享了小红书在 Pulsar 落地过程中遇到的挑战和解决方案。此外,文章还展望了未来小红书在线消息队列的发展方向,包括客户端标准化、平滑迁移、稳定性建设等。

🤔 小红书在线消息队列面临着成本高、资源利用率低、运维复杂等问题,为了解决这些问题,小红书团队决定从 RocketMQ 迁移到 Pulsar。

🚀 Pulsar 的优势在于成本更低,资源利用率更高,并支持弹性伸缩,这使得小红书能够在满足业务需求的同时降低成本。

💡 小红书在 Pulsar 落地过程中,采取了客户端标准化和平滑迁移的策略,确保了用户无感迁移,并逐步提升了资源使用率。

📈 小红书通过 Pulsar 的落地,实现了成本降低 42%,资源利用率提升 34%,RT 耗时降低 71%,人工运维量大幅减少。

展望未来,小红书将继续完善 Pulsar 的功能,推进客户端标准化,并加强稳定性建设,以应对未来的挑战。

等你加入的 2024-10-31 07:15 广东

小红书基于Pulsar的在线场景探索与实践。




本文结合消息队列进行选型介绍,就 Pulsar 和 RocketMQ 的特性作对比,介绍 Pulsar 在小红书在线消息队列的场景下如何落地,以及企业可以获得哪些实际收益。同时,文章结合小红书消息队列的实际情况、经验进行了整理和数据汇总。




分享概要

一、背景

    1、消息队列的定义

    2、行业趋势

二、现状分析

    1、现状及规模

    2、存在问题

三、演进路线

    1、选型决策 Pulsar 或 RocketMQ5.x

    2、演进方向

    3、客户端标准化

    4、架构升级到Pulsar

四、在线消息规划设计

五、总结与展望

    1、阶段性进展和收益

    2、展望


一、背景


1、消息队列的定义


消息队列(简称:MQ)是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。



消息队列核心组成:



消息队列是不同应用之间异步通信的中间产品,其本质特征:



2、行业趋势





行业公司消息队列选型:


业界选型上,Kafka 是离线大数据重要组成,在线消息因为丰富的业务功能诉求(事务消息、延迟消息、死信消息等)选择 RocketMQ 或 Pulsar。


二、现状分析


1、现状及规模


Red Events MQ 基于 DDMQ 在小红书落地的一套 Discovery + Proxy + RocketMQ 引擎的架构,其架构如下:



当前形态:




2、存在问题



三、演进路线


1、选型决策:Pulsar 或 RocketMQ5.x


RocketMQ 和 Pulsar 都是 Apache 的顶级项目,同样优秀;但是如下几点还是让我们决策 Pulsar 成为未来我们新的架构引擎:


Pulsar 独有的优势:


汇总成本收益:当前流量情况下,成本降低 48%;在未来 10 倍增长量的情况下,成本会持续降低。


在小红书当前场景,当前集群和流量规模情况下(RocketMQ 采用了 2 副本、承载同等流量的情况),如果使用 Pulsar 能带来如下收益:


1)存储成本下降:存储成本更低,Pulsar 多盘部署架构,部署架构实现让存储成本下降 27%.



[前提] CPU、内存、存储容量保持不变的前提,拿到了其他的收益;


[收益] 磁盘总带宽上升:经过多盘的拼接,磁盘带宽从350MB/s上升600MB/s,提升71%;


[收益] 成本下降:从现有架构的 RocketMQ2 副本(Master/Slave Broker)到 Pulsar3 副本(1*Broker+3*BookKeeper),成本下降27%.


2)CPU利用率提升:提升资源利用率,通过实现副本流量对等,有效规避RocketMQ Slave 副本资源浪费的情况,可降低 21.5% 的 CPU 资源成本。



Master 节点:16 核 CPU 峰值使用率高达 50%,计算资源主要消耗在 Client数据的写、读、Slave 的同步;


Slave 节点:16 核 CPU 峰值使用率只有 7%,计算资源主要消耗在从 Master 拉取数据;



3)弹性伸缩、按量计费:基于这个特性, 让成本降低30%



配额:为了满足指定指定 TPS 需要提供的资源,当前集群评估水位的标准是峰值 TPS


实际使用量:用户实际使用的资源,用平均 TPS 代替;


冗余率:(配额 - 实际使用量)  /  配额,得到资源冗余率,这部分冗余资源就是弹性伸缩架构理论上可以获得的最大收益;



4)运维友好:云化部署、弹性伸缩更加平滑。



计算层(Broker 无状态):扩容后,无需运维,流量自动均衡;


存储层(BookKeeper 有状态):扩容后,无需要干预,新 Ledger 创建后,流量自动覆盖新节点;



计算层(Broker 无状态):缩容后,自动卸载流量,流量自动均衡到其他节点;


存储层(BookKeeper 有状态):缩容后,无需要干预,流量自动均衡(策略有:非紧急的缩容,节点直接隔离待数据失效+紧急下线数据迁移)。


Pulsar VS RocketMQ 5.0核心能力(绿色块:代表优势;橘色块:代表劣势)




Pulsar 架构图


RocketMQ 5.0 架构图


2、演进方向



核心名词解释:



设计目标:



通过客户端标准化和平滑迁移这两种手段,让 Pulsar 在小红书落地成为可能。


3、客户端标准化



客户端标准化让客户端接入都收敛,实现标准化接入:



4、架构升级到Pulsar



Pulsar 迁移路径:



四、在线消息规划设计


整体架构设计点:




整个架构的设计维度:



五、总结与展望


1、阶段性总结


演进计划当前进度:



当前已经拿到的收益:



2、展望


长远规划:完成 Pulsar 规划,制定客户端标准化、平滑迁移计划,同时做到稳定性建设。


1)Pulsar 落地:



2)客户端标准化推进:



3)稳定性建设:




>>>>

参考资料


作者介绍

诺林,在线消息队列方向负责人,开源社区角色:Apache BookKeeper Committer

无桀,在线消息队列研发,开源社区角色:Apache Pulsar Contributer

月初,在线消息队列研发,开源社区角色:Apache Pulsar Committer


来源丨公众号:小红书技术REDtech(ID:gh_f510929429e3

dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Pulsar 消息队列 小红书 在线消息 RocketMQ
相关文章