# 成员资格策略构建器

使用成员资格策略子表达式构建器来创建表达式，此表达式用于定义动态集群的成员。通过使用 AND、OR、NOT 和括号进行分组，可以使用“构建子表达式”实用程序根据子表达式构建复杂的规则条件。应用更改时，规则构建器将对规则进行验证。如果找到未配对的括号以及不支持的逻辑运算符，那么将发出警报。

要使用成员资格策略构建器，请单击子表达式构建器。选择要让成员资格策略包含的属性，然后单击生成子表达式。将显示子表达式值。要将该子表达式追加到成员资格策略中，请单击追加。

## 逻辑运算符

指定用于将这个子表达式追加到成员资格策略中上一个子表达式的运算符。

AND
  要选中某个节点，对于此节点，`AND` 运算符两边的子表达式都必须为 true。
OR
  要选中某个节点，对于此节点，`OR` 运算符两边的子表达式中必须至少有一个为 true。

## 操作数

指定节点信息，此信息表明要选择哪些节点来主管动态集群。

节点组
  指定节点组的名称。要定义节点组，请单击系统管理 > 节点组。在前发行版中，节点组用来定义动态集群成员资格。如果使用前发行版定义了节点组，请使用节点组操作数。
节点名
  指定节点的名称。
节点主机名
  指定节点主机名。
节点属性
  指定节点上定义的属性。要查看对节点定义的属性，请单击系统管理 > 中间件节点 > node_name > 节点安装属性。可以使用成员资格策略中列示的任何属性。对于 PHP 动态集群，请指定要求在节点上安装 PHP 和 Apache HTTP Server 的成员资格策略。

## 追加的值等于

如果选择了节点属性作为操作数，那么请指定定制属性值。

要定义节点定制属性，请单击系统管理 > 节点 > node_name > 定制属性或系统管理 > 中间件节点 > middleware_node_name > 定制属性。

## 运算符

- =：“等于”运算符表示以区分大小写方式进行匹配。
- <>：“不等于”运算符表示操作数值与输入的值不相等。
- >：“大于”运算符适用于数字。
- >= ：“大于或等于”运算符适用于数字。
- < ：“小于”运算符适用于数字。
- <=：“小于或等于”运算符适用于数字。
- AND：对于 `xx` AND `yy`，表示与既包含 `xx` 又包含 `yy` 的内容匹配。
- BETWEEN：通过将此运算符与 AND 运算符配合使用，可以选择一系列值，包括第一个值（最小值）和最后一个值（最大值）。这两个运算符可以共同对数字和日期执行运算。
- EXISTS：此布尔运算符对操作数或复合子表达式的结果进行检查，例如，检查某些 HTTP 头元素属性。
- IN：此运算符表示在单个表达式中包含多个值的操作数。例如，对于名为 `port` 的操作数，如果要表示端口值可以是任何值或所有值，例如 `9080`、`9090` 和 `9091`，那么表达式片段为 `port IN (9080,9090,9091)`。括号中值的表示方式取决于端口的数据类型。如果端口是整数，那么正确的语法是一些不带引号的值。如果端口是字符串，那么正确的语法是 `port IN ('9080', '9090', '9091')`。
- IS NULL：此运算符表示查询验证结果表明所请求的参数不存在。
- IS NOT NULL：此运算符表示查询验证结果表明所请求的参数存在。
- LIKE：此运算符表示对字符串操作数值进行模式匹配。在模式匹配的开始位置，值必须包含百分号通配符（%）。例如，表达式 `host LIKE %blanca` 表示与单词 blanca 或者任何其他以 blanca 结尾的单词匹配；表达式 `host LIKE blanca%` 表示与单词 blanca 或者任何其他以 blanca 开头的单词匹配；表达式 `host LIKE %blanca%` 表示与单词 blanca 或者任何嵌入了 blanca 的单词匹配。
- NOT：对于 NOT `xx`，此运算符表示未包含 `xx` 的匹配项。
- OR：对于 `xx` OR `yy`，此运算符表示包含 `xx` 或 `yy` 的匹配项。

## 值

根据所选运算符的不同，输入要创建的子表达式的值。

## 子表达式

单击生成子表达式后，此字段将根据选择的选项显示所生成的子表达式片段。要将这个子表达式添加到成员资格策略中，请单击追加。

## 示例

您可以使用下列示例来创建自己的成员资格策略。

### 示例成员资格策略

- 要将成员资格定义为特定节点组中的所有节点：

      node_nodegroup = 'my_node_group'

- 要将成员资格定义为运行 Apache 的所有节点：

      node_property$APACHE_2_0 IS NOT NULL

- 要将成员资格定义为所有运行 Apache 和 PHP 的节点：

      node_property$APACHE IS NOT NULL and node_property$PHP IS NOT NULL

- 要将成员资格定义为运行 WebSphere® Application Server Community Edition V2.0 或更高版本的所有节点：

      node_property$WASCE_2.0* IS NOT NULL

- 要将成员资格定义为所有只运行 WebSphere Application Server Community Edition V2.0 的节点：

      node_property$WASCE_2.0 IS NOT NULL

- 要将成员资格定义为名称类似于 `my_node` 的所有节点（例如 `my_node_1` 和 `my_node_2` 等）：

      node_name like 'my_node%'

- 要将成员资格定义为特定主机名列表：

      node_hostname in ('node1.mydomain.com','node2.mydomain.com')

可以使用 `and`、`or` 或 `not` 逻辑运算符和括号对子表达式进行分组。以下示例将不在 my_node_group 节点组中并且名称类似于 `my_node`（例如 `my_node_1` 和 `my_node_2` 等）的节点定义为成员。

    not (node_nodegroup='my_node_group') and node_name like 'my_node%'

相关信息：
步骤 1：选择动态集群服务器类型
步骤 2：选择成员资格方法
步骤 3：定义动态集群成员
步骤 4：选择服务器模板
步骤 5：配置动态集群属性
步骤 6：摘要
动态集群集合
动态集群设置
动态集群成员集合
动态集群成员设置

文件名：dc_membership.html