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

【Docker安装RockeMQ:基于Windows宿主机,并重点解决docker rocketMQ安装情况下控制台无法访问的问题】

拉取镜像

docker pull rocketmqinc/rocketmq

创建网络

docker network create rocketmq-net

构建namesrv容器

docker run -d -p 9876:9876 -v D:/dockerFile/rocketmq/namesrv/logs:/root/logs -v D:/dockerFile/rocketmq/namesrv/store:/root/store --network rocketmq-net --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv

构建broker容器

启动之前,你需要在 D:\dockerFile\rocketmq\broker\conf目录下创建 broker.conf 文件:

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 127.0.0.1//本机的ip地址
autoCreateTopicEnable=true 

运行下述命令(请继续看后文,这个是错误示例,为了记录问题原因而写的反面示例)

docker run -d --name rmqbroker -p 10911:10911 -p 10909:10909 -v D:/dockerFile/rocketmq/broker/logs:/root/logs -v  D:\dockerFile\rocketmq\broker\store:/root/store -v D:/dockerFile/rocketmq/broker/conf/broker.conf:/opt/rocketmq/conf/broker.conf --network rocketmq-net --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh rmqbroker -c /opt/rocketmq/conf/broker.conf

出现如下问题(容器运行不起来)

sh: rmqbroker: No such file or directory
sh: rmqbroker: No such file or directory

在这里插入图片描述
原因:sh mqbroker -c /opt/rocketmq/conf/broker.conf中的mqbroker写成了和容器名字一样的的rmqbroker.

docker run -d --name rmqbroker -p 10911:10911 -p 10909:10909 -v D:/dockerFile/rocketmq/broker/logs:/root/logs -v  D:\dockerFile\rocketmq\broker\store:/root/store -v D:/dockerFile/rocketmq/broker/conf/broker.conf:/opt/rocketmq/conf/broker.conf --network rocketmq-net --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq/conf/broker.conf

各指令的含义参考文章:https://www.bmabk.com/index.php/post/67237.html
在这里插入图片描述

控制台console安装

拉取镜像

docker pull styletang/rocketmq-console-ng

运行容器

docker run -d -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=127.0.0.1:9876 -Drocketmq.config.isVIPChannel=false" -p  9999:8080 --network rocketmq-net -t --name rmqconsole styletang/rocketmq-console-ng

打开浏览器locahost:9999,出现错误
在这里插入图片描述

在这里插入图片描述
不管查了多少博客,试了多少种方法都不管用!

参考文章:https://www.cnblogs.com/datanewblood/p/17629947.html

docker pull apacherocketmq/rocketmq-dashboard:latest

在这里插入图片描述
打开空白,啥也没有!

以上问题解决办法

创建broker容器时,配置文件应改为

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSHbrokerIP1 = 192.168.0.105autoCreateTopicEnable=true #发送消息的最大线程数
sendMessageThreadPoolNums: 64
#发送消息是否使用可重入锁
useReentrantLockWhenPutMessage: true

其中brokerIP为宿主机IP1(以太网适配器以太网下的IP),查看办法如下:

