喜马拉雅 Apache RocketMQ 消息治理实践

简介:本文通过喜马拉雅的RocketMQ治理实践分享,让大家了解使用消息中间件过程中可能遇到的问题,避免实战中踩坑。

作者:曹融,来自喜马拉雅,从事微服务和消息相关中间件开发。

本文通过喜马拉雅的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)动态配置热生效,节约用户时间;

(3)收/发消息,失败重试,为中间件做兜底;

(4)熔断限流,为业务做兜底;

(5)灰度收消息(消息开关),满足业务特殊场景;

(6)集成公司其他功能,如调用链、全链路压测等;

5、多维度监控

  • 运维:整体情况,cluster 内 top 情况,所属物理机情况;
  • 资源:Topic 上下游 qps,lag 等;
  • 用户:实例消息收发均匀,延迟。

老集群迁移方案

1、人工迁移

场景:消息上下游均为自己的服务;

迁移流程:双收(RocketMQ&RabbitMQ)-> 双发-> 单发(RocketMQ)-> 单收;

需要注意的问题:业务重构,topic合并可能导致下游多tag消息倾斜,导致lag异常问题;

2、自动迁移

  • RabbitMQ <--> RocketMQ 相互镜像迁移;
  • 粒度: exchange < -- > topic;
  • 注意: 相同组的任务互斥;

(1)RabbitMQ -> RocketMQ的迁移方案:

  • 把RabbitMQ的exchange整体同步到topic,在abc.exchange加一个topic前缀为topic_abc.excange;
  • 把RabbitMQ的Routing key预设为RocketMQ的tag;
  • 通过migrator任务程序收集RabbitMQ的消息队列,按照不同的类型传递到RocketMQ;

(2)RocketMQ -> RabbitMQ的迁移方案:

方法类似,见下图:

(3)自动迁移的几种情况:

  • 消费者迁移,生产者不动:
    配置RabbitMQ -> RocketMQ 任务;
  • 生产者迁移,消费者不动:
    配置RocketMQ -> RabbitMQ 任务;
  • 生产者先不迁移,然后迁移了:
    先配置RabbitMQ -> RocketMQ 任务;
    迁移完毕后,关闭RabbitMQ -> RocketMQ 任务;

    配置RocketMQ -> RabbitMQ 任务。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 容器为什么傲娇?全靠镜像撑腰!

作者 | 飞向星的客机来源 | CSDN博客&#x1f31f; 前言Docker 镜像是 Docker 容器的基石&#xff0c;容器是镜像的运行实例&#xff0c;有了镜像才能启动容器。Docker 镜像是一个只读的模板&#xff0c;一个独立的文件系统&#xff0c;包括运行一个容器所需的数据&#xff0c;…

HBase读链路分析

简介&#xff1a;HBase的存储引擎是基于LSM-Like树实现的&#xff0c;更新操作不会直接去更新数据&#xff0c;而是使用各种type字段&#xff08;put&#xff0c;delete&#xff09;来标记一个新的多版本数据&#xff0c;采用定期compaction的形式来归档合并数据。这种数据结构…

PolarDB for PostgreSQL 开源路线图

简介&#xff1a;作者&#xff1a;蔡乐 本文主要分享一下Polar DB for PG的开源路线图&#xff0c;虽然路线图已经拟定&#xff0c;但是作为开源产品&#xff0c;所有参与者都能提出修改意见&#xff0c;包括架构核心特性的技术以及周边生态和工具等&#xff0c;希望大家能够踊…

5分钟入门Lindorm SearchIndex

简介&#xff1a;SearchIndex是Lindorm宽表的二级索引&#xff0c;主要用来帮助业务实现快速的检索分析。本篇文章介绍如何通过简单的SQL接口操作SearchIndex。 一、引言 云原生多模数据库Lindorm&#xff0c;支持海量数据的低成本存储和弹性按需付费&#xff0c;提供宽表、时…

最后的 48 小时!云 XR 专题赛邀你一起绽放精彩,我们赛场见!

2022 年是 5G 应用规模化发展的关键之年。随着5G的深入发展&#xff0c;涵盖百亿级“人机物”的智能连接正加速构建&#xff0c;经济社会发展不断向虚实融合演进&#xff0c;基础设施形态也不断向云网融合升级。随着连接对象的拓展和基础设施的升级&#xff0c;XR、元宇宙等新业…

Snowflake核心技术解读系列——架构设计

简介&#xff1a;Snowflake取得了巨大的商业成功&#xff0c;技术是如何支撑起它的千亿美元市值呢&#xff1f;它技术强在哪&#xff1f;本文为大家倾情解读Snowflake的核心技术原理。 背景&#xff1a;2020年9月16日&#xff0c;Snowflake成功IPO&#xff0c;交易首日市场估值…

Apsara Stack 技术百科 | 可运营的行业云,让云上资源跑起来

简介&#xff1a;企业级云管理平台&#xff0c;如何打造千人千面的个性化体验&#xff0c;从应用、云资源、硬件等进行全局智能优化&#xff0c;实现资源配置的最佳配比&#xff0c;构建精细化运营能力&#xff1f; 距离第一例新冠疫情病例的发现&#xff0c;不知不觉中已经过去…

中国数据库崛起,阿里云李飞飞:中国云数据库多种主流技术创新已领先国外

“中国云数据库在很多主流技术创新上已经领先国外。”李飞飞表示&#xff0c;“PolarDB未来还会不断基于新一代云计算架构进行创新突破&#xff0c;持续释放云计算的资源池化潜力&#xff0c;让客户享受到更多云原生技术的红利。” “中国云数据库在很多主流技术创新上已经领先…

