• 推/拉模式


    推模式 (服务端主动推送至消费者)
    消费者的处理消息的能力很弱,而消息中间件不断地向消费者Push消息,造成消息堆积,消费者的缓冲区可能会溢出

    拉模式 (消费者主动拉去服务端消息)
    增加消息的延迟,取决于轮询间隔

    RabbitMQ(推模式)

    RabbitMQ实现了AMQP协议,AMQP协议定义了消息路由规则和方式。

    生产端通过路由规则发送消息到不同queue,消费端根据queue名称消费消息。

    RabbitMQ既支持内存队列也支持持久化队列,消费端为推模型,消费状态和订阅关系由服务端负责维护,消息消费完后立即删除,不保留历史消息。

    (1)点对点

    生产端发送一条消息通过路由投递到Queue,只有一个消费者能消费到。

    (2)多订阅

    当RabbitMQ需要支持多订阅时,发布者发送的消息通过路由同时写到多个Queue,不同订阅组消费不同的Queue。
    所以支持多订阅时,消息会多个拷贝。

    Kafka(拉模式)

    Kafka只支持消息持久化,消费端为拉模型,消费状态和订阅关系由客户端端负责维护,消息消费完后不会立即删除,会保留历史消息。

    因此支持多订阅时,消息只会存储一份就可以了。但是可能产生重复消费的情况。

    (1)点对点&多订阅(因为不删消息,所以这两种就不区分了)

    发布者生产一条消息到topic中,不同订阅组消费此消息。

  • 相关阅读:
    RabbitMQ
    RabbitMQ
    RabbitMQ
    RabbitMQ
    RabbitMQ
    RabbitMQ
    RabbitMQ
    .net 5.0
    redis
    分布式同步服务中间件
  • 原文地址:https://www.cnblogs.com/itplay/p/13261051.html
Copyright © 2020-2023  润新知