ToB企服应用市场:ToB评测及商务社交产业平台

标题: Kafka、ActiveMQ、RabbitMQ、RocketMQ 、和Redis的消息生产和消费是推还是 [打印本页]

作者: 雁过留声    时间: 2024-7-20 13:18
标题: Kafka、ActiveMQ、RabbitMQ、RocketMQ 、和Redis的消息生产和消费是推还是
Kafka的消息推拉模式

Kafka的发送(Producer与Broker之间)和吸收(Consumer与Broker之间)采用的是不同的模式。具体来说:
因此,Kafka的发送是推模式,而吸收是拉模式。这种设计使得Kafka在消息通报过程中既保证了消息的可靠性,又提供了机动性和可控性。

ActiveMQ消息推拉模式

ActiveMQ的发送和吸收模式与RocketMQ有相似之处,但也有一些渺小的差别。
发送模式:在ActiveMQ中,消息的发送也是推模式。生产者(Producer)自动将消息推送到ActiveMQ的Broker(服务器)上。一旦消息被成功发送到Broker,生产者会收到一个确认或进行相应的等候,这取决于发送模式(同步或异步)的选择。
吸收模式:对于吸收模式,ActiveMQ提供了两种主要的方式:推模式和拉模式。

因此,ActiveMQ的发送是推模式,而吸收则可以根据配置和需求选择推模式或拉模式。这种机动性使得ActiveMQ可以或许适应不同的应用场景和性能需求。

RabbitMQ消息推拉模式

RabbitMQ的发送和吸收模式主要取决于其配置和消费者的实现方式。
发送模式推模式,在RabbitMQ中,消息的发送(即生产者将消息发送到交换机)是自动推送的,即生产者自动将消息推送到RabbitMQ服务器上的交换机。一旦消息成功到达交换机,生产者就完成了其发送使命。
吸收模式:而消息的吸收(即消费者从队列中获取消息)则可以是推模式也可以是拉模式,这取决于消费者的实现。在推模式下,消费者通过调用相应的方法(如channel.basicConsume)将信道设置为投递模式。在这种模式下,当消息到达队列时,RabbitMQ会自动地将消息推送给匹配的消费者,而不需要消费者手动拉取。然而,投递的消息数量可能会受到某些限制,如通过channel.basicQos设置的最大未确认消息数。
在拉模式下,如果消费者没有使用推模式,而是选择定期地(例如使用轮询的方式)从队列中拉取消息,那么这就是拉模式。在这种模式下,消费者需要自动请求RabbitMQ服务器以获取新的消息。
总的来说,RabbitMQ的发送是推模式,而吸收可以是推模式也可以是拉模式,具体取决于消费者的实现和需求。

RocketMQ消息推拉模式

RocketMQ的发送和吸收模式主要涉及消息的发送和消费者如何获取消息。
发送模式是推模式,在RocketMQ中,消息的发送是推模式。生产者(Producer)自动将消息推送到RocketMQ的Broker(服务器)上。一旦消息被成功发送到Broker,生产者会收到一个确认,然后可以继续实行后续操作。
吸收模式:对于吸收模式,RocketMQ提供了多种选择。在大多数环境下,消费者(Consumer)是自动拉取(Pull)消息的。消费者会定期或根据某种策略从Broker上拉取消息进行消费。然而,RocketMQ也支持推送模式(Push),但这实际上是通过长轮询实现的拉模式的一种变种。在这种模式下,消费者会向Broker发送一个拉取请求,并等候Broker的响应。如果Broker当前没有新消息,它会挂起这个请求一段时间,直到有新消息到来或超时。这种方式使得消费者看起来像是在吸收推送的消息,但实际上仍旧是基于拉取模子的。
总结来说,RocketMQ的发送是推模式,而吸收主要是拉模式,只管也支持基于长轮询的推送模式变种。这些模式的选择有助于满足不同的业务需求和场景,例如高吞吐量、低延迟或特定次序的消息处理。

Redis消息推拉模式

Redis消息的发送是推模式,而吸收可以是推模式也可以是拉模式
在Redis的发布订阅模式中,发送(即发布)是推模式,而吸收(即订阅)则主要是推模式。
       需要注意的是,固然Redis的发布订阅模式主要是基于推模式的,但Redis本身也提供了其他数据结构和命令,如列表(list)和RPOPLPUSH等,这些可以用于实现更复杂的消息通报模式,包括拉模式。但在尺度的发布订阅模式中,吸收通常是通过推模式实现的。
        在Redis中,发布者(pub)使用PUBLISH命令发送消息,这是一个推送的动作,即发布者自动将消息推送到指定的频道。一旦消息被发送到频道,Redis就会负责将消息通报给所有订阅了该频道的订阅者。
对于吸收模式,Redis提供了两种主要的方式:
需要注意的是,Redis的发布订阅模式主要实用于及时消息通报场景,此中推模式更为常见和直接。然而,在某些特定场景下,拉模式可能也具有一定的应用代价。在选择使用推模式还是拉模式时,需要根据具体的应用需求和场景来进行权衡和选择。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4