C:\Users\lxhjy>ipconfigWindows IP 配置以太网适配器 vEthernet (Default Switch):连接特定的 DNS 后缀 . . . . . . . :本地链接 IPv6 地址. . . . . . . . : fe80::7fa6:4a33:941c:8e64%21IPv4 地址 . . . . . . . . . . . . : 172.18.176.1子网掩码  . . . . . . . . . . . . : 255.255.240.0默认网关. . . . . . . . . . . . . :无线局域网适配器 WLAN:媒体状态  . . . . . . . . . . . . : 媒体已断开连接连接特定的 DNS 后缀 . . . . . . . :无线局域网适配器 本地连接* 1:媒体状态  . . . . . . . . . . . . : 媒体已断开连接连接特定的 DNS 后缀 . . . . . . . :无线局域网适配器 本地连接* 2:媒体状态  . . . . . . . . . . . . : 媒体已断开连接连接特定的 DNS 后缀 . . . . . . . :以太网适配器 以太网:连接特定的 DNS 后缀 . . . . . . . :本地链接 IPv6 地址. . . . . . . . : fe80::7bf2:e3f6:62d3:dbc6%17IPv4 地址 . . . . . . . . . . . . : 192.168.0.105子网掩码  . . . . . . . . . . . . : 255.255.255.0默认网关. . . . . . . . . . . . . : 192.168.0.1以太网适配器 蓝牙网络连接:媒体状态  . . . . . . . . . . . . : 媒体已断开连接连接特定的 DNS 后缀 . . . . . . . :以太网适配器 vEthernet (WSL):连接特定的 DNS 后缀 . . . . . . . :本地链接 IPv6 地址. . . . . . . . : fe80::fb40:3e47:1ee5:dd92%49IPv4 地址 . . . . . . . . . . . . : 172.18.16.1子网掩码  . . . . . . . . . . . . : 255.255.240.0默认网关. . . . . . . . . . . . . :

而创建控制台容器时,应该为如下:

docker run -d --name rmqdashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.65.254:9876" -p 9080:8080 -t apacherocketmq/rocketmq-dashboard:latest

其中Drocketmq.namesrv.addr应该为容器namesrv IP,查看方法如下:

C:\Users\lxhjy>docker exec -it rmqnamesrv /bin/bash
[root@6adb298c9dcc bin]# ping host.docker.internal
PING host.docker.internal (192.168.65.254) 56(84) bytes of data.
64 bytes from 192.168.65.254 (192.168.65.254): icmp_seq=1 ttl=63 time=0.430 ms
64 bytes from 192.168.65.254 (192.168.65.254): icmp_seq=2 ttl=63 time=0.829 ms
64 bytes from 192.168.65.254 (192.168.65.254): icmp_seq=3 ttl=63 time=1.59 ms
^C
--- host.docker.internal ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3140ms
rtt min/avg/max/mdev = 0.430/0.951/1.594/0.482 ms

问题解决

在这里插入图片描述

遗留问题:为啥配置了自动创建topic,这里还是false?

在这里插入图片描述

http://www.lryc.cn/news/224949.html

相关文章:

  • Android Studio——android项目运行main()函数
  • 移动医疗科技:开发互联网医院系统源码
  • 代码审计, 介绍, 思路总结
  • 2023NOIP A层联测27 总结
  • 2022最新版-李宏毅机器学习深度学习课程-P34 自注意力机制类别总结
  • css sprite 的优缺点,使用方法和示例
  • 通过Cookie和Session来实现网站中登录账号的功能
  • QWidget 实现九宫格图案解锁
  • 设计模式-适配器模式(Adapter)
  • react:创建项目
  • RabbitMQ集群
  • Qt QtCreator调试Qt源码配置
  • JavaScript如何实现钟表效果,时分秒针指向当前时间,并显示当前年月日,及2024春节倒计时,源码奉上
  • 重生奇迹MU套装大全中的极品属性
  • 用Python解决猴子分桃问题
  • YOLOv8-Seg改进:分割注意力系列篇 | 新型的多尺度卷积注意力(MSCA)模块
  • 基于springboot实现致远汽车租赁平台管理系统项目【项目源码+论文说明】计算机毕业设计
  • 真的设计师做图只需要一个炫云客户端就够了
  • 简述 HTTP 请求的过程是什么?
  • 免root修改手机imei的技术原理是什么?如何实现的?hook吗
  • 【Redis】整合使用,进行注解式开发及应用场景和击穿、穿透、雪崩的讲解
  • 数据分析-numpy
  • 【Java】云HIS云端数字医院信息平台源码
  • Jupyter Notebook 内核似乎挂掉了,它很快将自动重启
  • Flink -- 事件时间 Watermark
  • Django框架简介
  • 把wpf的窗体保存为png图片
  • 2023NOIP A层联测28-大眼鸹猫
  • 电机应用-直流有刷电机
  • BIM、建筑机器人、隧道工程施工关键技术