docker安装rocketMQ和安装过程中出现问题的解决

目录
  • 拉取rocketmq镜像
  • 创建namesrv
  • 创建单个broker节点
  • rocketMQ-console服务

本文主要介绍安装rocketMQ4.4.0,主要分为四步,分别为:
1、拉取rocketmq镜像。
2、创建namesrv。
3、创建broker节点,我在这里介绍的是创建单个broker的。
4、rocketMQ-console服务,用于管理rocketMQ的管理界面。

拉取rocketmq镜像

docker命令如下

docker pull rocketmqinc/rocketmq:4.4.0

创建namesrv

docker命令

docker run -d --name rmqnamesrv -p 9876:9876 -v C:\data\rocketmq\logs:/root/logs -v C:\data\rocketmq\store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv

参数解释

参数 描述
-d 以守护进程的方式启动
- -name 设置容器的名字
-p 容器9876端口映射到本机9876端口上
-v 把容器/root/logs(日志文件)目录映射到本机对应路径上 /把容器/root/store(数据存储)目录映射到本机对应路径上
-e 设置容器最大堆内存为 100000000
rocketmqinc/rocketmq:4.4.0 镜像名称:版本
sh 启动服务mqnamesrv

创建单个broker节点

docker命令

docker run -d --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 --privileged=true -v  C:\data\broker\logs:/root/logs -v  C:\data\broker\store:/root/store -v C:\data\broker\conf\broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

参数解释

参数 描述
-d 以守护进程的方式启动
- -name 设置容器的名字
- -link 和rmqnamesrv 容器建立通讯
-p 10911:10911 把容器的非VIP通讯端口10911映射到本机10911端口
-p 10909:10909 把容器的VIP通讯端口1090映射到本机10909端口
–privileged=true 设置允许挂载私有文件夹
-v 把容器/root/logs(日志文件)目录映射到本机对应路径上 /把容器/root/store(数据存储)目录映射到本机对应路径上 / 把容器/opt/rocketmq-4.4.0/conf/broker.conf配置文件映射到本机对应路径上(每次可以修改本机上的broker.conf文件,重启容器即可)
-e “NAMESRV_ADDR=namesrv:9876” 指定namesrv的地址为本机的9876
-e “MAX_POSSIBLE_HEAP=200000000” 设置broker服务的最大堆内存为 200000000
rocketmqinc/rocketmq:4.4.0 镜像名称:版本
sh mqbroker 启动服务mqbroker
-c /opt/rocketmq-4.4.0/conf/broker.conf 指定配置文件启动broker

broker.conf文件配置

#如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址
namesrvAddr = 本机ip地址:9876
brokerIP1 = 本机ip地址

broker.conf配置文件中如果不加namesrvAddr配置,运行程序时会报如下的错:

Exception in thread "main" org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout
 at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:588)
 at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1223)
 at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1173)
 at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:214)
 at com.baojian.mob.base.producer.SyncProducer.main(SyncProducer.java:41)
15:22:31.455 [NettyClientSelector_1] INFO RocketmqRemoting - closeChannel: close the connection to remote address[] result: true
15:22:32.049 [NettyClientSelector_1] INFO RocketmqRemoting - closeChannel: close the connection to remote address[] result: true

rocketMQ-console服务

docker命令

可以不使用docker pull 命令进行镜像拉取,直接执行docker run命令,如果此镜像不存在会先拉取镜像在执行docker run。

docker run -d --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.122.115:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8081:8080 pangliang/rocketmq-console-ng

参数说明

描述 说明
-d 以守护进程的方式启动
- -name 设置容器的名字
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.122.115:9876 设置namesrv服务的IP地址
-Dcom.rocketmq.sendMessageWithVIPChannel=false" 不使用VIP通道发送消息
-p 8081:8080 把容器内的端口8080映射到主机上的8081端口

rocketmq-console界面
容器运行成功后,使用浏览器打开 http://127.0.0.1:8081 就可以进入到rokcetmq-console管理界面,看到集群信息,说明rocketmq安装成功了。

rocketmq-console生产者界面报错问题

点击搜索报错,是因为生产者创建生产组后使用producer.shutdown()将它关闭了,将下面代码注销即可。

