weixin_38711205 2024-02-21 00:00 采纳率: 0%
浏览 7

求告知 rocketMq nameServer 如何设置

windows10系统 使用docker-compose 安装了rocketMq集群 两个nameServer 两个主节点 两个从节点 配置如下

docker-compose.yml配置如下

version: '3.5'
services:
  rmqnamesrv-a:
    image: apache/rocketmq:4.6.0
    container_name: rmqnamesrv-a
    ports:
      - 9876:9876
    volumes:
      - E:\rocketMq\nameServerA\log:/home/rocketmq/logs
      - E:\rocketMq\nameServerA\data:/home/rocketmq/store
    command: sh mqnamesrv
    networks:
      rmq:
        aliases:
          - rmqnamesrv-a

  rmqnamesrv-b:
    image: apache/rocketmq:4.6.0
    container_name: rmqnamesrv-b
    ports:
      - 9877:9876
    volumes:
      - E:\rocketMq\nameServerB\log:/home/rocketmq/logs
      - E:\rocketMq\nameServerB\data:/home/rocketmq/store
    command: sh mqnamesrv
    networks:
      rmq:
        aliases:
          - rmqnamesrv-b

  rmqbroker-a:
    image: apache/rocketmq:4.6.0
    container_name: rmqbroker-a
    ports:
      - 10911:10911
    volumes:
      - E:\rocketMq\logs\masterA:/home/rocketmq/logs
      - E:\rocketMq\data\masterA:/home/rocketmq/store
      - E:\rocketMq\conf\masterA\broker.conf:/home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "rmqnamesrv-a:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: sh mqbroker -c /home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    links:
      - rmqnamesrv-a:rmqnamesrv-a
      - rmqnamesrv-b:rmqnamesrv-b
    networks:
      rmq:
        aliases:
          - rmqbroker-a

  rmqbroker-a-s:
    image: apache/rocketmq:4.6.0
    container_name: rmqbroker-a-s
    ports:
      - 10912:10911
    volumes:
     - E:\rocketMq\logs\slaveA:/home/rocketmq/logs
     - E:\rocketMq\data\slaveA:/home/rocketmq/store
     - E:\rocketMq\conf\slaveA\broker.conf:/home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "rmqnamesrv-a:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: sh mqbroker -c /home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    links:
      - rmqnamesrv-a:rmqnamesrv-a
      - rmqnamesrv-b:rmqnamesrv-b
    networks:
      rmq:
        aliases:
          - rmqbroker-a-s

  rmqbroker-b:
    image: apache/rocketmq:4.6.0
    container_name: rmqbroker-b
    ports:
      - 10913:10911
    volumes:
      - E:\rocketMq\logs\masterB:/home/rocketmq/logs:/home/rocketmq/logs
      - E:\rocketMq\data\masterB:/home/rocketmq/store
      - E:\rocketMq\conf\masterB\broker.conf:/home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    command: sh mqbroker -c /home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "rmqnamesrv-a:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    links:
      - rmqnamesrv-a:rmqnamesrv-a
      - rmqnamesrv-b:rmqnamesrv-b
    networks:
      rmq:
        aliases:
          - rmqbroker-b

  rmqbroker-b-s:
    image: apache/rocketmq:4.6.0
    container_name: rmqbroker-b-s
    ports:
      - 10914:10911
    volumes:
      - E:\rocketMq\logs\slaveB:/home/rocketmq/logs
      - E:\rocketMq\data\slaveB:/home/rocketmq/store
      - E:\rocketMq\conf\slaveB\broker.conf:/home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    command: sh mqbroker -c /home/rocketmq/rocketmq-4.6.0/conf/broker.conf
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "rmqnamesrv-a:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    links:
      - rmqnamesrv-a:rmqnamesrv-a
      - rmqnamesrv-b:rmqnamesrv-b
    networks:
      rmq:
        aliases:
          - rmqbroker-b-s

  rmqconsole:
    image: styletang/rocketmq-console-ng:latest
    container_name: rmqconsole
    ports:
      - 9090:8080
    environment:
      JAVA_OPTS: -Drocketmq.namesrv.addr=rmqnamesrv-a:9876;rmqnamesrv-b:9877 -Dcom.rocketmq.sendMessageWithVIPChannel=false
    networks:
      rmq:
        aliases:
          - rmqconsole

# 自定义网络
networks:
  rmq:
    name: rmq
    driver: bridge

master-a 配置如下

brokerClusterName = rocketmq-cluster
brokerName = broker-a

