4.8.3. 协议管理器和地址


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

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

每个协议的行为稍有不同。下表描述了当请求订阅各种 队列 类型的框架时通常会发生什么。

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

持久订阅队列

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

特殊名称允许协议管理器快速识别客户端在以后断开连接和重新连接时所需的客户端订阅队列。

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

临时订阅队列

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

客户端断开连接后,队列被删除。

点到点队列

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

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.