在rocketmq中,对于消费者而言,有两种模式,push和pull
我在没有看源码之前,看其他博客的时候,大部分的说法是:
mq中有两种获取消息的模式,一种是push,一种是pull;pull这种模式是消费者自己去拉取消息,根据自己的消费能力去拉取;而push模式是mq接收到消息之后,会推送给consumer
去翻了下官网的文档,确实也是这么说的
rocketmq官方文档
但是这里要看怎么去理解,根据看源码,如果我们在源码层面上去看,不管是pull模式还是push模式,都是consumer自己去broker拉取消息的,并且从源码上也可以证明(我这里并没有说服务端和客户端,而是consumer和broker)
因为站在broke的角度去考虑,broker为什么需要关心consumer是pull模式还是push模式呢?按照网上大部分的说法,对于push模式是broker自己推送消息给consumer,如果这个推断成立,那broker设计我认为是有问题的,因为对于broker而言,我只是去存储消息的,我不关心你是push还是pull,我只需要提供接口,让client来查询消息就可以了