rocketmq常见问题
rocketmq常见问题
以下是关于RocketMQ项目的常见问题
使用
「新创建的Consumer ID从哪里开始消费消息?」
1)如果发送的消息在三天之内,那么消费者会从服务器中保存的第一条消息开始消费。
2)如果发送的消息已经超过三天,则消费者会从服务器中的最新消息开始消费,也就是从队列的尾部开始消费。
3)如果消费者重新启动,那么它会从最后一个消费位置开始消费消息。
「当消费失败的时候如何重新消费消息?」
1)在集群模式下,消费的业务逻辑代码会返回Action.ReconsumerLater,NULL,或者抛出异常,如果一条消息消费失败,最多会重试16次,之后该消息会被丢弃。
2)在广播消费模式下,广播消费仍然保证消息至少被消费一次,但不提供重发的选项。
「当消费失败的时候如何找到失败的消息?」
1)使用按时间的主题查询,可以查询到一段时间内的消息。
2)使用主题和消息ID来准确查询消息。
3)使用主题和消息的Key来准确查询所有消息Key相同的消息。
「消息只会被传递一次吗?」
RocketMQ 确保所有消息至少传递一次。 在大多数情况下,消息不会重复。
「如何增加一个新的Broker?」
1)启动一个新的Broker并将其注册到name server中的Broker列表里。
2)默认只自动创建内部系统topic和consumer group。 如果您希望在新节点上拥有您的业务主题和消费者组,请从现有的Broker中复制它们。 我们提供了管理工具和命令行来处理此问题。
配置相关
以下回答均为默认值,可通过配置修改。
「消息在服务器上可以保存多长时间?」
存储的消息将最多保存 3 天,超过 3 天未使用的消息将被删除。
「消息体的大小限制是多少?」
通常是256KB
「怎么设置消费者线程数?」
当你启动消费者的时候,可以设置 ConsumeThreadNums属性的值,举例如下:
consumer.setConsumeThreadMin(20);
consumer.setConsumeThreadMax(20);
错误
「当你启动一个生产者或消费者的过程失败了并且错误信息是生产者组或消费者重复」
原因:使用同一个Producer/Consumer Group在同一个JVM中启动多个Producer/Consumer实例可能会导致客户端无法启动。
解决方案:确保一个 Producer/Consumer Group 对应的 JVM 只启动一个 Producer/Consumer 实例。
「消费者无法在广播模式下开始加载 json 文件」
原因:fastjson 版本太低,无法让广播消费者加载本地 offsets.json,导致消费者启动失败。 损坏的 fastjson 文件也会导致同样的问题。
解决方案:Fastjson 版本必须升级到 RocketMQ 客户端依赖版本,以确保可以加载本地 offsets.json。 默认情况下,offsets.json 文件在 /home/{user}/.rocketmq_offsets 中。 或者检查fastjson的完整性。
「Broker崩溃以后有什么影响?」
1)Master节点崩溃
消息不能再发送到该Broker集群,但是如果您有另一个可用的Broker集群,那么在主题存在的条件下仍然可以发送消息。消息仍然可以从Slave节点消费。
2)一些Slave节点崩溃
只要有另一个工作的slave,就不会影响发送消息。 对消费消息也不会产生影响,除非消费者组设置为优先从该Slave消费。 默认情况下,消费者组从 master 消费。
3)所有Slave节点崩溃
向master发送消息不会有任何影响,但是,如果master是SYNC_MASTER,producer会得到一个SLAVE_NOT_AVAILABLE,表示消息没有发送给任何slave。 对消费消息也没有影响,除非消费者组设置为优先从slave消费。 默认情况下,消费者组从master消费。
「Producer提示“No Topic Route Info”,如何诊断?」
当您尝试将消息发送到一个路由信息对生产者不可用的主题时,就会发生这种情况。
1)确保生产者可以连接到名称服务器并且能够从中获取路由元信息。
2)确保名称服务器确实包含主题的路由元信息。 您可以使用管理工具或 Web 控制台通过 topicRoute 从名称服务器查询路由元信息。
3)确保您的Broker将心跳发送到您的生产者正在连接的同一name server列表。
4)确保主题的权限为6(rw-),或至少为2(-w-)。
如果找不到此主题,请通过管理工具命令updateTopic或Web控制台在Broker上创建它。
rocketmq常见问题的更多相关文章
- rocketmq常见问题及使用 新手篇
一 部署阶段 1.启动命令 nameServer启动:nohup sh bin/mqnamesrv -n ip地址:9876 & broker启动:nohup sh bin/mqbroker ...
- RocketMQ 使用及常见问题
前言 本文档是针对RocketMQ使用及常见问题的说明. 一.获取项目.安装包及文档 1. alibaba/RocketMQ https://github.com/alibaba/RocketMQ 2 ...
- RocketMQ在面试中那些常见问题及答案+汇总
0.汇总 RocketMQ入门到入土(一)新手也能看懂的原理和实战! RocketMQ入门到入土(二)事务消息&顺序消息 从入门到入土(三)RocketMQ 怎么保证的消息不丢失? Rocke ...
- 《浅入浅出》-RocketMQ
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点脑图.个人联系方式和技术交流群,欢迎Star和指 ...
- rocketmq运维管理
# 运维管理--- ### 1 集群搭建 #### 1.1 单Master模式 这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用.不建议线上环境使用,可以用于本地测试. #### ...
- rocketMq安装及集群配置
网上关于rocketMq安装.集群配置的文章有很多,作为一个初学者,跟着网上的各种教程安装遇到了各种坑,可谓是一路坎坷.本文记录下rocketMq安装的完整过程.希望对你有一点帮助 安装rocketM ...
- 消息队列面试题、RabbitMQ面试题、Kafka面试题、RocketMQ面试题 (史上最全、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- RabbitMQ,RocketMQ,Kafka 事务性,消息丢失和消息重复发送的处理策略
消息队列常见问题处理 分布式事务 什么是分布式事务 常见的分布式事务解决方案 基于 MQ 实现的分布式事务 本地消息表-最终一致性 MQ事务-最终一致性 RocketMQ中如何处理事务 Kafka中如 ...
- C++常见笔试面试要点以及常见问题
1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...
随机推荐
- springcloud 实现简单的 消费者和生产者 模式(Restfule 的风格)
一.springcloud 实现简单的 消费者和生产者 模式(Restfule 的风格) 1.实现简单的消费者和生产者 springcloud使用的http协议进行传输数据,也就是说springclo ...
- VC++线程同步之临界区(CriticalSection)
1.相关文件和接口 #include <windows.h> CRITICAL_SECTION cs;//定义临界区对象 InitializeCriticalSection(&cs ...
- 数论同余学习笔记 Part 2
逆元 准确地说,这里讲的是模意义下的乘法逆元. 定义:如果有同余方程 \(ax\equiv 1\pmod p\),则 \(x\) 称为 \(a\bmod p\) 的逆元,记作 \(a^{-1}\). ...
- jquery里面的$(this)和this的区别
感谢原文作者:何少旭 原文链接:https://www.cnblogs.com/heshaoxu/p/7672736.html 前言 当你用的是jquery时,就用$(this),如果是JS,就用th ...
- 创建SSH密钥时使用了自定义文件名遇到的问题
问题描述 如图,我自定义了密钥文件名字. 所以在测试连接时导致了: 问题解决 连接的时候指定自己重命名的私钥文件名就好了. ssh -T -i git_test git@github.com SSH命 ...
- 理解Laravel中的pipeline
理解Laravel中的pipeline suoga 关注 0.1 2015.09.08 00:00* 字数 1533 阅读 7151评论 8喜欢 24 pipeline在laravel的启动过程中出 ...
- 直播流媒体EasyDSS
访问官方 http://www.easydss.com/ 点击试用下载 根据不同需求 选择不同版本 (我选择的右边) 下载完解压 双击 start.bat 看见如下图则成功 网页输入 http://i ...
- FileInputStream 类与 FileReader 类的区别
FileInputStream 类与 FileReader 类的区别: 两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别呢? FileIn ...
- Redis——(主从复制、哨兵模式、集群)的部署及搭建
Redis--(主从复制.哨兵模式.集群)的部署及搭建 重点: 主从复制:主从复制是高可用redis的基础,主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复. 哨兵和集群都是 ...
- shell脚本命令
http://man.linuxde.net/shell-script 从键盘或文件中获取标准输入:read命令 文件的描述符和重定向 数组.关联数组和别名的使用 函数的定义.执行.传参和递归函数 ...