惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 黄洪波

安装openclaw 排查项目中依赖的mybatis 拦截器 ModelAttribute 老革命遇上新问题 使用calcite构造ddl建表语句 OpenWebUI单点登录之解决动态参数问题 IDEA自带的Maven 3.9.x无法刷新http nexus私服(转) 分布式系统设计经典论文(转载) 训练自己的yolo-v11数据集(二) 训练自己的yolo-v11数据集(一) 本地使用pycharm进行yolo推理 2024年的云原生架构需要哪些技术栈 (转) yolo v11学习,入门篇 - 黄洪波 OpenWebUI单点登录之深坑 AI工具验证 解决Win10无法进入睡眠模式(转) idea常用插件 内网离线模式下激活JRebel java导入json数据至doris 将SpringBoot打包之后的jar设为守护进程
windows docker安装rocketmq之踩坑记
黄洪波 · 2025-03-07 · via 博客园 - 黄洪波

安装官方文档,无论使用docker 还是使用docker-compose启动容器都报错,错误如下:

Exception in thread "main" org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout。

网上找了一圈,没有找到合适的文档,直接贴错误,答案也是牛头不对马嘴,也许是关键词不对。

后来直接将环境,配置,代码,错误都丢给AI,给出了12345几种可能,反正最终原因如下:

-------

非常好,您已经成功运行了 RocketMQ 集群,这时需要配置外部访问。我注意到:

  1. RocketMQ Broker 在容器网络中的地址是 172.18.0.4:10911
  2. 宿主机的 IP 地址是 10.78.0.6

这里存在一个常见的 RocketMQ 配置问题:当外部客户端尝试连接 RocketMQ 时,nameserver 会返回 broker 的内部地址(172.18.0.4:10911),但这个地址在宿主机网络或外部网络中是无法直接访问的。

在Windows环境中,Docker Desktop默认使用host.docker.internal作为宿主机访问地址,而非localhost

---

这里我就明白了,可以使用宿主机的IP地址配置brokerIP1。

解决方案:

先说本机配置:

ipconfig

以太网适配器 vEthernet (WSL):
   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::714b:93ba:2972:ba80%55
   IPv4 地址 . . . . . . . . . . . . : 172.27.112.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0
   默认网关. . . . . . . . . . . . . :


无线局域网适配器 WLAN:
   连接特定的 DNS 后缀 . . . . . . . :
   IPv6 地址 . . . . . . . . . . . . : fde2:8d42:8f0:5100:8375:6265:bacd:375
   临时 IPv6 地址. . . . . . . . . . : fde2:8d42:8f0:5100:c052:9d50:a600:5464
   本地链接 IPv6 地址. . . . . . . . : fe80::9f50:8521:1234:304%5
   IPv4 地址 . . . . . . . . . . . . : 192.168.3.34
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : fe80::2681:c7ff:fe51:f008%5
                                       192.168.3.1

所以最终解决方案如下:

使用docker-compose方案启动

docker-compose.yml配置如下:

version: '3.8'
services:
  namesrv:
    image: apache/rocketmq:5.3.1
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    networks:
      - rocketmq
    command: sh mqnamesrv
  broker:
    image: apache/rocketmq:5.3.1
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - ./broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876
    depends_on:
      - namesrv
    networks:
      - rocketmq
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf
  proxy:
    image: apache/rocketmq:5.3.1
    container_name: rmqproxy
    networks:
      - rocketmq
    depends_on:
      - broker
      - namesrv
    ports:
      - 8080:8080
      - 8081:8081
    restart: on-failure
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876
    command: sh mqproxy
  dashboard:
    image: apacherocketmq/rocketmq-dashboard:latest
    container_name: rmqdashboard
    ports:
      - 9090:8080  # 修改宿主机端口为9090,容器内端口保持8080不变
    environment:
      - JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876
    depends_on:
      - namesrv
    networks:
      - rocketmq

networks:
  rocketmq:
    driver: bridge

同目录下创建broker.conf文件,内容如下:

brokerIP1=172.27.112.1
#
brokerIP1也可以设置为WLAN ip
#考虑到我经常切换网络,且wsl ip为docker虚拟机固定ip,故设置该ip更妥当
namesrvAddr=rmqnamesrv:9876 autoCreateTopicEnable=true

执行 docker-compose up -d命令启动服务,启动之后访问rocketmq-dashboard的9090端口

http://172.27.112.1:9090/#/

成功。