docker部署RocketMQ

目录

  • 参考
  • 查询镜像
  • 拉取镜像
  • 部署NameSrv
    • 创建映射目录
  • 创建容器
  • 部署Broker
    • 创建映射目录
    • 创建配置文件broker.conf
    • 创建容器
  • 部署图形化界面console-ng

参考

Docker搭建RocketMQ集群(两主两从)
使用Docker容器部署rocketmq单机的全过程

查询镜像

docker search rocketmq
NAME                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
foxiswho/rocketmq                    rocketmq                                        69                   
rocketmqinc/rocketmq                 Image repository for Apache RocketMQ            54                   
styletang/rocketmq-console-ng        rocketmq-console-ng                             37                   
apacherocketmq/rocketmq              Docker Image for Apache RocketMQ                21                   
apache/rocketmq

拉取镜像

# 拉去最新版本
docker pull foxiswho/rocketmq:server    #mq-server
...
docker pull foxiswho/rocketmq:broker    #mq-broker
...
docker pull styletang/rocketmq-console-ng   #客户端
...

# 也可以指定版本
#拉取镜像 
docker pull foxiswho/rocketmq:server-4.3.2 
docker pull foxiswho/rocketmq:broker-4.3.2

部署NameSrv

创建映射目录

mkdir -p /usr/local/rocketmq/namesrv/store /usr/local/rocketmq/namesrv/log

创建容器

#--restart=always 跟随docker一起启动
docker run -d \
--name rmqnamesrv \
--net=mynet \
-p 9876:9876 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/rocketmq/namesrv/log \
-v /usr/local/rocketmq/namesrv/store:/var/store \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "MAX_POSSIBLE_HEAP=100000000" \
foxiswho/rocketmq:server \

部署Broker

创建映射目录

mkdir -p /usr/local/rocketmq/broker/store /usr/local/rocketmq/broker/log /usr/local/rocketmq/broker/conf

创建配置文件broker.conf

vim /usr/local/rocketmq/broker/conf/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地址
brokerIP1 = 192.168.0.44  # 注意:改成你的IP地址

创建容器


docker run -d \
--name rmqbroker \
--net=mynet \
--link rmqnamesrv \
-p 10911:10911 \
-p 10909:10909 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/rocketmq/broker/store:/var/store \
-v /usr/local/rocketmq/broker/log:/var/logs \
-v /usr/local/rocketmq/broker/conf/broker.conf:/etc/rocketmq/broker.conf \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
foxiswho/rocketmq:broker

–restart=always:表示随着docker一起启动
–link:指定namesrv容器的名称
–mynet:组件一个网络

部署图形化界面console-ng

console是rocketmq的扩展组件,console组件提供了图形化的界面,便于我们管理和监控rocketmq

# --restart=always
docker run -d \
--name rmqconsole \
--net=mynet \
-p 8180:8080 \
--link rmqnamesrv:namesrv \
-v /etc/localtime:/etc/localtime \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-t styletang/rocketmq-console-ng

–link参数连接到了rmqnamesrv容器,并使用了别名namesrv,因此后面再rmqconsole容器中,可以使用namesrv:9876访问rmqnamesrv

接着访问127.0.0.1:8080如下:
在这里插入图片描述

你可能感兴趣的:(开发组件,docker,java-rocketmq,rocketmq)