前言
rocketmq目前已经支持了5.0版本,近段时间看了一下官方文档和clientGo客户端,发现5.0和4.X区别还挺大的。抱着learning is endless态度,那就开学吧。
RocketMQ部署
docker-compose.yml部署
V5.0
version: '3.8'
services:
namesrv: # name server
image: apache/rocketmq:latest
container_name: rmqnamesrv
ports:
- 9876:9876
networks:
- rocketmq
command: sh mqnamesrv
environment:
- TZ=Asia/Shanghai
broker: # 消息代理
image: apache/rocketmq:latest
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
- TZ=Asia/Shanghai
depends_on:
- namesrv
networks:
- rocketmq
command: sh mqbroker
proxy: # 消息代理
image: apache/rocketmq:latest
container_name: rmqproxy
networks:
- rocketmq
depends_on:
- broker
- namesrv
ports:
- 8080:8080
- 8081:8081
restart: on-failure
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
- TZ=Asia/Shanghai
command: sh mqproxy
rocketmq-dashboard:
image: apacherocketmq/rocketmq-dashboard:latest
container_name: rocketmq-dashboard
networks:
- rocketmq
depends_on:
- namesrv
ports:
- 8888:8080
environment:
- JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876
- TZ=Asia/Shanghai
networks:
rocketmq:
driver: bridge
V4
version: '3.8'
services:
namesrv:
image: apache/rocketmq:4.9.6
container_name: rmqnamesrv
ports:
- 9876:9876
networks:
- rocketmqV4
command: sh mqnamesrv
broker:
image: apache/rocketmq:4.9.6
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
volumes:
- ./broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
depends_on:
- namesrv
networks:
- rocketmqV4
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
dashboard:
image: apacherocketmq/rocketmq-dashboard:latest
container_name: rocketmq-dashboard-v4
ports:
- 9004:8080
environment:
- JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876
networks:
- rocketmqV4
depends_on:
- namesrv
- broker
networks:
rocketmqV4:
driver: bridge
./broker.conf
brokerIP1=192.168.1.145
namesrvAddr=rmqnamesrv:9876
## ! do not use broker container IP, use Host machine IP
## !or add producer.setVipChannelEnabled(false)
创建主题
mqadmin 创建
在rocketmq v5版本下,producer在发送消息前需创建主题。
rocketmq@654f1dd329a4:~/rocketmq-5.3.1/bin$ sh mqadmin updateTopic -n rmqnamesrv:9876 -b rmqbroker:10911 -t normal-topic -a +message.type=NORMAL
自动创建
在rocketmq v4版本下,主题可以在produce message时进行创建