1、启动namesrv

(-c 指定加载配置文件)
nohup sh mqnamesrv &
nohup sh mqnamesrv -c ../conf/namesrv/namesrv.properties &

2、启动broker

(-n 指定namesrv地址 -c 指定加载配置文件)

nohup sh mqbroker -c ../conf/broker.properties &
nohup sh mqbroker -n 2409:8089:1010:6010:2001::132:9876 -c ../conf/broker.properties &

查看启动是否正常:
显示当前所有java进程:jps
查看mq进程:ps -ef|grep rocketmq
查看启动日志输出:tail -f nohup.out
查看日志:/home/logs/rocketmqlogs(broker.log、namesrv.log)

3、关闭

sh mqshutdown namesrv
sh mqshutdown broker
./bin/mqshutdown broker
./bin/mqshutdown namesrv

4、其他命令

#新增topic(-n 指定namesrv地址 -c 指定群组名称 -t 指定新增topic名称)
sh mqadmin updatetopic -n 192.168.10.1:9876 -c DefaultCluster -t topic-test
#删除topic(-n 指定namesrv地址 -c 指定群组名称 -t 指定删除topic名称)
sh mqadmin deleteTopic –n 192.168.10.1:9876 –c DefaultCluster –t topic-test
#查看所有topic
sh mqadmin topicList -n 192.168.10.1:9876
查看topic路由
sh mqadmin topicRoute –n 192.168.10.1:9876 -t topic-test
#查看topic信息列表详情统计
sh mqadmin topicstatus -n 192.168.10.1:9876 -t topic-test
#查看所有消费组group
sh mqadmin consumerProgress -n 192.168.10.1:9876
#查看指定消费组下的所有topic数据堆积情况
sh mqadmin consumerProgress -n 192.168.10.1:9876 -g topic-test
#查询集群消息
sh mqadmin  clusterList -n 192.168.10.1:9876

#创建订阅组:
sh mqadmin updateSubGroup -c DefaultCluster -g testConsumerGroupName
#删除订阅组:
sh mqadmin deleteSubGroup -c DefaultCluster -g testConsumerGroupName
#查看订阅组消费状态:
sh mqadmin consumerProgress -n 192.168.10.1:9100

5、遇到的问题

1> 启动broker时随脚本退出broker也停止

服务器没有nohup命令,执行启动broker命令后,Crtl+C,结果broker就shutdown了,即便加了&
sh mqbroker -n 192.168.10.1:9100;192.168.10.2:9100 -c ../conf/broker-m-9101.properties &
最后通过执行如下命令,并且不要Crtl+C,直接关闭服务器后,broker未被停止:
sh mqbroker -c ../conf/broker-m-9101.properties &

2>WARN RocketmqClient: get Topic [TBW102] RouteInfoFromNameServer is not exist value

原因:
broker配置关闭了autoCreateTopicEnable,不存在名为TBW102的topic,消息生产者从NameServer获取路由失败。
开启状态下,brocker启动时会自动创建一个名称为TBW102的默认Topic,通过这个默认topic来获取路由信息进行自动创建其他topic。

不能开启autoCreateTopicEnable的原因:(无法实现broker负载)
https://blog.csdn.net/prestigeding/article/details/91476328

3>启动时异常处理

清理:storePathRootDir=/data/rocketmq/store
日志:/home/appUser/logs/rocketmqlogs(broker.log、namesrv.log)

4>autoCreateTopicEnable

autoCreateTopicEnable:rocketmq自动创建topic,不能真正做到每个broker自动创建topic,不能做到每个broker负载均衡topic。原因:
broker:每个broker的TopicConfigMange构造方法检测若开启了自动创建topic,则创建名为TBW102的默认topic,8个队列。每个broker每30秒向每个nameserver发送topic路由信息。nameserver得到默认的topic路由。
producer:生产者向mq发送自定义topic消息,首先查询本地缓存topic信息,发现不存在,则去主动请求nameserver获取topic信息,仍然没找到,则再次向nameserver获取默认TBW102的topic路由信息,将其作为自定义topic的路由缓存至本地,此时自定义topic的路由包含每个broker的8个队列,轮询选取其中一个broker的队列发送消息,broker收到消息发现不存在topic,判断开启了自动创建topic,则当前broker创建自定义topic默认4个队列。此时,生产者没在继续发送消息,其他broker没有收到消息,没有创建topic。broker下一个30秒时将topic路由同步到nameserver,生产者每30秒从nameserver获取topic 信息,取到自定义topic对应的路由只有一个broker4个队列,覆盖保存到本地缓存,生产者下次发送消息时查询本地缓存有topic路由信息,则发送消息到这个broker,其他broker则永远不会去创建topic,形成broker单点处理topic,达不到所有broker负载topic信息。因而不建议线上开启自动创建topic。除非生产者短时间连续发送消息,才能在轮询时将消息发送到每个broker,实现每个broker创建topic。
思考解决:
1、若producer这样设计:生产者配置自动创建topic选项,若开启,发送消息时,判断本地缓存不存在topic路由,nameserver也不存在,则获取nameserver默认topic TBW102路由,主动向每个autoCreateTopicEnable
        为true的broker发送探测,broker收到探测,判断本地不存在topic,判断已开启自动创建,则直接创建topic,这样每个broker都可以完成自动创建topic。
    更全面的设计:生产者配置需要自动创建的topic,生产者初始化时直接向broker发送探测创建topic。这样第一次发送消息时不需要耽误时间。
