RocketMQ实践问题收集

简介: RocketMQ实践问题收集

一、引言

适用人群:使用RocketMQ的程序猿。

文章目的:记录并收集RocketMQ在各种环境下出现的问题和解决办法。

二、简介

RocketMQ是一个纯java、分布式、队列模型的开源消息中间件,前身是Metaq,当Metaq 3.0发布时,产品名称改为RocketMQ.

具有如下特点:

  • 能够保证严格的消息顺序
  • 提供丰富的消息拉取模式
  • 高效的订阅者水平扩展能力
  • 实时的消息订阅机制
  • 亿级消息堆积能力

三、Q&A

1.背景:关于RocketMQ是否和业务强耦合,此处是指将业务混合在消息发送接收确认逻辑中。关于这种思想提供一个说明。

个人看法:RocketMQ作用只是提供消息传送功能,将消息传到目标服务器即完成工作,业务逻辑尽量不要混合在RocketMQ消费逻辑中,如有需要确认消息是否正确消费,需要业务系统编写逻辑监控。如果必须将消息是否消费逻辑耦合到RocketMQ,请保证代码正确,避发生消息堆积。

2.背景:关于AMC使用MQ出现消息堆积的情况,实际上是本地消费线程被挂起,这种情况会导致消费者线程池线程数量减少,直至消耗殆尽。

原因:AMC在使用RocketMQ对服务器操作进行分离时,在amc-consumer处理消息的方法中,存在使线程挂起的地方,导致在Broker接收成功,一直未返回消费结果。

解决办法:解决线程挂起,保证处理消息的方法无论是否处理成功过,都返回消费结果。

3.背景:集成项目使用mq时,出现连接Broker失败的情况,出现非Broker IP的“172.17.0.1”等个别IP。

原因:在Broker服务器发现存在多网卡配置,服务器上的Docker网卡影响到了MQ对本地服务器IP的正切取值。

解决办法:1.消除多网卡将不用的网卡禁用(不推荐,可能影响到别的软件运行)。

              2.通过Broker参数BrokerIP1指定本地Broker连接到NameServer服务器的IP。

4.背景:相关业务系统在使用mq时,出现消息未消费情况。

原因:集成环境消费端业务逻辑处理异常,消息已经接受但并未成功消费。

解决办法:将业务方法优化,增加失败监控机制,确保方法完全执行。

5.背景:使用RocketMQ时,同一个消费组由于订阅关系不一致(在一个Topic下,同一个消费组,两个消费者订阅了不同的tag),导致消息无法正常消费。

原因:由于订阅关系不一致在MQ负载均衡时,发生消费错误、无法消费到消息的问题。

解决办法:对于同一个消费组,应保持各个消费者之间的订阅关系一致。


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 弹性计算 Java
Rocketmq-spring入门与实践
本场景带您体验如何在 Spring 生态中优雅地使用 Apache RocketMQ,感受最受欢迎业务开发框架与最受欢迎消息平台结合的魅力。
|
2月前
|
消息中间件 存储 Serverless
【实践】快速学会使用阿里云消息队列RabbitMQ版
云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1协议的消息产品。云消息队列 RabbitMQ 版兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。
108 2
|
3月前
|
消息中间件 Java Apache
RocketMQ消息回溯实践与解析
在分布式系统和高并发应用的开发中,消息队列扮演着至关重要的角色,而RocketMQ作为阿里巴巴开源的一款高性能消息中间件,以其高吞吐量、高可用性和灵活的配置能力,在业界得到了广泛应用。本文将围绕RocketMQ的消息回溯功能进行实践与解析,分享工作学习中的技术干货。
83 3
|
4月前
|
消息中间件 弹性计算 Kubernetes
RabbitMQ与容器化技术的集成实践
【8月更文第28天】RabbitMQ 是一个开源消息代理和队列服务器,用于在分布式系统中存储、转发消息。随着微服务架构的普及,容器化技术(如 Docker 和 Kubernetes)成为了部署和管理应用程序的标准方式。本文将探讨如何使用 Docker 和 Kubernetes 在生产环境中部署和管理 RabbitMQ 服务,同时保证高可用性和弹性伸缩能力。
79 3
|
2月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
85 9
|
2月前
|
消息中间件
解决方案 | 云消息队列RabbitMQ实践获奖名单公布!
云消息队列RabbitMQ实践获奖名单公布!
|
2月前
|
消息中间件 存储 弹性计算
云消息队列RabbitMQ实践
云消息队列RabbitMQ实践
|
2月前
|
消息中间件 存储 弹性计算
云消息队列 RabbitMQ 版实践解决方案评测
随着企业业务的增长,对消息队列的需求日益提升。阿里云的云消息队列 RabbitMQ 版通过架构优化,解决了消息积压、内存泄漏等问题,并支持弹性伸缩和按量计费,大幅降低资源和运维成本。本文从使用者角度详细评测这一解决方案,涵盖实践原理、部署体验、实际优势及应用场景。
|
2月前
|
消息中间件 存储 监控
解决方案 | 云消息队列RabbitMQ实践
在实际业务中,网站因消息堆积和高流量脉冲导致系统故障。为解决这些问题,云消息队列 RabbitMQ 版提供高性能的消息处理和海量消息堆积能力,确保系统在流量高峰时仍能稳定运行。迁移前需进行技术能力和成本效益评估,包括功能、性能、限制值及费用等方面。迁移步骤包括元数据迁移、创建用户、网络打通和数据迁移。
71 4
|
3月前
|
消息中间件 运维 监控
云消息队列RabbitMQ实践解决方案评测报告
本报告旨在对《云消息队列RabbitMQ实践》解决方案进行综合评测。通过对该方案的原理理解、部署体验、设计验证以及实际应用价值等方面进行全面分析,为用户提供详尽的反馈与建议。
87 16