1、下载安装

官方下载地址:https://rocketmq.apache.org/dowloading/releases/
image.png

2、下载目录介绍

  • bin:启动脚本,包括shell脚本和CMD脚本
  • conf:实例配置文件 ,包括broker配置文件、logback配置文件等
  • lib:依赖jar包,包括Netty、commons-lang、FastJSON等
  • image.png

    3、启动-停止命令

    1. # 1.启动NameServer
    2. nohup sh bin/mqnamesrv &
    3. # 2.查看启动日志
    4. tail -f ~/logs/rocketmqlogs/namesrv.log
    5. ======================================
    6. # 1.启动Broker
    7. nohup sh bin/mqbroker -n localhost:9876 &
    8. # 2.查看启动日志
    9. tail -f ~/logs/rocketmqlogs/broker.log
    10. ======================================
    11. # 1.关闭NameServer
    12. sh bin/mqshutdown namesrv
    13. # 2.关闭Broker
    14. sh bin/mqshutdown broker
    注意点:RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小
    1. # 编辑runbroker.sh和runserver.sh修改默认JVM大小
    2. vi runbroker.sh
    3. vi runserver.sh
    推荐:JAVA_OPT=”${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”

4、修改broket.config配置文件

添加如下两行配置 不然本地连不上云服务器的mq

  1. brokerIP1 = 150.158.85.171
  2. namesrvAddr=150.158.85.171:9876

5、修改完配置文件启动需要重新指定配置文件-重要

  1. nohup sh mqbroker -n localhost:9876 -c broker.conf &

6、配置RocketMQ控制台

1、RocketMQ控制台项目下载地址:https://github.com/apache/rocketmq-externals/tags
2、修改其src/main/resources中的application.properties配置文件。

  • 原来的端口号为 8080 ,修改为一个不常用的
  • 指定RocketMQ的name server地址

2、Linux下部署RocketMQ - 图3
3、在rocketmq-console目录下执行打包命令
mvn clean package -Dmaven.test.skip=true

7、直接java-jar启动

java -jar rocketmq-console-ng-1.0.0.jar

8、RocketMQ集群化部署-2主2从

1、服务器规划

准备2台服务器:

  • 服务器A部署一个nameserver,一个brokerserver的A的主节点,一个brokerserver的B的从节点
  • 服务器B部署一个nameserver,一个brokerserver的B的主节点,一个brokerserver的A的从节点

2、修改配置文件

  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker名字,注意此处不同的配置文件填写的不一样
  4. brokerName=broker-a
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=0
  7. #nameServer地址,分号分割
  8. namesrvAddr=150.158.85.171:9876;101.35.44.173:9876
  9. brokerIP1=150.158.85.171 #写当前服务器地址
  10. #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
  11. defaultTopicQueueNums=4
  12. #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
  13. autoCreateTopicEnable=true
  14. #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
  15. autoCreateSubscriptionGroup=true
  16. #Broker 对外服务的监听端口
  17. listenPort=10911
  18. #删除文件时间点,默认凌晨 4点
  19. deleteWhen=04
  20. #文件保留时间,默认 48 小时
  21. fileReservedTime=120
  22. #commitLog每个文件的大小默认1G
  23. mapedFileSizeCommitLog=1073741824
  24. #ConsumeQueue每个文件默认存30W条,根据业务情况调整
  25. mapedFileSizeConsumeQueue=300000
  26. #destroyMapedFileIntervalForcibly=120000
  27. #redeleteHangedFileInterval=120000
  28. #检测物理文件磁盘空间
  29. diskMaxUsedSpaceRatio=88
  30. #存储路径
  31. storePathRootDir=/opt/module/rocketmq/store
  32. #commitLog 存储路径
  33. storePathCommitLog=/opt/module/rocketmq/store/commitlog
  34. #消费队列存储路径存储路径
  35. storePathConsumeQueue=/opt/module/rocketmq/store/consumequeue
  36. #消息索引存储路径
  37. storePathIndex=/opt/module/rocketmq/store/index
  38. #checkpoint 文件存储路径
  39. storeCheckpoint=/opt/module/rocketmq/store/checkpoint
  40. #abort 文件存储路径
  41. abortFile=/opt/module/rocketmq/store/abort
  42. #限制的消息大小
  43. maxMessageSize=65536
  44. #flushCommitLogLeastPages=4
  45. #flushConsumeQueueLeastPages=2
  46. #flushCommitLogThoroughInterval=10000
  47. #flushConsumeQueueThoroughInterval=60000
  48. #Broker 的角色
  49. #- ASYNC_MASTER 异步复制Master
  50. #- SYNC_MASTER 同步双写Master
  51. #- SLAVE
  52. brokerRole=SYNC_MASTER
  53. #刷盘方式
  54. #- ASYNC_FLUSH 异步刷盘
  55. #- SYNC_FLUSH 同步刷盘
  56. flushDiskType=SYNC_FLUSH
  57. #checkTransactionMessageEnable=false
  58. #发消息线程池数量
  59. #sendMessageThreadPoolNums=128
  60. #拉消息线程池数量
  61. #pullMessageThreadPoolNums=128
  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker名字,注意此处不同的配置文件填写的不一样
  4. brokerName=broker-b
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=1
  7. #nameServer地址,分号分割
  8. namesrvAddr=150.158.85.171:9876;101.35.44.173:9876
  9. brokerIP1=150.158.85.171 #写当前服务器地址
  10. #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
  11. defaultTopicQueueNums=4
  12. #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
  13. autoCreateTopicEnable=true
  14. #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
  15. autoCreateSubscriptionGroup=true
  16. #Broker 对外服务的监听端口
  17. listenPort=11011
  18. #删除文件时间点,默认凌晨 4点
  19. deleteWhen=04
  20. #文件保留时间,默认 48 小时
  21. fileReservedTime=120
  22. #commitLog每个文件的大小默认1G
  23. mapedFileSizeCommitLog=1073741824
  24. #ConsumeQueue每个文件默认存30W条,根据业务情况调整
  25. mapedFileSizeConsumeQueue=300000
  26. #destroyMapedFileIntervalForcibly=120000
  27. #redeleteHangedFileInterval=120000
  28. #检测物理文件磁盘空间
  29. diskMaxUsedSpaceRatio=88
  30. #存储路径
  31. storePathRootDir=/opt/module/rocketmq/store-s
  32. #commitLog 存储路径
  33. storePathCommitLog=/opt/module/rocketmq/store-s/commitlog
  34. #消费队列存储路径存储路径
  35. storePathConsumeQueue=/opt/module/rocketmq/store-s/consumequeue
  36. #消息索引存储路径
  37. storePathIndex=/opt/module/rocketmq/store-s/index
  38. #checkpoint 文件存储路径
  39. storeCheckpoint=/opt/module/rocketmq/store-s/checkpoint
  40. #abort 文件存储路径
  41. abortFile=/opt/module/rocketmq/store-s/abort
  42. #限制的消息大小
  43. maxMessageSize=65536
  44. #flushCommitLogLeastPages=4
  45. #flushConsumeQueueLeastPages=2
  46. #flushCommitLogThoroughInterval=10000
  47. #flushConsumeQueueThoroughInterval=60000
  48. #Broker 的角色
  49. #- ASYNC_MASTER 异步复制Master
  50. #- SYNC_MASTER 同步双写Master
  51. #- SLAVE
  52. brokerRole=SLAVE
  53. #刷盘方式
  54. #- ASYNC_FLUSH 异步刷盘
  55. #- SYNC_FLUSH 同步刷盘
  56. flushDiskType=ASYNC_FLUSH
  57. #checkTransactionMessageEnable=false
  58. #发消息线程池数量
  59. #sendMessageThreadPoolNums=128
  60. #拉消息线程池数量
  61. #pullMessageThreadPoolNums=128
  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker名字,注意此处不同的配置文件填写的不一样
  4. brokerName=broker-b
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=0
  7. #nameServer地址,分号分割
  8. namesrvAddr=150.158.85.171:9876;101.35.44.173:9876
  9. brokerIP1=150.158.85.171 #写当前服务器地址
  10. #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
  11. defaultTopicQueueNums=4
  12. #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
  13. autoCreateTopicEnable=true
  14. #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
  15. autoCreateSubscriptionGroup=true
  16. #Broker 对外服务的监听端口
  17. listenPort=10911
  18. #删除文件时间点,默认凌晨 4点
  19. deleteWhen=04
  20. #文件保留时间,默认 48 小时
  21. fileReservedTime=120
  22. #commitLog每个文件的大小默认1G
  23. mapedFileSizeCommitLog=1073741824
  24. #ConsumeQueue每个文件默认存30W条,根据业务情况调整
  25. mapedFileSizeConsumeQueue=300000
  26. #destroyMapedFileIntervalForcibly=120000
  27. #redeleteHangedFileInterval=120000
  28. #检测物理文件磁盘空间
  29. diskMaxUsedSpaceRatio=88
  30. #存储路径
  31. storePathRootDir=/opt/module/rocketmq/store
  32. #commitLog 存储路径
  33. storePathCommitLog=/opt/module/rocketmq/store/commitlog
  34. #消费队列存储路径存储路径
  35. storePathConsumeQueue=/opt/module/rocketmq/store/consumequeue
  36. #消息索引存储路径
  37. storePathIndex=/opt/module/rocketmq/store/index
  38. #checkpoint 文件存储路径
  39. storeCheckpoint=/opt/module/rocketmq/store/checkpoint
  40. #abort 文件存储路径
  41. abortFile=/opt/module/rocketmq/store/abort
  42. #限制的消息大小
  43. maxMessageSize=65536
  44. #flushCommitLogLeastPages=4
  45. #flushConsumeQueueLeastPages=2
  46. #flushCommitLogThoroughInterval=10000
  47. #flushConsumeQueueThoroughInterval=60000
  48. #Broker 的角色
  49. #- ASYNC_MASTER 异步复制Master
  50. #- SYNC_MASTER 同步双写Master
  51. #- SLAVE
  52. brokerRole=SYNC_MASTER
  53. #刷盘方式
  54. #- ASYNC_FLUSH 异步刷盘
  55. #- SYNC_FLUSH 同步刷盘
  56. flushDiskType=SYNC_FLUSH
  57. #checkTransactionMessageEnable=false
  58. #发消息线程池数量
  59. #sendMessageThreadPoolNums=128
  60. #拉消息线程池数量
  61. #pullMessageThreadPoolNums=128
  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker名字,注意此处不同的配置文件填写的不一样
  4. brokerName=broker-a
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=1
  7. #nameServer地址,分号分割
  8. namesrvAddr=150.158.85.171:9876;101.35.44.173:9876
  9. brokerIP1=150.158.85.171 #写当前服务器地址
  10. #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
  11. defaultTopicQueueNums=4
  12. #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
  13. autoCreateTopicEnable=true
  14. #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
  15. autoCreateSubscriptionGroup=true
  16. #Broker 对外服务的监听端口
  17. listenPort=11011
  18. #删除文件时间点,默认凌晨 4点
  19. deleteWhen=04
  20. #文件保留时间,默认 48 小时
  21. fileReservedTime=120
  22. #commitLog每个文件的大小默认1G
  23. mapedFileSizeCommitLog=1073741824
  24. #ConsumeQueue每个文件默认存30W条,根据业务情况调整
  25. mapedFileSizeConsumeQueue=300000
  26. #destroyMapedFileIntervalForcibly=120000
  27. #redeleteHangedFileInterval=120000
  28. #检测物理文件磁盘空间
  29. diskMaxUsedSpaceRatio=88
  30. #存储路径
  31. storePathRootDir=/opt/module/rocketmq/store-s
  32. #commitLog 存储路径
  33. storePathCommitLog=/opt/module/rocketmq/store-s/commitlog
  34. #消费队列存储路径存储路径
  35. storePathConsumeQueue=/opt/module/rocketmq/store-s/consumequeue
  36. #消息索引存储路径
  37. storePathIndex=/opt/module/rocketmq/store-s/index
  38. #checkpoint 文件存储路径
  39. storeCheckpoint=/opt/module/rocketmq/store-s/checkpoint
  40. #abort 文件存储路径
  41. abortFile=/opt/module/rocketmq/store-s/abort
  42. #限制的消息大小
  43. maxMessageSize=65536
  44. #flushCommitLogLeastPages=4
  45. #flushConsumeQueueLeastPages=2
  46. #flushCommitLogThoroughInterval=10000
  47. #flushConsumeQueueThoroughInterval=60000
  48. #Broker 的角色
  49. #- ASYNC_MASTER 异步复制Master
  50. #- SYNC_MASTER 同步双写Master
  51. #- SLAVE
  52. brokerRole=SLAVE
  53. #刷盘方式
  54. #- ASYNC_FLUSH 异步刷盘
  55. #- SYNC_FLUSH 同步刷盘
  56. flushDiskType=ASYNC_FLUSH
  57. #checkTransactionMessageEnable=false
  58. #发消息线程池数量
  59. #sendMessageThreadPoolNums=128
  60. #拉消息线程池数量
  61. #pullMessageThreadPoolNums=128

3、先启动nameserver,后启动bro

启动NameServe集群
nohup sh mqnamesrv &
启动Broker集群
nohup sh mqbroker -c broker-a.properties &