rocketmq不管是推模式还是拉模式底层都是拉模式,突然想明白为什么。
因为消息存储在broker中,通过topic和tags区分消息队列。这时producer在发送消息时不关心consumer对应的topic和tags,只将消息发送到对应broker的对应topic和tags中。如果是推模式,broker则需要知道哪些consumer拥有哪些topic和tags,但在consumer重启或更换topic时,broker无法及时获取信息,可能将消息推送到旧的consumer中。
所以让对应consumer主动获取topic,这样确保每次主动获取时他对应的topic信息都是最新的。