Citrix ADC

负载均衡服务的优先顺序

服务优先级顺序功能使您能够根据负载平衡选择首选项确定服务或服务组的优先顺序。执行以下操作时,可以配置优先级顺序:

  • 将服务绑定到负载平衡虚拟服务器。
  • 将服务组绑定到负载平衡虚拟服务器。
  • 将服务组成员绑定到负载平衡服务组。

目前,您可以使用以下方法配置服务的优先级顺序。但是,这些方法有以下限制: 

  • 配置备份虚拟服务器链:配置行数很多,您必须多次运行显示命令才能知道每个虚拟服务器的所有lb服务的状态。

  • 配置首选位置:您必须为所有应用程序终端节点创建位置条目。

服务的优先级顺序功能使用较少的配置命令解决了上述限制,并帮助您完成首选位置配置,而无需使用所有负载平衡服务的IP地址的位置表示。

为负载平衡服务配置优先级顺序

要配置负载平衡服务的优先级顺序,请将订单数量< >参数添加到bind命令中。

注意:

最低订单号的优先级最高。

命令:

绑定lb vserver -order

例如,假设一组绑定到负载平衡虚拟服务器(vs1)的服务。使用
— 秩序<数字>参数,您可以按如下方式确定服务选择顺序的优先级:

  • 集合1 (s1, s2)绑定到vs1 - order 1 
  • Set 2 (s3, s4)绑定到vs1 - order 2 
  • Set 3 (s5, s6)绑定到vs1 - order 3 

将服务绑定到vs1后,当vs1收到客户端流量时,服务的选择顺序如下:

  • 虚拟服务器(vs1)首先选择顺序编号为1的集合1 (s1和s2)中的服务,因为为该集分配了最低的订单号。默认情况下,最低订单号的优先级最高。
  • 如果集合1中的所有服务都已关闭,则vs1选择顺序编号为2的集合2(s3和s4)。
  • 如果集合1和集合2中的所有服务都关闭了,vs1选择顺序号为3的集合3(s5和s6)。

使用cli为负载平衡服务配置优先级顺序

要配置负载平衡服务的优先级顺序,请在命令提示符下键入以下命令:

  1. 添加lb虚拟服务器。

    add lb vserver vs1 HTTP 1.1.1.1 80

  2. 添加lb服务。

    添加服务 s[1-6] 2.2.2。[1-6] HTTP

  3. 设置订单号并将服务绑定到lb虚拟服务器。

    绑定lb vserver vs1 s1 -order

    绑定lb vserver vs1 s2 -order 1

    绑定lb vserver vs1 s3 -order

    绑定lb vserver vs1 s4 -order

    3 .绑定lb vserver vs1 s5 -order

    3 .绑定lb vserver vs1 s6 -order

使用GUI配置负载平衡服务的优先级顺序

必备条件:

  • 您已创建负载平衡虚拟服务器。
  • 您已经创建了服务。

要配置负载平衡服务的优先级顺序并将其绑定到虚拟服务器,请执行以下操作:

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器,然后双击负载平衡虚拟服务器。

  2. 负载平衡虚拟服务器服务和服务组部分下,单击负载平衡虚拟服务器服务绑定

  3. 在“负载平衡虚拟服务器服务绑定“对话框中,单击”添加绑定”。

  4. 在“服务绑定对话框中,选择一个服务。

  5. 订单(顺序)字段中键入数字以设置服务的优先级顺序。

    配置优先顺序和绑定lb服务

  6. 单击”绑定”。

  7. 重复步骤 1-6,为不同的服务配置不同的优先级顺序号。

使用lb策略命令为负载平衡服务配置优先级顺序

默认情况下,最低订单号的优先级最高。但是,您可以使用新的lb操作和策略命令推迟此默认行为。您可以根据传入的客户端流量或客户端数据配置服务选择顺序。

