1.mq消息丢失

场景:批量同步数据库1600万记录到mq,预估消费时间在一周左右。

现象:第四天查看rocketmq-dashboard 消息保存了1200万左右,丢失了400万

rocketmq的消息在broker上默认存储时间为72小时,超过这个时间,不论消息是否消费,都将会被清理掉。

2.消息正常投递却未消费

rocketmq常见问题 - 图1

附录:broker-a.properties

  1. #所属集群名字
  2. brokerClusterName=rocketmq-cluster
  3. #broker名字
  4. brokerName=broker-a
  5. #0 表示 Master,>0 表示 Slave
  6. brokerId=0
  7. #nameServer地址,分号分割
  8. namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2: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. #destroyMapedFileIntervalForcibly=120000
  26. #redeleteHangedFileInterval=120000
  27. #检测物理文件磁盘空间
  28. diskMaxUsedSpaceRatio=88
  29. #存储路径
  30. storePathRootDir=/usr/local/rocketmq/store
  31. #commitLog 存储路径
  32. storePathCommitLog=/usr/local/rocketmq/store/commitlog
  33. #消费队列存储路径存储路径
  34. storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
  35. #消息索引存储路径
  36. storePathIndex=/usr/local/rocketmq/store/index
  37. #checkpoint 文件存储路径
  38. storeCheckpoint=/usr/local/rocketmq/store/checkpoint
  39. #abort 文件存储路径
  40. abortFile=/usr/local/rocketmq/store/abort
  41. #限制的消息大小
  42. maxMessageSize=65536
  43. #flushCommitLogLeastPages=4
  44. #flushConsumeQueueLeastPages=2
  45. #flushCommitLogThoroughInterval=10000
  46. #flushConsumeQueueThoroughInterval=60000
  47. #Broker 的角色
  48. #- ASYNC_MASTER 异步复制Master
  49. #- SYNC_MASTER 同步双写Master
  50. #- SLAVE
  51. brokerRole=ASYNC_MASTER
  52. #刷盘方式
  53. #- ASYNC_FLUSH 异步刷盘
  54. #- SYNC_FLUSH 同步刷盘
  55. flushDiskType=ASYNC_FLUSH
  56. #checkTransactionMessageEnable=false
  57. #发消息线程池数量
  58. #sendMessageThreadPoolNums=128
  59. #拉消息线程池数量
  60. #pullMessageThreadPoolNums=128