1 前言
一些概念和原理放到后面,本篇为纯教程,主要在于怎么在自己的服务器上使用docker搭建RocketMQ以及可能会出现的问题
不过基本概念还是要说一下,不然你可能会对一些名称感到莫名其妙
- NameServer:主要用作注册中心,用于管理Topic信息和路由信息的管理
- Broker:负责存储、消息tag过滤和转发。需将自身信息上报给注册中心NameServer
- Producer:生产者
- Consumer:消费者
2 docker拉取镜像
我们在服务器的docker上面需要部署三个容器:Server,Broker,Console,Server和Broker对应上方概念,Console则是一个炫酷的RockerMQ管理工具(注意,这里仅仅用作学习所以镜像源是随意选的,生产环境严禁使用非官方镜像源)
2.1 部署Server
docker 会自动帮你拉取镜像,所以静静等待一会儿就能创建容器并启动了
docker run -d -p 9876:9876 --restart=always --name rmqserver foxiswho/rocketmq:server-4.5.1
2.2 部署Broker
docker run -d -p 10911:10911 --restart=always --name rmqbroker --link rmqserver:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" foxiswho/rocketmq:broker-4.5.1
2.3 部署Console
docker run -d --name rmqconsole -p 8181:8080 --link rmqserver:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876\
-Dcom.rocketmq.sendMessageWithVIPChannel=false" -t styletang/rocketmq-console-ng
2.4 查看docker容器
通过docker ps命令可以看到,我们的容器已经正常启动
3 打开对应端口
在防火墙把对应端口开放,如果出现错误可能是防火墙没启动
firewall-cmd --add-port=8181/tcp --add-port=9876/tcp --add-port=10911/tcp --permanent
4 访问控制台
访问localhost:8181我们可以看到如下界面,RockerMQ在服务器上的部署完成(这里留了一个小坑,下一节demo中会说明,传送门——springboot简单使用rocketMQ)