GitHub user huangjuncong edited a discussion: rocketmq5.3.2  加上proxy 
组件后,报错,broker注册地址偶尔是组件容器IP,不断和宿主IP切换

mq1 compose:
`version: '3.8'
services:
  rmqnamesrv:
    image: apache/rocketmq:5.3.2
    container_name: rmqnamesrv
    ports:
      - "9876:9876"
    volumes:
      # 将日志挂载到 /data
      - /data/rocketmq/namesrv/logs:/home/rocketmq/logs
      # GC 日志挂载
      - /data/rocketmq/namesrv/gclogs:/home/rocketmq/gclogs
    networks:
      - rocketmq
    extra_hosts:
      - "mq1:192.62.31.18"
      - "mq2:192.62.31.19"
      - "mq3:192.62.31.20"
    environment:
      - JAVA_OPT_EXT=-Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=64m 
-XX:MaxMetaspaceSize=128m  -XX:MaxGCPauseMillis=100 -XX:+PrintGC 
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=100M 
-Xloggc:/home/rocketmq/gclogs/gc.log
    command: sh mqnamesrv
    restart: unless-stopped
    user: "3000:3000"
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 1G
        reservations:
          cpus: '0.25'
          memory: 512M

  rmqbroker-a:
    image: apache/rocketmq:5.3.2
    container_name: rmqbroker-a
    ports:
      - "10909:10909"
      - "10911:10911"
      - "10912:10912"
    environment:
      - NAMESRV_ADDR=mq1:9876;mq2:9876;mq3:9876
      - JAVA_OPT_EXT=-Xms6g -Xmx6g -Xmn3g -XX:MetaspaceSize=128m 
-XX:MaxMetaspaceSize=256m -XX:MaxGCPauseMillis=200 -XX:MaxDirectMemorySize=1g 
-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M 
-Xloggc:/home/rocketmq/gclogs/gc.log
    depends_on:
      - rmqnamesrv
    extra_hosts:
      - "mq1:192.62.31.18"
      - "mq2:192.62.31.19"
      - "mq3:192.62.31.20"
    volumes:
      # 配置文件从 /opt/rocketmq 加载
      - 
./broker-a/conf/broker.conf:/home/rocketmq/rocketmq-5.3.2/conf/broker.conf
      # 将日志和存储挂载到 /data
      - /data/rocketmq/broker-a/logs:/home/rocketmq/logs
      - /data/rocketmq/broker-a/store:/home/rocketmq/store
      # GC 日志挂载
      - /data/rocketmq/broker-a/gclogs:/home/rocketmq/gclogs
    networks:
      - rocketmq
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.3.2/conf/broker.conf
    restart: unless-stopped
    user: "3000:3000"
    deploy:
      resources:
        limits:
          cpus: '3.0'
          memory: 10G
        reservations:
          cpus: '2.0'
          memory: 8G

  rmqbroker-b-s:
    image: apache/rocketmq:5.3.2
    container_name: rmqbroker-b-s
    ports:
      - "11909:10909" # Slave B需要不同端口
      - "11911:10911"
      - "11912:10912"
    extra_hosts:
      - "mq1:192.62.31.18"    # 示例:mq1 映射到 192.62.31.18
      - "mq2:192.62.31.19"    # 示例:mq2 映射到 192.62.31.19
      - "mq3:192.62.31.20"    # 示例:mq3 映射到 192.62.31.20
    environment:
      - NAMESRV_ADDR=mq1:9876;mq2:9876;mq3:9876
      - JAVA_OPT_EXT=-Xms3g -Xmx3g -Xmn2g -XX:MetaspaceSize=64m 
-XX:MaxMetaspaceSize=128m -XX:MaxGCPauseMillis=200 -XX:MaxDirectMemorySize=512m 
 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=100M 
-Xloggc:/home/rocketmq/gclogs/gc.log
    depends_on:
      - rmqnamesrv
    volumes:
      # 配置文件从 /opt/rocketmq 加载
      - 
./broker-b-s/conf/broker.conf:/home/rocketmq/rocketmq-5.3.2/conf/broker.conf
      # 将日志和存储挂载到 /data
      - /data/rocketmq/broker-b-s/logs:/home/rocketmq/logs
      - /data/rocketmq/broker-b-s/store:/home/rocketmq/store
      # GC 日志挂载
      - /data/rocketmq/broker-b-s/gclogs:/home/rocketmq/gclogs
    networks:
      - rocketmq
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.3.2/conf/broker.conf
    restart: unless-stopped
    user: "3000:3000"
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 6G
        reservations:
          cpus: '1.0'
          memory: 4G
  rmqproxy-a:
    image: apache/rocketmq:5.3.2
    container_name: rmqproxy-a
    networks:
      - rocketmq
    depends_on:
      - rmqnamesrv
      - rmqbroker-a
    ports:
      - "8080:8080" # Proxy HTTP
      - "8081:8081" # Proxy gRPC
    restart: unless-stopped
    extra_hosts:
      - "mq1:192.62.31.18"    # 示例:mq1 映射到 192.62.31.18
      - "mq2:192.62.31.19"    # 示例:mq2 映射到 192.62.31.19
      - "mq3:192.62.31.20"    # 示例:mq3 映射到 192.62.31.20
    user: "3000:3000"
    volumes:
      # 配置文件从 /opt/rocketmq 加载
      - ./proxy/conf/proxy.json:/home/rocketmq/rocketmq-5.3.2/conf/proxy.json
      # 将日志挂载到 /data
      - /data/rocketmq/proxy/logs:/home/rocketmq/logs
      # GC 日志挂载
      - /data/rocketmq/proxy/gclogs:/home/rocketmq/gclogs
    environment:
      - NAMESRV_ADDR=mq1:9876;mq2:9876;mq3:9876
      - JAVA_OPT_EXT=-Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=64m 
-XX:MaxMetaspaceSize=128m -XX:MaxGCPauseMillis=100 -XX:MaxDirectMemorySize=512m 
-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=100M 
-Xloggc:/home/rocketmq/gclogs/gc.log
    command: sh mqproxy  -pc  /home/rocketmq/rocketmq-5.3.2/conf/proxy.json
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 4G
        reservations:
          cpus: '0.5'
          memory: 2G
networks:
  rocketmq:
    name: rocketmq
    driver: bridge`
    
  broker.conf:
  `brokerName=broker-a
brokerId=0
namesrvAddr=mq1:9876;mq2:9876;mq3:9876
brokerRole=ASYNC_MASTER
flushDiskType=SYNC_FLUSH
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumeQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index
storePathSslFile=/home/rocketmq/store/ssl
vipChannelEnabled=true
autoDetectAddress=false
listenPort=10911
deleteWhen=04
fileReservedTime=48
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
flushCommitLogLeastPages=1
flushCommitLogThoroughInterval=10000
commitCommitLogLeastPages=1
commitCommitLogThoroughInterval=200
flushConsumeQueueLeastPages=1
flushConsumeQueueThoroughInterval=60000
maxMessageSize=4194304
brokerVIP1=mq1
advertiseAddr=mq1:10911
brokerIP1=mq1
brokerIP2=mq1
messageIndexEnable=true
messageIndexInterval=60000
longPollingEnable=true
slaveReadEnable=false
enableSlaveActingMaster=false
readQueueNums=16
writeQueueNums=16
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=12
traceTopicEnable=true
enableBuiltInProxy=true
enableProxyProtocol=true
proxyMode=local
proxyGrpcServerPort=8081
proxyHttpServerPort=8080
`


proxy.json:

`{
  "namesrvAddr": "mq1:9876;mq2:9876;mq3:9876",
  "proxyMode": "local",
  "grpcServerPort": 8081,
  "remotingListenPort": 8080,
  "rocketMQClusterName": "DefaultCluster"

}`  

<img width="1888" height="703" 
alt="ROCKETMQ_ff57ee50-8c26-448d-984e-ad8b827bbdef" 
src="https://github.com/user-attachments/assets/0f798172-1a7f-4b9a-8d7c-dabc017daec0";
 />
图中报错是连到mq3 proxy-c 容器IP了

broker地址莫名奇妙变成容器IP,如下图:
<img width="1885" height="613" alt="image" 
src="https://github.com/user-attachments/assets/513e6ac9-e36a-4f24-b850-ef13c9523744";
 />



    

GitHub link: https://github.com/apache/rocketmq/discussions/9814

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to