当前位置: 首页 > news >正文

RocketMQ疑难杂症之No route info of this topic解决方案

成因:
由于配置了 docker 虚拟 IP,导致 brocker 总是代理到 docker 的虚拟 IP 上。

原理:
RocketMQ 的 broker 启动类
org.apache.rocketmq.broker.BrokerStartup
启动的时候会读取代码中的默认配置,关于 broker 的配置在
org.apache.rocketmq.common.BrokerConfig
中,根据源代码可以得知,broker 使用的默认 IP 为本机 IP
brokerIP1 = RemotingUtil.getLocalAddress();
得到选取 IP 的思路是,遍历本地的所有网卡 IP,过滤掉 "127.0" 和 "192.168" 开头的 IP 地址,然后得到第一个 IP,为本机 IP。


问题:
当这台机器有很多别的网卡(如:安装 docker 后),broker 使用的 IP,就可能会导致我们的客户端无法连接。

方案:
强制绑定服务器IP地址:System.getProperty("DUBBO_IP_TO_BIND")

// 创建生产者,指定所属的生产者组名
DefaultMQProducer producer = new DefaultMQProducer(mqConfig.getGroup());
// 指定NameServer的地址
producer.setNamesrvAddr(apacheMqConfig.getNamesrvAddr());
//强制绑定服务器IP地址
if (ObjectUtil.isNotEmpty(System.getProperty("DUBBO_IP_TO_BIND"))) {
    producer.setClientIP(System.getProperty("DUBBO_IP_TO_BIND"));
}

// 创建消费者,指定所属的消费者组名
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(mqConfig.getGroup());
// 指定NameServer的地址
consumer.setNamesrvAddr(mqConfig.getNamesrvAddr());
//强制绑定服务器IP地址
if (ObjectUtil.isNotEmpty(System.getProperty("DUBBO_IP_TO_BIND"))) {
    consumer.setClientIP(System.getProperty("DUBBO_IP_TO_BIND"));
}

备注:DUBBO_IP_TO_BIND 是 jar 包启动时获取到的服务器 IP 

相关文章:

  • python 2024-9
  • 太速科技-基于XC7Z100+AD9361的双收双发无线电射频板卡
  • 数据结构(14)——哈希表(1)
  • CANopen协议的理解
  • Elasticsearch 向量数据库本地部署 及操作方法
  • frida主动调用init_array中的函数
  • CSS转换(2D)transform属性及animation动画
  • npm run dev和npm run serve两个命令的区别
  • 虚拟机中window7界面太小解决办法
  • 【论文阅读】
  • 【安全】大模型安全综述
  • python 基础语法及保留字
  • 国产CAE的涅槃-岩土行业高性能离散元软件MatDEM
  • 我国登山鞋行业参与者越发广泛带来广阔潜在需求 女性市场值得期待
  • Go语言 Gin处理响应
  • 消除视觉Transformer与卷积神经网络在小数据集上的差距
  • SpringBoot Disruptor框架遇到的问题
  • 思维方式之概率思维
  • 小结 | 逻辑回归
  • 第二证券|两大板块掀涨停潮,有个股猛拉20cm!这只港股复牌一度暴跌
  • 【我亲身经历的2022年软件质量工作】
  • [leetcode 315] 计算右侧小于当前元素的个数
  • ESP32中micro-ROS与ROS2通信(点亮esp32指示灯)
  • Shell ❀ 条件测试语句
  • Transforming the Latent Space of StyleGAN for Real Face Editing翻译
  • 导入shp数据到postgis库
  • plotly parallel_coordinates平行坐标可视化
  • 前端使用dockerfile生成镜像
  • pandas对于文件数据基本操作,数据处理常用
  • WebSocketSSE实时动态数据展示
  • 数字三渔冲:打造美丽乡村新范式
  • 【爬虫】JS逆向解决反爬问题系列3—sign破解