docker-compose部署rocketmq集群

前言

测试环境需要一个2m2s的rockermq进行业务测试,此方式推荐使用在测试环境中使用,不推荐生产。

正文

一键部署 docker-compose

一键部署

git clone https://gitee.com/fatsnake/rocketmq-docker-compose.git
cd rocketmq-docker-compose

chmod +x  start.sh

./start.sh

///////////////////////////////////如果没起来再看看下面的能不能帮到你/////////////////////////////////

设置目录权限

chmod 777 rocketmq-docker-compose

// 不能设置权限777的同学可以设置如下 
chown 3000:3000 ./rocketmq-docker-compose/rocketmq/logs 
chown 3000:3000 ./rocketmq-docker-compose/rocketmq/store

坑1:修改brokerIP1

如果你的微服务没有放入docker或者rocketmq容器中,不能用IP直接访问。 请修改broker-a.conf、broker-b.conf、broker-a-s.conf、broker-b-s.conf
的brokerIP为宿主机IP,并去掉#。

否则会报如下错误: com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <172.0.0.120:10909> failed

运行 & 停止

docker-compose的常用命令

https://www.cnblogs.com/stcweb/articles/15116551.html
docker-compose命令请在docker-compose.yml文件同目录下

docker-compose up -d // 后台启动
docker-compose down // 停止容器 + 删除镜像

docker-compose up -d // 后台启动
docker-compose down // 停止容器 + 删除镜像

查看日志

docker-compose logs -f

进入单个容器查看日志

// 容器列表,查找容器id
docker ps -a

// 进入单个容器 
docker exec -it f1b089616dd0 /bin/bash

坑2 : Docker 配置网络 - 使用 bridge 网络, 设置内核转发

集群启动后,集群各节点不能互相通信,需要设置linux内核转发
https://blog.csdn.net/qq_16605855/article/details/79476615
默认情况下,从容器发送到默认网桥的流量,并不会被转发到外部。要开启转发,需要改变两个设置。这些不是 Docker 命令,并且它们会影响 Docker 主机的内核。

// 配置 Linux 内核来允许 IP 转发
sysctl net.ipv4.conf.all.forwarding=1

// 改变 iptables 的政策,FORWARD 政策从 DROP 变为 ACCEPT
sudo iptables -P FORWARD ACCEPT

这些设置在重新启动时失效,因此可能需要将它们添加到启动脚本中。

各节点端口

节点 宿主机端口:容器内端口
rmqnamesrv-a 9876:9876
rmqnamesrv-b 9877:9876
rmqbroker-a 10911:10911
rmqbroker-a-s 10912:10911
rmqbroker-b 10913:10911
rmqbroker-b-s 10914:10911
rmqconsole 6080:8080

rmqconsole: http://宿主机IP:6080

坑记录

参考鸣谢

你可能感兴趣的:(docker-compose部署rocketmq集群)