2、基于现状设计:生产者初始化时连续快速发送指定topic信息,以在轮询时遍历到每个broker,达到每个broker自动创建topic。消费者收到此类消息不做处理。有点手动促使自动创建的意思。
3、docker部署,启动后执行创建topic命令

RocketMQ记录相关推荐

  1. springboot整合rocketMQ记录 实现发送普通消息,延时消息

    一.为什么选择RocketMQ消息队列?(可跳过看三的整合代码实例) 首先RocketMQ是阿里巴巴自研出来的,也已开源.其性能和稳定性从双11就能看出来,借用阿里的一句官方介绍:历年双 11 购物狂 ...

  2. 数据库双A同步实现方案

    需求: 工作中的业务数据,目前分别存储在美国的服务器和中国的服务器(mysql),需要把对应的表实施数据同步. 解决方案canal(源码java) 这个工具还是挺强大的,主要实现其实类似于mysql的 ...

  3. 阿里RocketMq试用记录+简单的Spring集成

    CSDN学院招募微信小程序讲师啦      程序猿全指南,让[移动开发]更简单!        [观点]移动原生App开发 PK HTML 5开发     云端应用征文大赛,秀绝招,赢无人机! 阿里R ...

  4. RocketMQ集群部署记录

    RocketMQ集群部署记录 #引用    https://cloud.tencent.com/developer/article/1147765 一.RocketMQ基础知识介绍 Apache Ro ...

  5. Centos6下RocketMQ集群部署记录

    一.RocketMQ基础知识介绍 Apache RocketMQ是阿里开源的一款高性能.高吞吐量.队列模型的消息中间件的分布式消息中间件. 上图是一个典型的消息中间件收发消息的模型,RocketMQ也 ...

  6. 记录Rocketmq定时消息不消费问题的排查过程

    记录Rocketmq定时消息不消费问题的排查过程 写在前面 问题根源初步确认 问题根源再次确认. 了解rocketmq定时消息原理以及处理过程. 源码调试 结论求证 后记 写在前面 此本记录了一个项目 ...

  7. [错误记录] --- rocketmq批量消费设置参数的问题

    rocketmq想支持批量消费,于是便设置以下参数: consumer.setConsumeMessageBatchMaxSize(1000); 这样是正确的,但由于业务要求,还想再设置大点,于是设置 ...

  8. RocketMQ 问题记录

    问题 Broker 磁盘空间不足 执行 tools.cmd org.apache.rocketmq.example.quickstart.Producer,报以下错误: 00:06:30.859 [m ...

  9. 记录项目中rocketmq的错误处理

    mq报错: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 14 DESC: service not available n ...

最新文章

  1. 浅谈 LiveData 的通知机制
  2. 深入理解TCP/IP协议族
  3. 鸿蒙10 5G手机,继鸿蒙后麒麟V10问世 5G时代国产操作系统将起飞
  4. php charat,charAt(i) 函数
  5. Gmail地址图片注册...
  6. 搜集访问网页历史记录软件_微软宣布OneDrive版本历史记录功能抵达Win10和macOS客户端版...
  7. 施一公:论文和科技实力是两回事,大家千万要分开
  8. 2.1 LibCurl编程流程(转)
  9. libubox组件(1)——usock
  10. 微软威胁情报中心总经理 John Lambert 谈安全
  11. paip.陕北方言 广东方言的不同单字 1千高频字
  12. sql server 2008 r2 序列号密钥实测可用20210906
  13. 【转】西冷牛排,菲力牛排,眼肉牛排,雪花牛排,T骨牛排,沙朗牛排有什么不同?
  14. java application.doevents_Application.DoEvents的用法
  15. C# 淘宝商品微信返利助手开发-(一)返利助手原理
  16. MYSQL索引3:聚簇索引和非聚簇索引
  17. 网络协议 18 - CDN
  18. 给出x.509证书的实例并分析其工作方式
  19. ReactJS Start/build内存溢出
  20. vue中使用echarts实现中国地图加城市定位功能

热门文章

  1. win10怎么进入键盘设置
  2. Listener监听器快速入门
  3. 把pdf转换成excel格式的方法
  4. JSP:利用网易云官方接口下载音乐
  5. 线程池的使用(7种创建方法)
  6. window和python查看和调用exe的对照,结合pyqt5应用查找指定程序,并结束应用程序(酒馆战棋整活必备)
  7. Python 计算机视觉(八)—— OpenCV 进行图像增强
  8. tableau三轴该怎么做_在视图中为多个度量添加轴
  9. 我们到底该如何看待6G?
  10. wixd乱码ID提取微信号实现方法