问题:

在使用springboot集成RocketMQ Client后,开启自动创建队列,发现只会在一个Broker中创建Topic,但是在短时间内发送多条信息,就可以在集群情况下,在多个Broker中正确的创建Topic

要发多少条才能在集群模式下正确创建?

消息默认轮询方式,需要最少发送消息数量如下:(刷新路由前完成)
((Broker数量-1)* 每个Broker Queue的数量))-1

代码

将循环发送消息打开既可以正常在集群环境下自动创建队列

  @Testvoid producerAndSync() throws MQClientException, UnsupportedEncodingException, MQBrokerException, RemotingException, InterruptedException {DefaultMQProducer defaultMQProducer = new DefaultMQProducer("ordinary_group");//指定namesrv地址defaultMQProducer.setNamesrvAddr(NAMESRV_ADDR);//指定超时时间defaultMQProducer.setSendMsgTimeout(5000);//指定该主题的queue的个数defaultMQProducer.setDefaultTopicQueueNums(2);defaultMQProducer.start();
//        for (int i = 0; i < 100; i++) {Message msg = new Message("OrdinaryTopic_4", "ordA", ("你好我的世界" + 1).getBytes(RemotingHelper.DEFAULT_CHARSET));SendResult sendResult = defaultMQProducer.send(msg);log.info("{} %n", sendResult);
//        }defaultMQProducer.shutdown();}

导致原因

Consumer刷新路由的时间为30S,没三十秒去Nameserver刷新路由,假设Broker集群为两台,发送一条消息,此时只会向其中一个Broker One中创建Topic,不会向第二台Broker Two中发送消息,也就不会创建Topic,此时Consumer重新刷新路由, 就会把Broker One中的路由信息保存,此时的Consumer就永远只会向Broker One中的发送消息,因为只有Broker One有对应的路由信息,Broker Two就永远不会创建路由信息

解决办法

手动创建队列

Spring Boot+RocketMQ集群只会在一个Broker中创建队列相关推荐

  1. RocketMQ 集群平滑运维

    前言 在 RocketMQ 集群的运维实践中,无论线上 Broker 节点启动和关闭,还是集群的扩缩容,都希望是平滑的,业务无感知.正所谓 "随风潜入夜,润物细无声" ,本文以实际 ...

  2. rocketmq集群安装部署过程(4.0.0版本)、安装中的常见问题举例

    本篇博文参考:http://www.cnblogs.com/quchunhui/p/7126868.html,然后按照自己的环境进行重新编写 准备工作: 下载rocketmq-all-4.0.0-in ...

  3. Linux 从零开始部署RocketMQ集群遇到的问题

    文章目录 1.虚拟机ens33没有IP地址 2.开始安装RocketMQ 3.解压安装好的rocketmq-all-4.9.2-source-release.zip 4.安装Maven 5.构建Roc ...

  4. rocketmq 集群部署

    架构图 部署环境 hostname ip 备注 mqnamesrv1 10.0.0.1 namesrv mqnamesrv2 10.0.0.2 namesrv mqbroker3 10.0.0.3 b ...

  5. Centos6下RocketMQ集群部署记录

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

  6. 【RocketMQ】ubuntu18下部署RocketMQ集群

    技术架构 - Producer:消息发布的角色,支持分布式集群方式部署.Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟. - Con ...

  7. 从生产故障解锁RocketMQ集群部署的最佳实践

    1.故障描述 RocketMQ 集群采取的部署架构为2主2从,其部署架构如下图所示: 其部署架构中一个非常明显的特点是一台物理机上分别部署了 nameserver,broker 两个进程. 其中一台机 ...

  8. RocketMQ集群详解

    集群特点 (1)NameServer:是一个几乎无状态节点,可集群部署,节点之间无任何信息同步. (2)Broker:部署相对复杂,Broker分为Master与Slave,一个Master可以对应多 ...

  9. 从年末生产故障解锁RocketMQ集群部署的最佳实践

    [CSDN 编者按]因为一次生产事故,导致年终奖泡汤!在一番问题查找之后,终于找到了罪魁祸首!MQ集群中某一台物理机内存引发的故障,从而导致系统异常重启,而更关键的问题是,为什么一台Broker由于内 ...

最新文章

  1. Tomcat 之 tomcat安装和组件介绍
  2. hdu1686 最大匹配次数 KMP
  3. Docker批量操作容器
  4. HIbernate实现增、删、改、查。
  5. ajax 微信code获取_ajax 实现微信网页授权登录的方法
  6. 设置一段文字显示不同的颜色及大小等属性
  7. 前端学习(1752):前端调试值之网络请求的监控
  8. eclipse php 环境及调试配置
  9. eff java_牛津大学为国家图书馆周开幕,EFF组织大学活动家,等等
  10. 为什么没有普及128位操纵系统的计算机?
  11. leetcode621 贪心:任务安排
  12. 特斯拉市值站上万亿元大关,BBA如何在“自动驾驶”上做空它?
  13. 无法定位程序输入点 InitializeCriticalSectionEx 于动态链接库 Kernel32.dll 上 问题解决方法
  14. 在继续之前,如何暂停我的Shell脚本一秒钟?
  15. 讨薪后续:我和欠薪老板在派出所调解成功
  16. 华硕怎么安装linux系统教程,华硕笔记本系统如何安装win10和linux 双系统
  17. 数据科学 | Pandas新手入门
  18. 2016年第四届C/C++ A组蓝桥杯省赛真题
  19. 大厂的区块链之路|蚂蚁金服怎么玩?
  20. excel提取括号内的内容

热门文章

  1. LeeCode 第 314 场周赛
  2. 氪见激光雷达性能参数介绍
  3. python networkx进行最短路径分析_【Python学习系列二十六】networkx库图最短路径求解...
  4. [SVA]SystemVerilog Assertion常用操作符总结及案例
  5. pr无法创建图像缓冲区_解决pr、ae无法建立图像缓冲区,未指定的绘图错误。
  6. 华三服务器怎样用hdm安装linux,H3C R4900 G2服务器通过HDM安装系统
  7. Android layer type与WebView白屏
  8. Linux文件系统:minix文件系统二进制分析3(硬链接与软链接)
  9. Neo4j在Windows下的安装,提供下载链接(官网忒慢)
  10. HDU2717 Catch That Cow ( BFS )