首页>运维>Docker> 文章正文

docker安装rocketMQ教程(最详细)

来源: Docker 2021-05-12 01:16 阅读: 12
RocketMQ是一款分布式、队列模型的消息中间件,是由阿里巴巴设计的,具有以下特点:

RocketMQ是一款分布式、队列模型的消息中间件,是由阿里巴巴设计的,具有以下特点:

支持严格的消息顺序

支持Topic与Queue两种模式

亿级消息堆积能力

比较友好的分布式特性

同时支持Push与Pull方式消费消息

历经多次天猫双十一海量消息考验

RocketMQ是纯java编写,基于通信框架Netty。

其实小编就冲着RocketMQ历经多次天猫双十一海量消息考验,就感觉应该选择他了,再加上有亿级消息堆积能力,这么强大的一个部件,一个新生的黑马!接下来带大家在centos7上用docker安装rocketMQ.

1.安装Namesrv

拉取镜像

dockerpullrocketmqinc/rocketmq:4.4.0

在/usr/local目录下新建文件夹mq

命令:mkdirmq

启动容器

dockerrun-d-p9876:9876-v{自己的路径}/data/namesrv/logs:/root/logs-v{RmHome}/data/namesrv/store:/root/store--namermqnamesrv-e"MAX_POSSIBLE_HEAP=100000000"rocketmqinc/rocketmq:4.4.0shmqnamesrv

如下图,我自己的路径为/usr/local/mq

你自己可以自定义路径。替换路径即可

注意事项

{自己的路径}要替换成你的宿主机想保存MQ的日志与数据的地方,通过docker的-v参数使用volume功能,把你本地的目录映射到容器内的目录上。否则所有数据都默认保存在容器运行时的内存中,重启之后就又回到最初的起点。

2.安装broker

创建broker.conf文件

1:在{自己的路径}/conf目录下创建broker.conf文件

进入之前/usr/local/mq目录下,输入命令mkdirconf新建conf目录

接着在conf目录下输入命令touchbroker.conf新建文件

输入命令vibroker.conf,点击键盘insert键开始插入状态

在broker.conf中写入如下内容

brokerClusterName=DefaultCluster

brokerName=broker-a

brokerId=0

deleteWhen=04

fileReservedTime=48

brokerRole=ASYNC_MASTER

flushDiskType=ASYNC_FLUSH

brokerIP1={本地公网IP}

(我的是阿里云服务器,箭头处为公网ip)

输入完成后按Esc键,按shift再按v

输入wq!退出

启动容器

dockerrun-d-p10911:10911-p10909:10909-v{自己的路径}/data/broker/logs:/root/logs-v{自己的路径}/rocketmq/data/broker/store:/root/store-v{自己的路径}/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf--namermqbroker--linkrmqnamesrv:namesrv-e"NAMESRV_ADDR=namesrv:9876"-e"MAX_POSSIBLE_HEAP=200000000"rocketmqinc/rocketmq:4.4.0shmqbroker-c/opt/rocketmq-4.4.0/conf/broker.conf

注意事项

注意:{自己的路径}同上步一样,不再缀述。broker.conf的文件中的brokerIP1是你的broker注册到Namesrv中的ip。如果不指定他会默认取容器中的内网IP。除非你的应用也同时部署在网络相通的容器中,本地或容器外就无法连接broker服务了,进而导致类似RemotingTooMuchRequestException等各种异常。

3.安装rocketmq控制台

拉取镜像

dockerpullstyletang/rocketmq-console-ng

查看镜dockerps

启动rocketmq控制台

dockerrun-e"JAVA_OPTS=-Drocketmq.namesrv.addr=服务器公网ip:9876-Dcom.rocketmq.sendMessageWithVIPChannel=false"-p8080:8080-tstyletang/rocketmq-console-ng

查看运行中的状态

状态为up说明成功运行

dockerps-a

浏览器访问

记得防火墙开放端口

您可能感兴趣的文章:Docker中RocketMQ的安装与使用详解