跳到主要内容

SEMP

Solace 元素管理协议版本 2(SEMP v2)是一个 RESTful API,提供了一种可编程的方式来配置 PubSub+ 事件代理.它补充了 Solace CLI 和事件代理管理器.

SEMP API 使您能够轻松地在公共云、私有云或数据中心中配置、操作和维护事件代理.SEMP 可以轻松地与配置管理门户或配置自动化工具(如 Chef、Puppet、Ansible 等)集成.

SEMP API 是使用 OpenAPI 规范(特别是 OpenAPI 规范 v2.0)定义的.该规范(以前称为 Swagger)提供了一种标准的、与语言无关的方式来定义 REST API,这为开发人员提供了一个完全文档化的 SEMP API 规范,使他们能够快速上手.API 规范描述了各种 SEMP 对象、它们的表示方式以及每个对象支持的 URI 和 HTTP 方法.

以下 SEMP v2 API 可用:

API基础路径目的
配置/SEMP/v2/config读取和写入配置状态.
监控/SEMP/v2/monitor查询管理和操作状态.
操作/SEMP/v2/action执行操作.

您的 SEMP 应用程序可能会使用这三个 API 中的多个.然而,常见的应用程序用例通常会映射到一个 API.

配置 API 允许您读取和写入事件代理上的管理状态.例如,您可以使用配置 API:

  • 创建队列
  • 启用队列
  • 检查队列是否已启用管理

监控 API 允许您读取对象,包括它们的配置和属性的操作状态.例如:

  • 检查客户端是否已绑定到队列
  • 检查队列的统计信息
  • 检查事件代理是否当前处于消息骨干网的活动状态

您可以使用操作 API 操纵事件代理上的非配置状态.例如,您可以:

  • 从队列中删除消息
  • 清除队列统计信息
  • 将活动恢复到事件代理的高可用性(HA)配对

URI结构

SEMP v2 使用 URI 来定位 PubSub+ 事件代理的可管理资源.资源是个体对象、对象集合或(仅在操作 API 中)操作.有关更多信息,请参阅 SEMP 资源.

遵循传统的 REST 方法,SEMP v2 URI 可以分解如下:

<protocol>://<host>:<port>/<base-path>/<resource-path>[?<query-parameter>]
  • 协议—API 支持 httphttps 协议.
  • 主机和端口—标识事件代理. 有关使用哪个端口的信息,请参阅默认端口号(适用于设备和软件事件代理)和客户端应用程序连接性和安全性(适用于 PubSub+ Cloud).
  • 基础路径—指配置、操作或监控 API 的基础路径.
  • 资源路径—请求目标对象或集合的完整路径,如 SEMP API 参考中所列.有关更多详细信息,请参阅 SEMP 资源.
  • 查询—用于控制各种方法中的行为,如过滤和分页.有关更多信息,请参阅查询参数.

例如,如果您使用 cURL 并希望从名为 solace-broker 的软件事件代理获取有关 SEMP v2 配置 API 的详细信息,则会发送如下命令:

curl -X GET -u user:password solace-broker:8080/SEMP/v2/config/about

获取规范

要从事件代理以 JSON 格式获取 SEMP API 规范,您可以对以下 URI 执行 GET 操作:

/SEMP/v2/<api>/spec

其中 <api>configactionmonitor 之一.

您还可以:

  • 从 solace.com/downloads 页面下载 SEMP API 规范
  • 查看 SEMP API 参考

生成客户端库

SEMP API 使用 OpenAPI 规范,使开发人员能够轻松地在其喜欢的编程语言中生成客户端库.Swagger 工具可以导出超过 25 种不同编程语言的客户端库,包括:

  • Android、C#、Java、Javascript、Node、Python、Ruby、Scala 和 Swift.

请参阅下面的开始使用 SEMP,获取教程链接,包括一个示例,展示如何从 SEMP API 规范生成客户端库.

对 SEMP 规范的更改可能会影响生成的 API 的向后兼容性.有关详细信息,请参阅 SEMP API 参考.

SEMP v2限制

SEMP v2 API 正在逐步发布.每次发布都会增加更多的命令和功能.请参阅规范文件以查看当前支持的内容.要获取规范,请参阅 SEMP API 参考.

对于尚未在 SEMP v2 中支持的命令和操作,请使用传统的 SEMP API.

SEMP v2 和传统 SEMP 请求和响应格式完全不兼容,尽管两种协议在事件代理上共享一个共同的端口配置.它们通过 URI 路径的初始部分进行区分,要么是 /SEMP,要么是 /SEMP/v2/.

开始使用SEMP

要了解更多信息,请参阅以下内容:

  • SEMP API 版本—提供了 SEMP API 最新版本的概述,其支持和不支持的功能,以及在引入新功能时确保版本兼容性所采取的方法.
  • SEMP API 架构—描述了 SEMP API 的设计,包括其对象模型、查询参数和 HTTP 方法及返回代码.
  • SEMP 认证和授权—提供了认证 SEMP 客户端的说明.
  • SEMP 功能—详细讨论了常用的 SEMP 功能,如过滤和分页.
  • SEMP 错误处理—列出了常见的错误代码及其处理方法.
  • SEMP API 参考—链接到设备和软件事件代理版本的 API 参考.
  • 传统 SEMP—描述了在 SEMP v2 之前存在的传统 SEMP API 的使用方法.

SEMP教程

点击下面的按钮尝试 SEMP 教程.您可以通过以下两种方式之一开始:

  • 如果您的公司部署了 PubSub+ 事件代理,请联系您的中间件团队以获取用于测试的事件代理的主机名或 IP 地址、访问它的用户名和密码,以及您可以在其中生成和消费消息的消息 VPN.
  • 如果您没有访问事件代理的权限,请参阅设置容器映像的说明,以下载和安装软件事件代理,或使用 PubSub+ Cloud 启动事件代理服务.