标签:检测 发送消息 rate 最快 info cto broker one img
路由发现:缓存中的路由信息什么时候更新呢?
由QueueData转topicPublishInfo的List<QueueMessage>:
选择消息队列:
sendLatencyFaultEnable=false,默认不启动Broker故障延迟机制,
sendLatenFaultEnable=true,启用Broker故障延迟机制
默认情况:TopicPublishInfo#selectOneMessageQueue:
lastBrokerName是上一次选择的执行发送消息失败的Broker。
考虑broker宕机的情况:
首先,NameServer检测Broker是否可用是有延迟的,最短一次心跳检测间隔10s;其次,NameServer不会检测到Broker宕机后马上推送消息给消息生产者,而是消息生产者
“每隔30秒更新一次路由信息”,所以生产者最快感知Broker最新的路由信息也需要30s。如果能引入一种机制,在Broker宕机期间,如果一次消息发送失败后,可以将该Broker暂时排除在消息队列的
选择范围中。
故障延迟机制:
MQFaultStrategy#selectOneMessageQueue:
标签:检测 发送消息 rate 最快 info cto broker one img
原文地址:https://www.cnblogs.com/lccsblog/p/12199300.html