# 0表示broker master  非0表示 broker slaver
brokerId = 0

# brokerIP1 当前broker监听的IP
brokerIP1 = rmqbroker-a

# brokerIP2 存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步
# brokerIP2 = 192.168.111.129

deleteWhen = 04
fileReservedTime = 48


namesrvAddr = rmqnamesrv-a:9876;rmqnamesrv-b:9877

# 是否能够自动创建topic
autoCreateTopicEnable = true

#Broker 对外服务的监听端口, 默认10911
# listenPort = 10911

#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole = ASYNC_MASTER

#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH

master-B 配置如下

brokerClusterName = rocketmq-cluster
brokerName = broker-b

# 0表示broker master  非0表示 broker slaver
brokerId = 0

# brokerIP1 当前broker监听的IP
brokerIP1 = rmqbroker-b

# brokerIP2 存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步
# brokerIP2 = 192.168.111.129

deleteWhen = 04
fileReservedTime = 48


namesrvAddr = rmqnamesrv-a:9876;rmqnamesrv-b:9877

# 是否能够自动创建topic
autoCreateTopicEnable = true

#Broker 对外服务的监听端口, 默认10911
# listenPort = 10913

#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole = ASYNC_MASTER

#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH

slave-a 配置如下

brokerClusterName = rocketmq-cluster
brokerName = broker-a

# 0表示broker master  非0表示 broker slaver
brokerId = 1

brokerIP1 = rmqbroker-a-s

deleteWhen = 04
fileReservedTime = 48


namesrvAddr = rmqnamesrv-a:9876;rmqnamesrv-b:9877

# autoCreateTopicEnable=true

#Broker 对外服务的监听端口,
#listenPort = 10912

#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole = SLAVE

#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH

slave-b 配置如下

brokerClusterName = rocketmq-cluster
brokerName = broker-b

# 0表示broker master  非0表示 broker slaver
brokerId = 1

brokerIP1 = rmqbroker-b-s

deleteWhen = 04
fileReservedTime = 48


namesrvAddr = rmqnamesrv-a:9876;rmqnamesrv-b:9877

# 是否能够自动创建topic
autoCreateTopicEnable = true

#Broker 对外服务的监听端口,
# listenPort = 10914

#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole = SLAVE

#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH

使用docker-compose 正常启动 集群启动成功 并且能正常访问

img

img

但是使用springboot 简单测试能否访问 使用了DefaultMQProducer 在设置NamesrvAddr时 不能自动创建 topic已经消费组 有没有告知下
代码如下图所示

img

求告知应该如何处理

  • 写回答

1条回答 默认 最新

  • GISer Liu 2024-02-21 01:06
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据您提供的信息,您在使用Spring Boot中的DefaultMQProducer连接RocketMQ时遇到了问题,无法自动创建topic。您可以按照以下步骤检查和调整您的配置:

    1. 确认RocketMQ集群状态

      • 首先,确保您的RocketMQ集群正常运行,包括NameServer和Broker节点。
    2. 检查NameServer配置

      • 确保您在Spring Boot应用程序中正确配置了NameServer地址。根据您提供的Docker Compose配置,NameServer地址应为rmqnamesrv-a:9876rmqnamesrv-b:9876
    3. 检查Topic自动创建配置

      • 在RocketMQ的Broker配置文件中,确保启用了自动创建topic的选项。您提供的Broker配置文件中有autoCreateTopicEnable = true,这应该是正确的设置。
    4. 检查消费者组配置

      • 确保您的消费者组在创建时具有正确的配置。您可能需要在消费者端手动创建您要使用的topic,或者确保您的消费者组能够自动创建topic。
    5. 查看日志信息

      • 检查Spring Boot应用程序的日志,查看是否有与topic创建相关的错误或警告信息。
    6. 测试连接

      • 使用RocketMQ提供的命令行工具或RocketMQ Console等工具,尝试手动发送消息到您要使用的topic,以确认连接和topic创建是否正常工作。
    7. 调试代码

      • 如果以上步骤都没有解决问题,那么可能需要检查您的Spring Boot应用程序代码,确保您正确配置了DefaultMQProducer并使用了正确的topic名称。

    根据您提供的信息,主要关注配置是否正确以及日志信息中是否有相关错误。您可以根据以上步骤逐一排查并调整配置,以确保Spring Boot应用程序能够成功连接并自动创建topic。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    评论

报告相同问题?

问题事件

  • 创建了问题 2月21日