zoukankan      html  css  js  c++  java
  • RabbitMQ入门_08_所谓的点对点与发布订阅模型

    A. JMS 模型

    JMS 中定义了点对点和发布订阅两种消息模型,原来以为 AMQP 协议中 direct Exchange 对应点对点模型,topic Exchange 对应发布订阅模型,fanout Exchange 对应简化的发布订阅模型。可学习下来,发现根本不是那么一回事。

    实际上,用三种 Exchange 都可以实现点对点与发布订阅模型。

    点对点模型:

    • direct Exchange:创建队列A,通过任意绑定键绑定到 Exchange,消息发送使用相同的绑定键
    • fanout Exchange:创建队列A,绑定到 Exchange
    • topic Exchange:创建队列A,通过任意绑定键绑定到 Exchange,消息发送使用相同的绑定键

    发布订阅模型:

    • direct Exchange:创建多个队列,通过为每个队列设定多个绑定,也能实现相对复杂的发布订阅模型
    • fanout Exchange:创建多个队列,绑定到 Exchange,这是简化的发布订阅模型
    • topic Exchange:创建多个队列,通过带通配符的绑定键实现复杂而又灵活的发布订阅模型

    简而言之,AMQP 不按 JMS 那一套玩法玩。说白了,AMQP 中所有的队列都遵照 JMS 中的点对点模型,发布订阅实质上是通过 Exchange 的逻辑将消息复制到多个队列来实现的

    B. 好文推荐

    好的文章,几张图就能让你深入理解一个系统。推荐阅读:http://blog.csdn.net/lizhitao/article/details/47723105

    只拿一张图作分析:
    RabbitMQ pub/sub

    这是 RabbitMQ 实现发布订阅的逻辑图。每个订阅组订阅自己感兴趣的消息类型,它从一个独占的队列中获取这些消息。订阅组内部多个消费者共同分担这些消息的处理。消息发布者将消息发送到 Exchange,由 Exchange 负责将每条消息分发到正确的队列中(可能会同时分发到多个队列)。

  • 相关阅读:
    新版本NDK环境结构(避Cygwin,超快)
    网络、会话建立与信任
    网络协议与语言
    网络通信协议--网络通用语言
    语法、语义与哲学
    虚连接 tcp
    TCP的可靠连接是如何产生的?
    一个TCP的问题,所谓TCP面向连接的虚电路到底是怎么实现的?
    TCP与虚连接
    网络发展史介绍
  • 原文地址:https://www.cnblogs.com/gordonkong/p/6953361.html
Copyright © 2011-2022 走看看