8.3. 创建共享订阅


共享订阅是远程服务器上代表一个或多个消息接收器的一种状态。由于它是共享的,所以多个客户端可以从同一消息流消耗。

客户端通过在接收器源上设置 shared 功能来配置共享订阅。

共享订阅通过组合客户端容器 ID 和接收器名称组成订阅 ID 来唯一标识。这些必须具有稳定值,以便多个客户端进程可以找到相同的订阅。如果除了 shared 外还设置了 global 能力,则只使用接收器名称来标识订阅。

要创建持久订阅,请按照以下步骤执行:

  1. 将连接容器 ID 设置为 stable 值,如 client-1:

    container = Container(handler)
    container.container_id = "client-1"
    Copy to Clipboard Toggle word wrap
  2. 通过设置 shared 功能,将接收器源配置为共享:

    class SubscriptionOptions(ReceiverOption):
        def apply(self, receiver):
            receiver.source.capabilities.put_object(symbol("shared"))
    Copy to Clipboard Toggle word wrap
  3. 使用稳定名称(如 sub-1 )创建接收器,并应用源属性:

    event.container.create_receiver(conn, "notifications",
                                    name="sub-1",
                                    options=SubscriptionOptions())
    Copy to Clipboard Toggle word wrap

要从订阅中分离,使用 Receiver.detach() 方法。要终止订阅,使用 Receiver.close() 方法。

如需更多信息,请参阅 shared-subscribe.py 示例

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat