文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
本文通过喜马拉雅的RocketMQ治理实践分享 , 让大家了解使用消息中间件过程中可能遇到的问题 , 避免实战中踩坑 。
业务背景现状以及遇到的问题 1、消息队列概况
(1)在线场景:RabbitMQ , 实例数9个;
(2)离线场景:Kafka , 8个集群;
2、遇到的问题
在线场景缺乏治理:
? 业务混用 , 相互干扰 , 非核心对接积压过多触发集群限流;
? 节点负载不均衡 , 资源浪费严重;
? 资源和应用无关联 , 消息积压;
? 业务混用 , 相互干扰 , 非核心对接积压过多触发集群限流;
在线MQ集群改造方案 1、选型
(1)业务便捷性:易于开发、使用、维护 , 提高效率 , 如自带重试、自带死信、自带事务保障;
(2)性能:包容业务的不确定性 , 如抗短时突发流量、抗积压等;
(3)简单:架构适用于拆分小集群;Java语言易于排查问题和二次开发;社区活跃 , 使用的人多 , 方便排查问题;
2、治理方案
(1)集群划分方针:划分小集群 , 减少相互干扰 , 减少影响面;
(2)拆分方案:
如上图所示 , 对于公司和“钱”相关的业务及核心业务 , 不仅要给足资源 , 同时要保证较高的数据安全 , 在这里就使用了SYNC_MASTER;
对于非核心业务 , 我们希望它的性价比高 , 使用尽量少的资源去支撑足够多的数据量 , 此处就使用了ASYNC_MASTER , 伸缩性会更好; 对于其它数据安全要求不高的业务 , 包括消息轨迹 , 我们使用单MASTER集群 , 保证了性能需要 , 资源使用也少; 对于延时集群 , 专注于积压消息 , pagecache利用率低 , 目前还没用做 , 未来考虑在云上采用按需购买的方式来使用;另外对于临时集群目前也没有涉及 。3、控制面管理
(1)统一消息治理后台;
对所有消息中间件的后台做了一个统一的管理后台 , 如上图 。
(2)对RabbitMQ , 仅维护 , 自动维护关联关系;
(3)对于RocketMQ , 用于提升用户体验 , 比如发送/查询消息、一键接入demo、死信重发等;
消息管理界面
配置demo
死信重发
(4)PaaS化审批
我们对消息化的资源管理做了一个PaaS化的管理 , 对功能做了一些限制 , 开发和运维只能在测试环境下做申请和审批 , 审批通过后再同步到其它环境 , 然后创建资源、通知用户 。
4、统一接入SDK
(1)用户只关心用什么资源 , 不需要了解namesrv地址 , 减少出错概率;
(2)动态配置热生效 , 节约用户时间;
【喜马拉雅|喜马拉雅 Apache RocketMQ 消息治理实践】(3)收/发消息 , 失败重试 , 为中间件做兜底;
- 芯片|播放器分两种,hifiman和其他的,聊聊国产自研喜马拉雅芯片的HM1000播放器使用感受
- 讲好冬奥故事、传播中国声音:喜马拉雅上线“声动冰雪纪”大型
- 侯震宇|百度:Apache Doris 1.0版本发布在即 致力打造全球顶级开源数据仓库
- 喜马拉雅参股成立股权投资合伙企业
- 纪实文学|继重现单田芳声音后,喜马拉雅又出现由AI写作、演播的有声小说,AI创作时代来临了吗?
- 再曝3个高危漏洞!Apache Log4j 漏洞1个月回顾:警惕关键信息基础设施安全
- 电台|喜马拉雅联合彩云小梦打造首个AI电台
- 品一锅烟火,听人生百味:在喜马拉雅“声音火锅店”云吃海底捞
- 彩云小梦|喜马拉雅联合彩云小梦打造首个AI电台
- 喜马拉雅联合彩云小梦打造首个讲故事的AI电台,从创作到演播均