十年再出发,Dubbo 3.0 Preview 即将在 3 月发布

简介&#xff1a;随着Dubbo和HSF的整合&#xff0c;我们在整个开源的体系中更多地去展现了 HSF 的能力&#xff0c;能够让更多的人通过使用 Dubbo 像阿里巴巴之前使用 HSF 一样更好的构建服务化的系统。 2011 年&#xff0c;阿里 B2B 团队决定将项目开源&#xff0c;一年时间就…

如何帮助金融客户“用好云”?

简介&#xff1a;如何帮助金融客户“用好云”&#xff1f;做「政企数智创新的同行者」&#xff0c;这对于阿里云混合云来说不仅仅是一句口号&#xff0c;更是在千行百业践行的行动指南。 “我一秒钟几千万上下&#xff0c;会跟你们吃杂碎面&#xff1f;” 这句出自星爷电影台…

nuc8i7beh安装linux随机重启,指南:nuc8i5beh安装黑苹果的教程,接近完美运行

黑苹果采购硬件设施nuc8i5beh镁光m.2 1100 256固态硬盘三星 DDR4 2400笔记本内存条HKC电脑显示器8G U盘(这个之前有&#xff0c;不属于采购的)所需软件Mojave 10.14.6网盘下载Catalina 10.15.2balenaEtcher&#xff1a;下载地址bios65文件&#xff1a;下载地址nuc8 安装软件包&…

低代码、端到端,一小时构建IoT示例场景,声网发布灵隼物联网云平台

2020年&#xff0c;全球 IoT 设备连接数量首次超过非 IoT 设备。市场在高速增长&#xff0c;但音视频物联网的开发门槛依然很高。 6月28日&#xff0c;声网在线上举办主题为“视听无界&#xff0c;智联万物”的产品发布会&#xff0c;正式发布了“灵隼物联网云平台”&#xff0…

云知声 Atlas 超算平台: 基于 Fluid + Alluxio 的计算加速实践

简介&#xff1a;本文主要介绍云知声 Atlas 超算平台基于 Fluid Alluxio 的计算加速实践&#xff0c;以及 Fluid 是如何为 Atlas 带来全新的数据集管理方式的。 Fluid 是云原生基金会 CNCF 下的云原生数据编排和加速项目&#xff0c;由南京大学、阿里云及 Alluxio 社区联合发…

eBPF技术应用云原生网络实践系列之基于socket的service | 龙蜥技术

简介&#xff1a;如何使用 socket eBPF进一步提升Service 网络的转发性能&#xff1f; 背景介绍 Kubernetes 中的网络功能&#xff0c;主要包括 POD 网络&#xff0c;service 网络和网络策略组成。其中 POD 网络和网络策略&#xff0c;都是规定了模型&#xff0c;没有提供默认…

从开店营销到智能化私域运营,有赞发布人工智能引擎Jarvis

“以往在私域发起一场营销活动&#xff0c;从活动策划&#xff0c;到历史数据分析&#xff0c;再到内容排期&#xff0c;整个策划阶段往往需要一周以上的时间&#xff0c;而现在通过营销画布&#xff08;MA&#xff09;以及其中内嵌的人工智能能力&#xff0c;只需要30分钟不到…

“云网管” ---云上构建网络自动化体系

简介&#xff1a;云网管是基于阿里云网络多年技术和经验沉淀打造的云上智能网络管理运维平台&#xff0c;提供企业网络全生命周期管理运维的能力&#xff0c;让部署更快捷、运维更高效、网络更透明。 1.背景 云网管是基于阿里云网络多年技术和经验沉淀打造的云上智能网络管理…

2022 (第五届)GIS软件技术大会开幕,GIS、IT将加速融合

院士专家共论GIS与AI、数据库等IT技术加速融合趋势。 会上&#xff0c;超图正式发布新产品SuperMap GIS 11i(2022)、与华为联合发布禹贡开源空间数据库。 6月29日上午&#xff0c;2022(第五届)GIS软件技术大会主题大会在线开幕。大会以“地理智慧 多维筑基”为主题&#xff0c;…

构建制品不一致,后续工作都是白费 | 研发效能提升36计

简介&#xff1a;本篇文章&#xff0c;我们从软件交付的终态出发&#xff0c;提出了不可变构建的概念。在软件开发的过程中&#xff0c;我们怎样才能享受产业生态的红利&#xff0c;实现软件交付过程的标准化呢&#xff1f;软件交付当中的集装箱应该是什么样的&#xff1f; 专栏…

巧用 Bitmap 实现亿级海量数据统计

作者 | 码哥字节来源 | 码哥字节在移动应用的业务场景中&#xff0c;我们需要保存这样的信息&#xff1a;一个 key 关联了一个数据集合。常见的场景如下&#xff1a;给一个 userId &#xff0c;判断用户登陆状态&#xff1b;显示用户某个月的签到次数和首次签到时间&#xff1b…

cache 访问延迟背后的计算机原理

简介&#xff1a;本文介绍如何测试多级 cache 的访存延迟&#xff0c;以及背后蕴含的计算机原理。 CPU 的 cache 往往是分多级的金字塔模型&#xff0c;L1 最靠近 CPU&#xff0c;访问延迟最小&#xff0c;但 cache 的容量也最小。本文介绍如何测试多级 cache 的访存延迟&…