跳到主要内容

REST消息传递协议

本节描述了 Solace 表示性状态转移(REST)消息传递协议以及在常见用例中会遇到的消息交换模式。

REST 是一种设计网络应用程序的轻量级方式。Solace REST 消息传递可用于将具有内置 REST 类似消息传递支持的外部 HTTP REST 客户端和其他网络设备与 Solace PubSub+ 集成。

Solace REST 消息传递使用双向 HTTP POST 请求在两个方向上交换消息,如下图所示。这使得 REST 客户端能够向任何 Solace PubSub+ 事件代理客户端发送消息并从其接收消息。

img

REST 生产者将消息内容发送在 HTTP POST 请求的正文中。对于请求/回复场景,响应内容携带在 HTTP 200 OK 响应的正文中。对于 REST 消费者,事件代理将消息发送在 HTTP POST 请求的正文中。同样对于请求/回复场景,响应内容携带在 HTTP 200 OK 响应中。

在两个方向上使用 HTTP POST 请求有诸多好处。它消除了使用 HTTP GET 请求轮询消息时可能出现的消息丢失的可能性。此外,当使用多个并行 HTTP 连接时,它还能实现更高的性能和总体消息速率。

Solace REST 亮点

以下是 Solace REST 协议的一些关键方面的列表:

  • REST 服务按消息 VPN 控制
  • REST 访问端口也按消息 VPN 配置
  • 它支持 HTTP 1.1 持久连接,以实现高效的消息传递
  • 它支持 HTTP 和 HTTPS 消息流量
  • 它支持作为 HTTP 客户端发送消息
  • 它支持作为 HTTP 服务器接收消息
  • 它支持基本认证和客户端证书认证
  • 它与所有其他 Solace 客户端互操作

REST 角色

Solace REST 协议中有两个主要角色:

  • REST 生产者 — 向 Solace PubSub+ 事件代理发送消息
  • REST 消费者 — 从 Solace PubSub+ 事件代理接收消息

REST 生产者

img

REST 生产者是向 Solace PubSub+ 事件代理中的消息 VPN 内的主题或队列发送 REST 消息的应用程序。要向事件代理发送消息,REST 生产者必须与事件代理建立客户端连接并进行认证。

一般来说,建议应用程序使用 HTTP 1.1 持久连接,以避免每次发送消息时都需要建立连接,从而实现更高的发送性能。

REST 消费者

为了使物理客户端应用程序能够从 Solace PubSub+ 消费 REST 消息,事件代理将建立到消费者应用程序的 HTTP 连接,并使用 HTTP POST 请求向其发送消息,如下图所示。

img

REST 应用程序通过向事件代理发送 200 OK HTTP 响应来确认收到消息。

要从事件代理接收消息,必须配置 REST 交付点(RDP),以为事件代理提供有关如何传递消息的详细信息。