跳到主要内容

发布保证消息

客户端应用程序可以发布保证消息,即客户端应用程序为队列或主题目标分配持久化或非持久化传输模式的消息。

要使客户端在会话中发布保证消息,需要一个到宿主事件代理的生产者流。对于 Java RTO、C 和 .NET API,当客户端在会话中开始发送持久化消息时,会自动建立一个生产者流。

如果客户端断开连接,其生产者流将在客户端未能在三分钟内重新连接时自动过期。

发布的保证消息具有持久性,因为它们被存储到事件代理上配置的以下类型的端点之一:

  • 与消息队列目标匹配的队列。
  • 被分配了与消息主题目标匹配的主题订阅的队列。
  • 被分配了与消息主题目标匹配的主题订阅的主题端点。

有关端点及其创建的更多信息,请参阅接收保证消息。

当消息的主题目标与端点设置的主题订阅匹配时,以直接传输模式发布的消息也可以被存储到端点。在这种情况下,当消息被存储到端点时,它被赋予非持久化传输模式,以便客户端可以通过其已建立的保证消息流消费该消息。

消费客户端可以通过创建到该端点的保证消息流来绑定端点,从而接收保证消息。有关信息,请参阅接收保证消息。

下图展示了发布和接收保证消息的过程。

发布保证消息

相关事件代理配置信息

为了让客户端能够向消息 VPN 发布消息,事件代理必须启用保证消息和消息存储功能。此外,客户端必须被分配适当配置的客户端配置文件和/或访问控制列表(ACL)配置文件:

  • 要发布保证消息,客户端必须被分配启用了 allow‑guaranteed‑message‑send 参数的客户端配置文件。
  • 要允许客户端发布消息到主题(或仅发布到特定主题集),客户端必须被分配具有适当访问控制权限的 ACL。