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目录下输入命令touch broker.conf新建文件
输入命令vi broker.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
浏览器访问
记得防火墙开放端口
原文链接:https://blog.csdn.net/W_317/article/details/104556265