ADC

正常关闭服务

在定期的网络中断期间,例如系统升级或硬件维护,您可能需要关闭或禁用某些服务。稍后您可以使用“启用服务”<name> 命令来启用该服务。

为避免中断已建立的会话,您可以通过执行以下任一操作将服务置于“过渡停止服务 (TROFS)”状态:

  • 向监视器添加 TROFS 代码或字符串-将服务器配置为发送特定的代码或字符串以响应监视器探测器。
  • 明确禁用该服务并且:
    • 设置延迟(以秒为单位)。
    • 启用正常关闭。

添加 TROFS 代码或字符串

如果您仅将一个监视器绑定到服务,并且该监视器启用了 TROFS,则它可以根据服务器对监视器探测的响应将服务置于 TROFS 状态。将此响应与 HTTP 监视器的 trofsCode 参数中的值或 HTTP-ECV 或 TCP-ECV 监视器的 trofsString 参数中的值进行比较。如果代码匹配,则服务将处于 TROFS 状态。在此状态下,它将继续支持持久连接。

如果将多个监视器绑定到服务,则服务的有效状态将根据绑定到该服务的所有监视器的状态进行计算。在收到 TROFS 响应后,启用 TROFS 的监视器的状态将被视为 UP,以便进行此计算。有关 NetScaler 设备如何将服务指定为 UP 的更多信息,请参阅 为绑定到服务的监视器设置阈值

重要

  • 您可以将多个监视器绑定到一个服务,但不能启用多个监视器 TROFS。
  • 您可以将启用了 TROFS 的显示器转换为未启用 TROFS 的显示器,反之亦然。

使用命令行界面在监视器中配置 TROFS 代码或字符串

在命令提示符下,键入以下命令之一:

add lb monitor <monitor-name> HTTP -trofsCode <respcode>

add lb monitor <monitor-name> HTTP-ECV  -trofsString <resp string>

add lb monitor <monitor-name> TCP-ECV  -trofsString <resp string>
<!--NeedCopy-->

使用命令行界面修改 TROFS 代码或字符串

在命令提示符下,键入以下命令之一:

set lb monitor <trofs monitorname> HTTP -trofscode <newcode>

set lb monitor <trofs monitorname> HTTP-ECV -trofsstring <new string>

set lb monitor <trofs monitorname> TCP-ECV -trofsstring <new string>
<!--NeedCopy-->

注意:只有在之前添加了支持 TROFS 的监视器时,才能使用 set 命令。您不能使用此命令为未启用 TROFS 的显示器设置 TROFS 代码或字符串。

使用配置实用程序在监视器中配置 TROFS 代码或字符串

  1. 导航到 流量管理 > 负载平衡 > 监视器。
  2. 在“监视器”窗格上,单击“添加”,然后执行以下操作之一:
    • 选择“类型为 HTTP”,然后指定 TROFS 代码。
    • 选择类型为 HTTP-ECV 或 TCP-ECV,然后指定 TROFS 字符串。

禁用服务

但是,通常,您无法估计与服务的所有连接完成现有事务所需的时间。如果等待时间到期时事务未完成,则关闭服务可能会导致数据丢失。在这种情况下,您可以为服务指定正常关闭,这样只有当服务器或客户端关闭所有当前活动的客户端连接时,该服务才会被禁用。如果您除了正常关机之外还指定了等待时间,则行为请参见下表。

即使您启用了正常关机,仍会根据指定的方法保持持久性。系统继续为所有持久客户端提供服务,包括来自客户端的新连接,除非由于监视器进行的检查而在正常关机状态下,服务被标记为“关闭”。

下表介绍了优雅的关闭选项。

状态 结果
已启用正常关机并指定等待时间。 在提供当前最后一个活动客户端连接后,即使等待时间尚未到期,服务也会关闭。设备每秒检查一次连接状态。如果等待时间到期,则所有打开的会话都将关闭。
正常关机已禁用,并指定了等待时间。 只有在等待时间到期后,服务才会关闭,即使所有已建立的连接都是在到期之前提供的。
正常关机已启用,未指定等待时间。 无论为最后一个连接提供服务所花费的时间,只有在为先前建立的最后一个连接提供服务之后,服务才会关闭。
正常关机已禁用,未指定等待时间。 不能正常关机。选择禁用选项或发出禁用命令后,服务会立即关闭。(默认等待时间为零秒。)

若要在服务或虚拟服务器标记为“向下”时终止现有连接,可以使用“向下状态刷新”选项。有关详细信息,请参阅 启用清理虚拟服务器连接

使用命令行界面为服务配置正常关闭

在命令提示符处,键入以下命令以正常关闭服务并验证配置:

disable service <name> [<delay>] [-graceFul (YES|NO)]

show service <name>
<!--NeedCopy-->

示例:

> disable service svc1 6000 -graceFul YES
Done
>show service svc1
svc1 (10.102.80.41:80) - HTTP
State: GOING OUT OF SERVICE (Graceful, Out Of Service in 5998 seconds)
Last state change was at Mon Nov 15 22:44:15 2010
Time since last state change: 0 days, 00:00:01.160
...
Down state flush: ENABLED

1 bound monitor:
1) Monitor Name: tcp-default
State: UP             Weight: 1
Probes: 13898    Failed [Total: 0 Current: 0]
Last response: Probe skipped - live traffic to service.
Response Time: N/A
Done

>show service svc1
svc1 (10.102.80.41:80) - HTTP
State: OUT OF SERVICE
Last state change was at Mon Nov 15 22:44:19 2010
Time since last state change: 0 days, 00:00:03.250
Down state flush: ENABLED

1 bound monitor:
1)  Monitor Name: tcp-default
State: UNKNOWN           Weight: 1
Probes: 13898    Failed [Total: 0 Current: 0]
Last response: Probe skipped - service state OFS.
Response Time: N/A
Done
<!--NeedCopy-->

使用配置实用程序为服务配置正常关闭

  1. 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Services(服务)。
  2. 打开服务,然后从“操作”列表中单击“禁用”。输入等待时间,然后选择“正常”。
正常关闭服务