RocketMQ部署及使用-Go

324 阅读2分钟

前言

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

image.png

image.png

自动创建

在rocketmq v4版本下,主题可以在produce message时进行创建