CPing/CPong 是我们使用小型测试数据包检查后端连接状态的概念。JK 可以在建立新的后端连接后(连接模式)以及在将每个请求发送到后端之前(预发布模式)直接使用此类测试数据包。从 1.2.27 版本开始,当连接长时间处于空闲状态时,也可以使用它(间隔模式)。可以配置 CPong 对 CPing 的最大等待时间(超时)和间隔模式中的空闲时间。
后端会使用最少的必要处理资源非常快速地回答测试数据包。一个肯定的回答告诉我们,后端可以访问并且正在积极处理请求。它不会检测到是否已部署并正在运行某个上下文。CPing/CPong 的好处是快速检测到与后端通信的问题。缺点是延迟略有增加。
工作程序属性 ping_mode 可以设置为字符组合,以确定在哪些情况下使用测试数据包
- C:连接模式,超时 ping_timeout 被 connect_timeout 覆盖
- P:预发布模式,超时 ping_timeout 被 prepost_timeout 覆盖
- I:间隔模式,超时 ping_timeout,空闲时间 connection_ping_interval
- A:所有模式
必须在没有任何分隔符的情况下连接多个值。我们建议使用所有 CPing 测试。如果您的应用程序对延迟非常敏感,那么您应该只使用连接和间隔模式的组合。
通过 ping_mode 激活 CPing 探测已在版本 1.2.27 中添加。对于较旧的版本,只有连接和预发布模式存在,并且必须通过明确设置 connect_timeout 和 prepost_timeout 来激活。
工作程序属性 ping_timeout 为所有模式设置 CPong 的默认等待超时(以毫秒为单位)。默认值为“10000”毫秒。只有在您通过 ping_mode 激活 CPing/Cpong 探测时,才会使用该值。默认值应该没问题,除非您遇到非常长的 Java 垃圾回收暂停。根据您的网络延迟和稳定性,良好的自定义值通常在 5000 到 15000 毫秒之间。您可以使用 connect_timeout 和 prepost_timeout 覆盖用于连接和预发布模式的超时。记住:不要使用极小值。
工作程序属性 connect_timeout 设置在建立连接期间 CPong 的等待超时(以毫秒为单位)。如果您想覆盖使用 ping_timeout 设置的常规超时,则可以使用它。要使用连接模式 CPing,您需要通过 ping_mode 启用它。由于 JK 通常使用持久连接,因此打开新连接是一个罕见事件。因此,我们建议激活连接模式。根据您的网络延迟和稳定性,良好的值通常在 5000 到 15000 毫秒之间。记住:不要使用极小值。
worker 属性 prepost_timeout 设置 CPong 在请求转发之前等待超时的时间(以毫秒为单位)。如果您想覆盖使用 ping_timeout 设置的常规超时,可以使用此属性。要使用预发布模式 CPing,您需要通过 ping_mode 启用它。激活此类型的 CPing/CPong 会给每个请求增加一点延迟。通常情况下,这种延迟很小,而 CPing/CPong 的好处更为重要。因此,我们通常也建议使用 prepost_timeout。根据您的网络延迟和稳定性,良好的值通常在 5000 到 10000 毫秒之间。请记住:不要使用极小值。
在 1.2.27 版本之前,ping_mode 和 ping_timeout 不存在,要启用连接或预发布模式 CPing,您必须将 connect_timeout 分别设置为 prepost_timeout 为某个合理的正值。