跳到主要内容

负载均衡器健康检查

本主题讨论了 Solace PubSub+ 事件代理对负载均衡器 HTTP 健康检查的响应,以及如何配置事件代理的健康检查相关设置。

在许多运行环境中,例如云和 PaaS,您需要将 Solace PubSub+ 事件代理与环境提供的负载均衡器一起运行。为了使负载均衡器能够正确地与事件代理一起运行并发送适当的流量,事件代理与负载均衡器的健康监控功能进行交互,以使负载均衡器能够及时了解事件代理的运行状态。HTTP 健康检查探测是负载均衡器支持的最常见类型的健康检查之一,也是事件代理响应的类型。

在新安装或重新加载默认配置时,该功能在软件事件代理上启动时启用,在设备上禁用。在从早期版本升级时,该功能在软件事件代理和设备上均禁用。

软件事件代理对健康检查的响应

Solace PubSub+ 软件事件代理对负载均衡器 HTTP 健康检查 GET 请求在 /health-check/guaranteed-active/health-check/direct-active 上的响应如下表所示。

Solace PubSub+ 软件事件代理状态配置了冗余未配置冗余
Solace PubSub+ 软件事件代理活动对于 /health-check/guaranteed-active
    200:如果消息队列已启动
    503:如果消息队列已关闭
对于 /health-check/direct-active
    200对于 /health-check/guaranteed-active
    200:如果消息队列已启动
    503:如果消息队列已关闭
对于 /health-check/direct-active
    200
Solace PubSub+ 软件事件代理备用对于 /health-check/guaranteed-active/health-check/direct-active
    503对于 /health-check/guaranteed-active/health-check/direct-active
    不适用
Solace PubSub+ 软件事件代理监控对于 /health-check/guaranteed-active/health-check/direct-active
    503对于 /health-check/guaranteed-active/health-check/direct-active
    不适用

软件事件代理的健康检查监听端口

Solace PubSub+ 软件事件代理的新安装默认主动监听端口 5550 和 5553(如果使用 TLS/SSL)以进行负载均衡器健康检查,但可以使用 Solace CLI 或配置键将监听端口设置更改为其他值。

使用CLI设置

要更改端口设置,请执行 health-check listen-port 命令:

solace(configure/service/health-check) # listen-port <port> [ssl]

要将监听端口恢复为其默认值,请执行上一个命令的 no 版本:

solace(configure/service/health-check) # no listen-port [ssl]

其中:

  • ssl 指定 TLS/SSL 健康检查监听端口。

使用配置键设置

在创建和启动软件事件代理时,可以使用 service/healthcheck/portservice/healthcheck/tlsport 配置键来设置特定端口作为负载均衡器监听端口。

有关使用配置键初始化软件事件代理容器的信息,请参阅初始化软件事件代理容器。

设备对HTTP健康检查的响应

Solace PubSub+ 设备对负载均衡器 HTTP 健康检查 GET 请求在 /health-check/guaranteed-active/health-check/direct-active 上的响应如下表所示。

设备不支持主机列表高可用性(HA)故障转移,因此 /health-check/guaranteed-active 健康检查仅在多个 HA 设备对之间有用。在客户端使用 MQTT QoS1 清洁会话的情况下,且负载均衡器将传入 HTTP 请求分配到多个不运行 HA 的设备上时,可以使用 /health-check/guaranteed-active

设备状态配置了冗余未配置冗余
静态 IP主/备份 IP
Solace PubSub+ 设备状态配置了冗余未配置冗余
---------
Solace PubSub+ 设备活动对于 /health-check/guaranteed-active: 503 对于 /health-check/direct-active: 200对于 /health-check/guaranteed-active: 200:如果消息队列已启动 503:如果消息队列已关闭 对于 /health-check/direct-active: *200
Solace PubSub+ 设备备用对于 /health-check/guaranteed-active: 503 对于 /health-check/direct-active: 200对于 /health-check/guaranteed-active: 不适用 对于 /health-check/direct-active: *200
  • 当使用 /health-check/direct-active 时,如果配置了冗余,则主 IP 和备份 IP 地址将转移到活动事件代理。

保证健康检查 API 仅支持 Active/Standby 冗余配置。

设备的健康检查监听端口

在新安装或重新加载默认配置时,Solace PubSub+ 设备上的负载均衡器健康检查处于禁用状态,必须手动启用。

默认情况下,Solace PubSub+ 设备监听端口 5550 和 5553(如果使用 TLS/SSL)以进行负载均衡器健康检查,但可以使用 Solace CLI 将监听端口设置更改为其他值。

使用 CLI 设置

启用 health-check 并执行 health-check listen-port 命令以更改端口设置:

solace(configure/service/health-check) # no shutdown
solace(configure/service/health-check) # listen-port <port> [ssl]

要将监听端口恢复为其默认值,请执行上一个命令的 no 版本:

solace(configure/service/health-check) # no listen-port [ssl]

其中:

  • ssl 指定 TLS/SSL 健康检查监听端口。

如何停止监听健康检查

要停止监听负载均衡器的健康检查,请执行 health-check shutdown 命令:

solace(configure/service/health-check) # shutdown [plain-text] [ssl]

要恢复健康检查监听,请执行 no shutdown 命令:

solace(configure/service/health-check) # no shutdown [plain-text] [ssl]

其中:

  • plain-text 指定明文健康检查监听端口。
  • ssl 指定 TLS/SSL 健康检查监听端口。

如果您在没有关键字的情况下执行 shutdownno shutdown 命令,则事件代理将禁用或启用两个端口。