4.8.3. 协议管理器和地址


协议管理器 使用的组件将协议特定的概念映射到 AMQ Broker 地址模型中使用的概念;队列和路由类型。在某些情况下,协议管理器可能会在代理上自动创建队列。

例如,当客户端发送带有地址 /house/room1/lights/house/ room2/lights 的 MQTT 订阅包时,MQTT 协议管理器了解这两个地址需要 多播 语义。因此,协议管理器首先查找以确保为这两个地址 启用多播。如果没有,它会尝试动态创建它们。如果成功,协议管理器将为客户端请求的每个订阅创建特殊订阅队列。

每个协议的行为稍有不同。下表描述了在请求订阅帧到各种类型的 队列时 通常会发生的情况。

如果队列是这个类型…​协议管理器的典型操作是 to…​

Durable subscription queue

查找适当的地址,并确保启用了 多播 语义。然后,它会创建一个特殊的订阅队列,其客户端 ID 及其名称以及 多播 作为路由类型。

特殊名称允许协议管理器快速识别所需的客户端订阅队列,应该客户端稍后断开连接并重新连接。

当客户端取消订阅队列时,会删除队列。

临时订阅队列

查找适当的地址,并确保启用了 多播 语义。然后,它会在这个地址下创建一个带有随机(读取 UUID)名称的队列,并带有 多播路由 类型。

当客户端断开连接队列时,会删除队列。

点到点队列

查找适当的地址,并确保启用了 任何 广播路由类型。如果是,它应该找到名称与地址相同的队列。如果不存在,它会查找第一个可用的队列。然后,它会自动创建队列(启用自动创建)。队列消费者绑定到此队列。

如果队列是自动创建的,则在没有消费者且其中没有消息后自动删除。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.