到此这篇关于docker安装rocketMQ和安装过程中出现问题的解决的文章就介绍到这了,更多相关docker安装rocketMQ内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker安装rocketMQ教程(最详细)

    RocketMQ是一款分布式.队列模型的消息中间件,是由阿里巴巴设计的,具有以下特点: 支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能力 比较友好的分布式特性 同时支持Push与Pull方式消费消息 历经多次天猫双十一海量消息考验 RocketMQ是纯java编写,基于通信框架Netty. 其实小编就冲着RocketMQ历经多次天猫双十一海量消息考验,就感觉应该选择他了,再加上有亿级消息堆积能力,这么强大的一个部件,一个新生的黑马!接下来带大家在centos7上用dock

  • 超详细Docker Desktop下安装rocketmq的教程

    安装Docker Desktop 下载地址:Docker Desktop for Mac and Windows | Docker 确认Docker-compose命令是否可用 docker-compose --version 查看docker镜像 docker search rocketmq 下载镜像 apacherocketmq/rocketmq docker pull apacherocketmq/rocketmq 编写yml文件 docker-compose.yml services:

  • Docker中RocketMQ的安装与使用详解

    搜索RocketMQ的镜像,可以通过docker的hub.docker.com上进行搜索,也可以在Linux下通过docker的search命令进行搜索,不过最近防火墙升级后,导致国外的网站打开都很慢,通过命令搜索反而会更加方便,操作Docker命令一定要是root用户或者具有root权限的用户.查询操作如下: docker search rocketmq 可以得到如下的结果: 镜像倒是蛮多的,不过看来看去没有一个是官方发布的,我就随便选一个吧,如foxiswho/rocketmq,以下是一个查

  • docker安装RocketMQ的实现步骤

    目录 一.检索镜像 二.创建Broker Server 三.创建broker 四.创建rocketmq console 五.测试 六.java样例 七.其他 参考: 一.检索镜像 docker search rocketmq 检索具体版本 curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags | tr -d '[\[\]" ]' | tr '}' '\n' | awk -F: -v image='f

  • docker安装rocketMQ和安装过程中出现问题的解决

    目录 拉取rocketmq镜像 创建namesrv 创建单个broker节点 rocketMQ-console服务 本文主要介绍安装rocketMQ4.4.0,主要分为四步,分别为: 1.拉取rocketmq镜像. 2.创建namesrv. 3.创建broker节点,我在这里介绍的是创建单个broker的. 4.rocketMQ-console服务,用于管理rocketMQ的管理界面. 拉取rocketmq镜像 docker命令如下 docker pull rocketmqinc/rocketm

  • win10上安装ubunt18双系统过程中出现mmx64.efi not found问题

    安装Ubuntu18过程中,从u盘启动ubunt安装,出现mmx64.efi not found问题 如下图: 制作好ubunt启动盘之后在EFI/BOOT下会看到两个文件,将其中grubx64.efi改名为mmx64.efi即可重装系统. 总结 以上所述是小编给大家介绍的win10上安装ubunt18双系统过程中出现mmx64.efi not found问题,希望对大家有所帮助!

  • SpringMail使用过程中的报错解决办法

    SpringMail使用过程中的报错解决办法 1.Unable to locate provider for protocol: smtp –>缺少依赖造成的 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <dependency

  • MybatisPlus分页查询与多条件查询介绍及查询过程中空值问题的解决

    目录 前言 一.分页处理 1.调用方法传入参数获取返回值 2.设置分页拦截器 二.条件查询 2.1通过QueryWrapper对象来执行分页查询 2.2在QueryWrapper对象的基础上使用lambda表达式 2.3直接通过LambdaQueryWrapper对象 三.多条件查询 3.1且的情况 3.2或的情况 四.null判定 前言 MP这样一款强大的持久层框架处理起来复杂的SQL来也是得心应手,效率极高,快快与我一同领略Plus的独特魅力吧 一.分页处理 1.调用方法传入参数获取返回值

  • SQL Server 2005安装过程中出现错误的解决办法

    SQL Server 2005的英文RTM版我一个月前就下载了,到现在也没装上. 安装过程中总是提示我"无法连接数据库,不能对SQL Server进行配置"等等类似的信息. 我开始以为是我系统的原因,重装了好几次也不起作用. 今天终于找到了解决办法,感谢Uestc95提供的这个方法. 把以下代码保存为.bat文件运行即可. 复制代码 代码如下: @echo on cd /d c:\temp if not exist %windir%\system32\wbem goto TryInst

  • Linux部署Tomcat发布项目过程中各种问题及解决方法

    部署项目到项目现场测试环境 JDK1.8 Tomcat8.5 Maven打包好的war Linux-----Centos 不知道谁给现场的Tomcat,将其上传到Linux平台******目录,并且进行解压.直接启动 图1: 问题1 因为是第一次启动Tocmat,没有日志文件.所以直接启动 ./startup.sh.后续可以使用以下命令动态的查看日志信息.执行后提示没有执行权限 ./startup.sh & tailf ../logs/catalina.out 问题分析: .sh可执行文件 当前

  • Mac上Oracle数据库的安装及过程中一些问题的解决

    1. 访问Oralce 的官网,下载相关压缩包 http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html 注意:在mac 山狮操作系统下,要下载x86 即 32位版本.不能用 64位的.否则 navicat 也不能使用 2. 把所有的文件压缩到 一个目录下(我用的是 /desktop/oracle) 3.把这个oralce 目录复制到 /opt 目录下 在/opt 目录下就有 /opt/oracle/instantcli

  • 完美解决MSSQL"以前的某个程序安装已在安装计算机上创建挂起的文件操作"

    步骤是: 1)添加/删除程序中彻底删除sql server. 2)将没有删除的sql server目录也删除掉. 3)打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \Session Manager中找到PendingFileRenameOperations项目,并删除它.这样就可以清除安装暂挂项目. 4)删除注册表中跟sql server相关的键. 其中第3步最重要!!!这里所说的找到不是在左边的文件夹找到,而是从右边

随机推荐