【IT老齐038】MQ中间件实现可靠性投递

【IT老齐038】MQ中间件实现可靠性投递

1710166426634

可靠性保证

  • 发送阶段,遇到高延迟,Producer会多次重发消息,直到Broker ack确认,过程中Broker会自动去重,超时Producer产生异常,应用进行捕获提示。
  • 存储阶段,Broker先刷盘再ack确认,即便ack失败消息不会丢失,多次重试直到Producer接收,会导致消息积压。
  • 消费阶段,Broker向Consumer发数据,一段时间未接收,自动重发,直到Consumer Ack确认,Consumer注意幂等处理。

建议

  • 异步刷盘(NSYNC FLUSH),改同步刷盘
  • 存储介质损坏,建议采用RAID10或分布式存储
  • 不要启用自动Ack,RabbitMQ存在此问题
  • 避开ActiveMQ
posted @ 2024-03-14 20:01  Faetbwac  阅读(3)  评论(0编辑  收藏  举报