问题一:Producer和Broker之间的心跳机制是怎样的?
Producer和Broker之间的心跳机制是怎样的?如果Broker在一段时间内没有收到心跳,会有什么后果?
参考回答:
Producer每隔30秒向所有关联的Broker发送心跳,以保持连接活跃。Broker则每隔10秒扫描所有存活的连接。如果Broker在2分钟内没有收到来自Producer的心跳数据,则会关闭与Producer的连接,以确保资源的有效利用和系统的健壮性。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615046
问题二:消息中间件MetaQ中的Consumer是指什么?
消息中间件MetaQ中的Consumer是指什么?
参考回答:
Consumer,即消息的消费者,负责消费消息,consumer与nameserver集群中的随机一个节点建立长连接,定期的从nameServer中获取topic路由信息,并向提供Topic服务的Master、Slave建立长连接,并且定时向Master、Slave发送心跳。Consumer既可以从Master上面订阅消息,也可以从Slave上面订阅消息,订阅规则由Broker配置决定。Consumer每隔30s从Name server获取topic的最新队列情况,这意味着Broker不可用时,Consumer最多最需要30s才能感知。Consumer每隔30s(由ClientConfig中heartbeatBrokerInterval决定)向所有关联的broker发送心跳,Broker每隔10s扫描所有存活的连接,若某个连接2分钟内没有发送心跳数据,则关闭连接;并向该Consumer Group的所有Consumer发出通知,Group内的Consumer重新分配队列,然后继续消费。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615047
问题三:Consumer如何与NameServer和Broker进行交互?
Consumer如何与NameServer和Broker进行交互?
参考回答:
Consumer与NameServer集群中的一个随机节点建立长连接,定期从NameServer中获取Topic路由信息。同时,它会向提供Topic服务的Master和Slave Broker建立长连接,并定期向这些Broker发送心跳以保持连接。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615048
问题四:Consumer的订阅规则是如何决定的?
Consumer的订阅规则是如何决定的?
参考回答:
Consumer的订阅规则由Broker的配置决定。Consumer既可以从Master Broker上订阅消息,也可以从Slave Broker上订阅消息。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615049
问题五:当Broker不可用时,Consumer如何感知,并会做出什么反应?
当Broker不可用时,Consumer如何感知,并会做出什么反应?
参考回答:
当Broker不可用时,由于Consumer每隔30秒从NameServer获取Topic的最新队列情况,它最多需要30秒才能感知到Broker的不可用。一旦感知到Broker断开连接,Consumer会向所有关联的Broker发送心跳。如果某个连接在2分钟内没有发送心跳数据,Broker会关闭该连接,并向该Consumer Group的所有Consumer发出通知。随后,Group内的Consumer会重新分配队列,并继续消费。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615050