例如,假设一组绑定到虚拟服务器(vs1)的服务。使用— 秩序<数字>参数,您已按如下方式配置了服务的优先级顺序:

  • 集合1 (s1, s2)绑定到vs1 - order 1 

  • 集合2 (s3, s4)绑定到vs1 - order 2 

  • 集合3 (s5, s6)绑定到vs1 - order 3 

默认情况下,最低订单号的优先级最高。因此,对于集合1,set2和set3中的服务,默认优先级顺序分别为1,2和3但是,对于特定的客户端流量,您希望将优先级顺序更改为 3、1 和 2。为此,您可以添加一个LB策略并将其绑定到vs1。

Lb策略命令由两个元素组成:规则和操作。该规则与操作相关联,如果请求与规则匹配,则执行该操作。

注意:

磅策略命令对于磅和GSLB配置都很常见,适用于Citrix ADC设备处理的请求。

Lb操作

**表达式:**

添加lb动作<名称> <类型> <字符串>

**示例:**

add lb action act1 -type SELECTIONORDER -value 3 2 1 .单击“添加”

参数:

  • 的名字:操作的名称。

  • 类型:操作类型。

  • 字符串:指定操作的值。

Lb策略

**表达式:**

添加lb策略<名称> <规则> <动作> 

**示例:**

add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1 . add lb policy pol1 -rule CLIENT.IP.SRC.EQ

参数:

  • 的名字:策略的名称。

  • 规则:规则由一个或多个表达式组成。该规则与操作相关联,如果请求与规则匹配,则执行该操作。

  • 行动:支持drop, nolbaction和reset。

  • undefaction:当请求与策略不匹配时,Citrix ADC设备将生成未定义的事件(UNDEF事件)。您可以使用设置lb参数-undefAction 命令来设置未定义的操作。您可以将这些操作分配给未定义的事件:drop, nolbaction和reset。

让我们来看一个示例,在该示例中,您可以添加磅操作,负载平衡策略,然后将策略绑定到负载平衡虚拟服务器(vs1),如下所示:

add lb action act1 -type SELECTIONORDER -value 3 1 2

add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1 . add lb policy pol1 -rule CLIENT.IP.SRC.EQ

10 . bind lb vserver vs1 -policyName pol1 -priority

该规则选择与IP地址地址8.8.8.8匹配的客户端流量,然后将该流量发送到vs1。Lb操作类型(SELECTIONORDER) 定义了服务选择顺序。将LB策略绑定到vs1后,当vs1收到来自IP地址8.8.8.8的客户端流量时,将按以下顺序选择服务:

  1. 虚拟服务器(vs1)选择优先级顺序为3的集合3(s5和s6)中的服务。

  2. 如果集合3中的所有服务都已关闭,则vs1选择优先级顺序为2的集合1 (s1和s2)。

  3. 如果集合3和集合2中的所有服务都关闭了,vs1选择顺序为1的集合1(s1和s2)。

使用cli使用lb策略命令为负载平衡服务配置优先级顺序

要使用lb策略命令配置负载平衡服务的优先级顺序,请在命令提示符下键入以下命令:

  1. 添加lb操作。

    add lb action act1 -type SELECTIONORDER -value 3 1 2

  2. 添加lb策略。

    add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1 . add lb policy pol1 -rule CLIENT.IP.SRC.EQ

  3. 添加lb虚拟服务器。

    add lb vserver vs1 HTTP 1.1.1.1 80

  4. 将lb策略绑定到lb虚拟服务器。

    绑定lb vs vs1 -policyName pol1 -priority

  5. 添加lb服务。

    添加服务 s[1-6] 2.2.2。[1-6] HTTP

  6. 设置顺序并将服务绑定到lb虚拟服务器。

    绑定lb vserver vs1 s1 -order

    绑定lb vserver vs1 s2 -order 1

    绑定lb vserver vs1 s3 -order

    绑定lb vserver vs1 s4 -order

    3 .绑定lb vserver vs1 s5 -order

    3 .绑定lb vserver vs1 s6 -order

