rocketmq docker 启动全过程
By:Roy.LiuLast updated:2021-09-02
今天用docker 来搭建 rocketMQ 测试环境,直接用docker search rocketmq 去找响应的镜像,找一个目前最多的来装。
然后运行命令:
docker pull docker.io/foxiswho/rocketmq:4.8.0
等待结束,因为目前这个仓库里的最新版就是 4.8.0. 如果你用latest好像会报错,安装不了。
安装结束之后,首先启动 nameserver
docker run -d --restart=always -v /docker/rocketmq/data/namesrv/logs:/home/rocketmq/logs \ --name rmqnamesrv \ -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \ -p 9876:9876 \ foxiswho/rocketmq:4.8.0 \ sh mqnamesrv
这里,我映射了本地目录,所以在运行命令之前,需要先自己手动创建相应目录
运行broker, 执行如下命令:
docker run -d \ --restart=always \ --name rmqbroker \ --privileged=true \ --link rmqnamesrv:namesrv \ -p 10911:10911 -p 10912:10912 -p 10909:10909 \ -v /docker/rocketmq/data/broker/logs:/home/rocketmq/rocketmq-4.8.0/logs \ -v /docker/rocketmq/data/broker/store:/home/rocketmq/rocketmq-4.8.0/store \ -v /docker/rocketmq/conf/broker.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf \ -e "NAMESRV_ADDR=namesrv:9876" \ -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \ foxiswho/rocketmq:4.8.0 \ sh mqbroker -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf
这里也映射了一些目录已经文件,最重要的是目录位置,在镜像里面一定要用 /home/rocketmq/rocketmq-4.8.0 , 否则启动不起来。另外还有borker.conf 配置文件,在本地的这个目录: /docker/rocketmq/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.222.150
IP 地址设置成了本机所在的ip.
运行一段时间之后,查看是否正常:
From:一号门
Previous:Redis位运算操作与redisTemplate结合
COMMENTS