RocketMQ 如何保证数据的高容错性?

在不开启容错的情况下,轮询队列进行发送,如果失败了,重试的时候过滤失败的 Broker。如果开启了容错策略,会通过 RocketMQ 的预测机制来预测一个 Broker 是否可用:

  1. 如果上次失败的 Broker 可用那么还是会选择该 Broker 的队列;
  2. 如果上述情况失败,则随机选择一个进行发送;
  3. 在发送消息的时候会记录一下调用的时间与是否报错,根据该时间去预测 Broker 的可用时间。