跳到主要内容

SDKPerf

SDKPerf 是一个用于验证性能、检查配置以及探索与您的 Solace PubSub+ 事件代理相关功能的工具。

SDKPerf 是一个非生产工具,根据我们的客户支持政策不提供正式支持。您可能会发现 SDKPerf 对于开发和测试目的很有用;它是按“原样”提供的。

下载最新版本的 SDKPerf。

版本

SDKPerf 提供了以下编程语言和技术的版本。

SDKPerf for Csdkperf_c 是一个使用 PubSub+ C 消息 API 的 C++ 应用程序。它支持以下操作系统。
  • Linux 2.6 x86
  • Linux 2.6 x64
  • Solaris
  • Windows | | SDKPerf for C# | sdkperf_cs 是一个使用 PubSub+ .NET 消息 API 的 C# 应用程序。它支持 Windows。 | | SDKPerf for Java & JMS | sdkperf_java 包含两个客户端实现,支持 PubSub+ Java 消息 API(JCSMP)和 PubSub+ JMS 消息 API。bin 目录中包含方便脚本,明确指示正在使用的 API(例如,sdkperf_javasdkperf_jms)。sdkperf_javasdkperf_jms 均可在支持 PubSub+ 消息 API 并且至少安装了 Java 1.8 的平台上运行。 | | SDKPerf for JavaScript | sdkperf_js 是一个使用 PubSub+ JavaScript 消息 API 的 JavaScript 应用程序。它通过一个简单的网页以图形格式呈现各种工具选项。 | | SDKPerf for MQTT | sdkperf_mqtt 使用 Java SDKPerf 平台,并使用 Paho Java API 实现 MQTT 客户端。它可以与所有 MQTT 事件代理(包括 Solace PubSub+ 事件代理)配合使用。sdkperf_mqtt 可在至少安装了 Java 1.8 的所有平台上运行。 | | SDKPerf for Python | sdkperf_py 使用 Python SDKPerf 平台。此版本需要 Python 3.7 或更高版本。 | | SDKPerf for REST | sdkperf_rest 使用 Java SDKPerf 平台,并实现遵循 Solace REST 消息协议的 HTTP 客户端。它是探索 Solace REST 消息协议的快速且简便的方法。sdkperf_rest 可在至少安装了 Java 1.8 的所有平台上运行。 |

工具依赖项

通常,SDKPerf 命令选项的正确运行需要在 PubSub+ 事件代理上进行相关配置,这在您探索各种不同的命令行工具时很重要。以下是一些具体的依赖项。

  • SDKPerf JMS — 所有到事件代理的 JMS 连接都依赖于从 JNDI 存储中查找连接工厂。因此,至少需要在消息 VPN 中启用 JNDI 查找并配置连接工厂。
  • SDKPerf REST — 在 REST 消息消费端,SDKPerf REST 作为 HTTP 服务器运行,能够正确终止 Solace REST 消息连接并接收消息。为了让 SDKPerf REST 接收消息,必须在消息 VPN 中适当配置事件代理,包括 REST 交付点和 REST 消费者。

以下所示的许多 SDKPerf 命令行示例都假设已完成此事件代理配置,以便命令能够正常工作。

快速入门

如果您只是想快速开始使用 SDKPerf 发送和接收消息,可以尝试以下命令。以下各节中进一步解释了所有选项和更多示例。从这个命令开始:

sdkperf –cip=HOST -stl=a/topic –ptl=a/topic –mn=1 -msa=10 –md

就这样!它向主题 a 发布一个十字节的消息,并订阅相同主题,显示它接收到的消息。可以使用主题通配符作为订阅选项。您可以在“主题支持与语法”中了解有关 Solace 主题的所有信息。

如果您设置了一个新的消息 VPN 并使用了非默认用户名,请使用 -cu 选项,如果使用密码,则使用 –cp。我们之前没有使用这个,因为如果没有指定,SDKPerf 将使用默认用户名和 JavaScript:

sdkperf –cip=HOST -stl=a/topic –ptl=a/topic –mn=1 -msa=10 –md –cu USERNAME@MSGVPN

如果您使用的是 Solace 队列,请配置您的队列,并将 -stl-ptl 选项替换为 -sql-pql 选项:

sdkperf –cip=HOST -sql=a/durable/queue –pql=a/durable/queue –mn=1 -msa=10 –md

如果您想通过 TCP 使用 Solace 消息格式(SMF)连接到 PubSub+ Cloud 帐户,必须包含主机地址和端口号、密码、用户名和 VPN,如下所示:

sdkperf –cip=HOST:PORT -cp=PASSWORD -cu=USERNAME@VPN -ptl=a/topic –mn=5

这只是一个快速介绍。您可以通过以下各节中提供的更多示例,进一步了解 SDKPerf 选项、架构和应用程序流程。

架构

imgSDKPerf 工具在所有支持的 API 和平台上都共享一个通用架构。下图在高级别展示了此架构。

由于 SDKPerf 是一个用于测试消息传递的工具,因此它被建模为一个通用核心和一组消息客户端实现。SDKPerf 核心平台公开了一个客户端接口,它用于以通用方式与任何 API 的客户端进行交互。这使得 SDKPerf 工具能够以相同的方式支持所有 API 和协议。这在架构图中有所体现,您可以看到每个 API 或协议都有一个对应的 SDKPerf 客户端实现,它使用 API 协议并实现了 SDKPerf 的客户端接口。这使得 SDKPerf 平台能够以客户端无关的方式专注于所需的性能和功能测试。

应用程序流程

作为命令行应用程序,SDKPerf 在给定调用中将遵循特定的应用程序流程。在每次调用 SDKPerf 时,它将执行以下操作:

  1. 连接客户端
  2. 添加任何所需的订阅和/或绑定到端点
  3. 开始发布
  4. 等待发布完成
  5. 移除添加的任何订阅
  6. 断开客户端连接
  7. 清理并报告统计信息

如果使用的命令行选项集不会导致消息发布,应用程序将等待 SIGINT(Ctrl-C),而不是等待发布完成。