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

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 黄洪波

安装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/#/

成功。