【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_FLUSH

brokerIP1 = 192.168.0.105

autoCreateTopicEnable=true 

#发送消息的最大线程数
sendMessageThreadPoolNums: 64
#发送消息是否使用可重入锁
useReentrantLockWhenPutMessage: true

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

C:\Users\lxhjy>ipconfig

Windows IP 配置


以太网适配器 vEthernet (Default Switch):

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::7fa6:4a33:941c:8e64%21
   IPv4 地址 . . . . . . . . . . . . : 172.18.176.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0
   默认网关. . . . . . . . . . . . . :

无线局域网适配器 WLAN:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 1:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 2:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 以太网:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::7bf2:e3f6:62d3:dbc6%17
   IPv4 地址 . . . . . . . . . . . . : 192.168.0.105
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.0.1

以太网适配器 蓝牙网络连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 vEthernet (WSL):

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::fb40:3e47:1ee5:dd92%49
   IPv4 地址 . . . . . . . . . . . . : 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?

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/125253.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试10000次依然会问的【线程池】,你还不会?

线程池的基本概念 线程池是一种基于池化技术的线程使用方式,它允许我们有效地管理和复用线程,减少线程的创建和销毁的开销,从而提高系统的响应速度。在Java中,线程池的管理主要通过ThreadPoolExecutor类来实现。 线程池的定义与…

【Python】AppUI自动化—appium自动化开发环境部署、APP测试案例(17)上

文章目录 一.appium简介1.什么是appium2.appium 的工作原理3.APP类型4.APP页面布局 二,appium开发环境部署(python环境)1.下载安装环境1.1.下载安装所需环境1.2.Appium-desktop( Appium-Server-GUI )配置1.3.Appium-Inspector 配置…

Python堆栈详细介绍

概要 虽然一些数据结构是通用的并且可以在广泛的应用中使用,但其他数据结构是专门化的并且被设计用于处理特定问题。堆栈就是这样一种专门的结构,以其简单性和非凡的实用性而闻名。 那么,什么是栈呢?从本质上讲,堆栈…

web3通过antd 在React dapp中构建订单组件基本结构

上文web3 dapp React项目引入 antd 对 balance 用户token信息组件进行样式改造 中 我们导入 antd组件 算是比较完整的编写了用户资产组件 那么 今天开始 我们就要说订单组件了 这个就会比之前的复杂很多 我们还是先开环境 ganache 终端执行 ganache -d然后 将合约 发布到区块链…

使用promise创建一个同步事件驱动api

使用promise创建一个同步事件驱动api 事件驱动体系结构(EDA)是一种强大的方法,可以在网络上构建松散耦合、性能好、可伸缩的应用程序。它支持非常多功能,如推送通知、协作编辑和多人操作,以及其他实时交互。 但有时模型与我们开发人员需要的…

【树的存储结构,孩子链表】

文章目录 树和森林树的存储结构孩子链表 树和森林 森林:是m(m>0)棵互不相交的树的集合。 树的存储结构 1.双亲表示法 实现:定义结构数组存放树的结点,每个结点含两个域。 数据域:存放结点本身信息。 双亲域:指…

虚假内容检测,谣言检测,不实信息检测,事实核查;纯文本,多模态,多语言;数据集整理

本博客系博主个人理解和整理所得,包含内容无法详尽,如有补充,欢迎讨论。 这里只提供数据集相关介绍和来源出处,或者下载地址等,因版权原因不提供数据集所含的元数据。如有需要,请自行下载。 “Complete d…

亚马逊云科技海外服务器初体验

目录 前言亚马逊云科技海外服务器概述注册使用流程实例创建性能表现用户体验服务支持初体验总结 前言 随着云原生技术的飞速发展,越来越多的企业和开发者选择云服务器来作为自己的使用工具,云原生技术的发展也促进了云服务厂商的产品发展,所…

Leetcode Hot 100之四:283. 移动零+11. 盛最多水的容器

283.移动零 题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] …

算法通关村第七关-黄金挑战二叉树迭代遍历

大家好我是苏麟 , 今天带来二叉树的迭代遍历 . 二叉树的迭代遍历 前序编列 描述 : 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 题目 : LeetCode 二叉树的前序遍历 : 144. 二叉树的前序遍历 分析 : 前序遍历是中左右,如果还有左子树就一…

一款基于.Net开发、开源、支持多平台云存储文件管理器

目录 01 项目简介02 项目代码03 部分截图04 项目地址 今天给大家推荐一款基于基于.Net开发、开源的,支持多平台的云存储文件管理器。 01 项目简介 Camelotia是一款云存储文件管理器,基于.Net UI框架和ReactiveUI框架开发的,目前支持的平台有…

AI:75-基于生成对抗网络的虚拟现实场景增强

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

Bitget Wallet:使用 Base 链购买 ETH 的简明教程

Base 链是一种 Layer 2(L2)公链,它可以为用户提供以太坊(ETH)代币,而 Bitget Wallet 是一款多功能加密货币钱包,支持 Base 链以及其他主要区块链。

进行 “最佳价格查询器” 的开发

前置条件 public class Shop {private final String name;private final Random random;public Shop(String name) {this.name name;random new Random(name.charAt(0) * name.charAt(1) * name.charAt(2));}public double getPrice(String product) {return calculatePrice…

SpringBoot自动配置的原理篇,剖析自动配置原理;实现自定义启动类!附有代码及截图详细讲解

SpringBoot 自动配置 Condition Condition 是在Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作 思考:SpringBoot是如何知道要创建哪个Bean的?比如SpringBoot是如何知道要创建RedisTemplate的?…

剖析WPF模板机制的内部实现

剖析WPF模板机制的内部实现 众所周知,在WPF框架中,Visual类是可以提供渲染(render)支持的最顶层的类,所有可视化元素(包括UIElement、FrameworkElment、Control等)都直接或间接继承自Visual类。…

单例模式 rust和java的实现

文章目录 单例模式介绍应用实例:优点使用场景 架构图JAVA 实现单例模式的几种实现方式 rust实现 rust代码仓库 单例模式 单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建…

【第2章 Node.js基础】2.4 Node.js 全局对象...持续更新

什么是Node.js 全局对象 对于浏览器引擎来说,JavaScript 脚本中的 window 是全局对象,而Node.js程序中的全局对象是 global,所有全局变量(除global本身外)都是global 对象的属性。全局变量和全局对象是所有模块都可以调用的。Node.is 的全局…