美文网首页thunisoft成长快乐!
消息系统的两种形态

消息系统的两种形态

作者: MentallyL | 来源:发表于2017-09-14 18:42 被阅读8次

    JMS规范目前支持两种消息模型:点对点(point to point, queue)和发布/订阅(publish/subscribe,topic)。

    点对点(队列):模式

    消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。这里要注意:
    消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。
    Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

    发布/订阅 模式:

    消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。


    RabbitMQ

    Paste_Image.png Paste_Image.png

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

    Kafka

    Paste_Image.png

    Kafka只支持消息持久化,消费端为拉模型,消费状态和订阅关系由客户端端负责维护,消息消费完后不会立即删除,会保留历史消息。因此支持多订阅时,消息只会存储一份就可以了。

    相关文章

      网友评论

        本文标题:消息系统的两种形态

        本文链接:https://www.haomeiwen.com/subject/ycjrsxtx.html