对于负载均衡Worker,状态Worker显示一些有趣的概述信息。它将负载均衡器的成员分为“良好”(good)、“不良”(bad)和“降级”(degraded)类别。此功能可与外部升级程序结合使用。根据您的全局系统设计和操作实践,您偏好的分类可能有所不同。
此分类基于Worker的激活状态(active, disabled或stopped),这是一个纯粹的配置状态;以及运行时状态(OK或ERR,可能具有子状态idle, busy, recovering, probing和forced recovery),这仅取决于运行时情况。
运行时子状态具有以下含义:
-
OK (空闲): 自上次均衡器维护以来,此Worker未收到任何请求。默认情况下,均衡器维护每60秒运行一次。Worker应该正常,但由于我们有一段时间没有使用它,所以无法确定。在版本1.2.24之前,此状态被称为N/A。
-
OK (忙碌): 此Worker的所有连接都用于请求。
-
ERROR (恢复中): Worker已处于错误状态一段时间,现在被标记为恢复中。适合此Worker的下一个请求将使用它。
-
ERROR (探测中): 将Worker设置为恢复中后,我们收到了一个适合此Worker的请求。该请求现在正在使用此Worker。
-
ERROR (强制恢复): Worker处于错误状态,但我们没有替代Worker,因此我们继续使用它。
默认情况下,状态Worker将所有激活状态为“active”且运行时状态不为“error”(无子状态)的成员归入“良好”(good)组。“不良”(bad)组由激活状态为“stopped”或运行时状态为“error”(无子状态)的成员组成。
不属于这两个组的Worker被视为“降级”(degraded)。
您可以定义其他规则,用于将Worker分组为良好、不良和降级。属性“good”和“bad”可以由逗号分隔的单个字符列表或点分隔的对填充。每个字符代表可能状态“active”、“disabled”、“stopped”、“ok”、“idle”、“busy”、“recovering”和“error”的首字母。附加状态“probing”和“forced recovery”始终被视为等同于“recovering”。逗号分隔的条目将与逻辑“或”组合,如果您用点组合配置状态和运行时状态,则它们将与逻辑“与”组合。因此,“good”的默认值是“a.o,a.i,a.b,a.r”,而“bad”的默认值是“e,s”。
状态Worker首先尝试与“不良”(bad)定义匹配,如果失败则尝试与“良好”(good)定义匹配,如果两者都找不到匹配项,最终选择“降级”(degraded)。