使用GUI使用lb策略命令配置负载平衡服务的优先级顺序

必备条件:

  • 您已创建负载平衡虚拟服务器。
  • 您已经创建了服务。

步骤1-创建lb操作:

  1. 导航到AppExpert > LB >操作

  2. Lb操作中,单击添加

  3. 在“创建lb操作对话框中,指定以下参数的值:

    • 动作名称: act1
    • 类型:选择顺序
    • :3 1 2

      注意:

      字段中的数字用空格分隔。

    添加lb操作

  4. 单击”创建”。

步骤 2-创建负载平衡策略:

  1. 导航到AppExpert > LB >策略

  2. Lb策略中,单击添加

  3. 在“创建lb策略对话框中,指定以下参数的值:

    • 名称: pol1
    • 行动: act1
    • 未定义结果操作: NOLBACTION
    • 表达式: CLIENT.IP.SRC。EQ (8.8.8.8)

    添加lb策略

  4. 单击”创建”。

步骤3-将lb策略绑定到lb虚拟服务器:

  1. 导航到流量管理> lb >虚拟服务器,然后双击虚拟服务器。

  2. “高级设置”中,单击”策略”。

  3. 在“策略部分中,单击加号(+)图标。

  4. 在“选择类型对话框中,指定以下参数的值:

    • 选择策略:磅
    • 选择类型:请求
  5. 单击添加绑定(添加绑定)。

  6. 在“策略绑定"对话框中,指定以下参数的值:

    • 选择策略:池 1
    • 优先级:10
    • 去表达式:结束
    • 调用labelTyp艾凡:无

    绑定lb策略

  7. 单击绑定(绑定)。

步骤 4-为负载平衡服务配置优先级顺序:

要配置负载平衡服务的优先级顺序,请参阅使用GUI配置负载平衡服务的优先级顺序过程。

服务的持久性设置

如果为服务配置了持久性,则默认情况下始终优先选择持久性。

例如,假设配置了持久性且优先级为 1 的服务。如果优先级顺序为0的服务为起来,则优先级顺序为1的服务总是被赋予优先级。

但是,您可以使用以下cli命令覆盖此默认行为:

> . set lb param -overridePersistencyforOrder

让我们考虑以下示例:

一组服务按以下优先级顺序绑定到虚拟服务器(vs1):

  • 设置1 (s1, s2) 绑定到vs1 - order 1 

  • 集2 (s3, s4) 绑定到vs1 - order 2 

在命令提示符下键入以下命令以覆盖持久性:

设置lb参数-overridePersistencyforOrder YES

如果组1(配置了具有持久性的服务)为,则设置2服务将处理所有请求,直到集合1服务启动。优先级 2 的持久性条目已创建。

假设一段时间后,设置1服务已启动。现在,集合1和集合2服务都已启动以处理请求。在这种情况下,当高阶服务启动时,将做出新的负载平衡决策。持久性条目被新的负载平衡条目覆盖。

优先级切换

使用优先级切换功能,您可以在版本升级期间将优先级较高的服务的所有流量切换到低优先级服务。您可以使用以下命令切换优先级:

  • set lb vserver -toggleorder<升/降> . set lb vserver -toggleorder<升/降> . set lb vserver -toggleorder

  • 设置lb vserver v1 -orderthreshold值为80

例如,让我们假设有两个具有以下优先级的服务:

  •  0 服务 1 - 秩序
  • 服务2 - 订单 1 

默认情况下,服务 1 处理所有流量。如果服务 1 需要升级,则需要将流量重新路由到服务 2。

在命令提示符下,键入以下命令以切换优先级:

set lb vserver -toggleorder 降序

默认情况下,0 的优先级更高。但是,切换优先级后,将1视为更高的优先级。如果存在服务的持久性条目,则持久性首选项的行为与服务的持久性设置部分所述相同。