介绍

搭建RocketMQ的name server、broker主+从、RocketMQ console监控程序。可以要的实际需求修改配置增加节点。

docker-compose.yml文件

  1. version: '3.5'
  2. services:
  3. rmqnamesrv:
  4. image: foxiswho/rocketmq:server
  5. container_name: rmqnamesrv
  6. ports:
  7. - "9876:9876"
  8. volumes:
  9. - ./data/logs:/opt/logs
  10. - ./data/store:/opt/store
  11. networks:
  12. rmq:
  13. aliases:
  14. - rmqnamesrv
  15. rmqbroker-a:
  16. image: foxiswho/rocketmq:broker
  17. container_name: rmqbroker-a
  18. ports:
  19. - "10911:10911"
  20. volumes:
  21. - ./data/broker-a/logs:/opt/logs
  22. - ./data/broker-a/store:/opt/store
  23. - ./data/brokerconf/broker-a.conf:/etc/rocketmq/broker.conf
  24. environment:
  25. NAMESRV_ADDR: "rmqnamesrv:9876"
  26. JAVA_OPTS: " -Duser.home=/opt"
  27. JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
  28. command: mqbroker -c /etc/rocketmq/broker.conf
  29. depends_on:
  30. - rmqnamesrv
  31. networks:
  32. rmq:
  33. aliases:
  34. - rmqbroker
  35. rmqbroker-a-s:
  36. image: foxiswho/rocketmq:broker
  37. container_name: rmqbroker-a-s
  38. ports:
  39. - "10912:10912"
  40. volumes:
  41. - ./data/broker-a-s/logs:/opt/logs
  42. - ./data/broker-a-s/store:/opt/store
  43. - ./data/brokerconf/broker-a-s.conf:/etc/rocketmq/broker.conf
  44. environment:
  45. NAMESRV_ADDR: "rmqnamesrv:9876"
  46. JAVA_OPTS: " -Duser.home=/opt"
  47. JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
  48. command: mqbroker -c /etc/rocketmq/broker.conf
  49. depends_on:
  50. - rmqnamesrv
  51. networks:
  52. rmq:
  53. aliases:
  54. - rmqbroker
  55. rmqconsole:
  56. image: styletang/rocketmq-console-ng
  57. container_name: rmqconsole
  58. ports:
  59. - "8080:8080"
  60. environment:
  61. JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
  62. depends_on:
  63. - rmqnamesrv
  64. networks:
  65. rmq:
  66. aliases:
  67. - rmqconsole
  68. networks:
  69. rmq:
  70. name: rmq
  71. driver: bridge

broker master节点配置文件

broker-a.conf

  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker名字,注意此处不同的配置文件填写的不一样
  4. brokerName=broker-a
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=0
  7. #nameServer地址,分号分割
  8. namesrvAddr=rmqnamesrv:9876
  9. #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
  10. defaultTopicQueueNums=4
  11. #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
  12. autoCreateTopicEnable=true
  13. #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
  14. autoCreateSubscriptionGroup=true
  15. #Broker 对外服务的监听端口
  16. listenPort=10911
  17. #删除文件时间点,默认凌晨 4点
  18. deleteWhen=04
  19. #文件保留时间,默认 48 小时
  20. fileReservedTime=120
  21. #commitLog每个文件的大小默认1G
  22. mapedFileSizeCommitLog=1073741824
  23. #ConsumeQueue每个文件默认存30W条,根据业务情况调整
  24. mapedFileSizeConsumeQueue=300000
  25. #检测物理文件磁盘空间
  26. diskMaxUsedSpaceRatio=88
  27. #限制的消息大小
  28. maxMessageSize=65536
  29. #Broker 的角色
  30. #- ASYNC_MASTER 异步复制Master
  31. #- SYNC_MASTER 同步双写Master
  32. #- SLAVE
  33. brokerRole=SYNC_MASTER
  34. #刷盘方式
  35. #- ASYNC_FLUSH 异步刷盘
  36. #- SYNC_FLUSH 同步刷盘
  37. flushDiskType=SYNC_FLUSH
  38. #开启属性过滤功能
  39. enablePropertyFilter=true
  40. #使用docker时需要配置外网ip,不然将无法访问
  41. brokerIP1=192.168.1.8

broker savle节点配置文件

broker-a-s.conf

  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker名字,注意此处不同的配置文件填写的不一样
  4. brokerName=broker-a
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=1
  7. #nameServer地址,分号分割
  8. namesrvAddr=rmqnamesrv:9876
  9. #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
  10. defaultTopicQueueNums=4
  11. #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
  12. autoCreateTopicEnable=true
  13. #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
  14. autoCreateSubscriptionGroup=true
  15. #Broker 对外服务的监听端口
  16. listenPort=10912
  17. #删除文件时间点,默认凌晨 4点
  18. deleteWhen=04
  19. #文件保留时间,默认 48 小时
  20. fileReservedTime=120
  21. #commitLog每个文件的大小默认1G
  22. mapedFileSizeCommitLog=1073741824
  23. #ConsumeQueue每个文件默认存30W条,根据业务情况调整
  24. mapedFileSizeConsumeQueue=300000
  25. #检测物理文件磁盘空间
  26. diskMaxUsedSpaceRatio=88
  27. #限制的消息大小
  28. maxMessageSize=65536
  29. #Broker 的角色
  30. #- ASYNC_MASTER 异步复制Master
  31. #- SYNC_MASTER 同步双写Master
  32. #- SLAVE
  33. brokerRole=SLAVE
  34. #刷盘方式
  35. #- ASYNC_FLUSH 异步刷盘
  36. #- SYNC_FLUSH 同步刷盘
  37. flushDiskType=SYNC_FLUSH
  38. #开启属性过滤功能
  39. enablePropertyFilter=true
  40. #使用docker时需要配置外网ip,不然将无法访问
  41. brokerIP1=192.168.1.8