7.2. 创建持久订阅


持久化订阅是远程服务器上的一个状态,代表一个消息接收器。通常,当客户端关闭时,消息接收方会被丢弃。但是,由于持久订阅是持久的,客户端可以从它们分离,之后再重新连接。当客户端重新附加时,任何在分离时收到的消息都可用。

持久化订阅通过组合客户端容器 ID 和接收器名称来组成订阅 ID 来唯一标识。它们必须具有稳定的值,以便可以恢复订阅。

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

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

    ClientOptions clientOptions = new();
    clientOptions.Id = "client-1";
    IClient client = IClient.Create(clientOptions);
    Copy to Clipboard Toggle word wrap
  2. 将接收器配置为类似于主题订阅。

    ReceiverOptions receiverOptions = new ReceiverOptions();
    receiverOptions.SourceOptions.Capabilities = new String [] {"topic", "shared"};
    receiverOptions.SourceOptions.DurabilityMode = DurabilityMode.UnsettledState;
    receiverOptions.SourceOptions.ExpiryPolicy = ExpiryPolicy.Never;
    using IReceiver receiver = connection.OpenDurableReceiver(address, "sub-1", receiverOptions);
    Copy to Clipboard Toggle word wrap

要从订阅分离,请关闭接收器。

  1. 删除订阅。

    receiver.CloseAsync();
    Copy to Clipboard Toggle word wrap

如果您没有关闭接收方,则持久订阅将保留。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat