维护特定于成员子集的服务器列表

当使用成员子集时,可定制缺省服务器列表。 向应用程序提供的服务器列表是使用基于对成员子集指定的应用程序的规则构造的。

当使用成员子集时,您会对由客户机自动重新路由 (ACR) 和工作负载均衡 (WLB) 的客户机使用的服务器列表具有一些控制权。

包括在服务器列表中的地址

为应用程序构造的服务器列表包含应用程序的已分配成员子集中包含的每个成员的条目,而不考虑其故障转移优先级。 如果对成员子集指定的应用程序定义为包括替代服务器并且已对某个替代服务器进行编目,那么对于该替代服务器,该服务器列表包含了一个条目。 为故障转移优先级高于 0 的成员和备用服务器的条目分配了优先级 0。 客户机驱动器工作到备用成员 (例如,仅当主成员不可用时,故障转移优先级高于 0 的成员)。 如果子集中的所有成员都不可用,那么客户机仅将工作驱动至替代服务器。

成员优先级基础

成员子集服务器列表中成员地址的优先级可基于下列其中一个算法:
  • 基于负载的成员优先级: 当成员子集定义为使用基于负载的成员优先级时,服务器列表的构造类似于缺省 Db2® pureScale® 服务器列表。 每个条目的优先级都基于成员子集中每个成员的相对负载。 相对负载是通过使用 CPU 负载平均值和平均换页率来计算的,并且每 10 秒会刷新一次。 在分区数据库环境中,基于负载的成员优先级不受支持。
  • 相等的成员优先级:当成员子集定义为使用相等的成员优先级时,会对服务器列表中的所有条目都指定某个优先级。 此优先级与循环事务级别工作负载均衡相同。

相容和互斥成员子集

此属性控制应用程序是否会将工作驱动至不在成员子集中的成员(如果该子集中的任何成员都不可用)。 缺省值为 inclusive。

如果成员子集定义为包含性子集,并且该子集中的所有成员都是主成员 (例如,其故障转移优先级值设置为 0) ,那么如果该子集的所有成员都处于脱机状态,那么其他成员 (未包含在成员子集中) 将包含在服务器列表中。 因此,当该成员子集中的所有成员都已脱机时,客户机可尝试将连接重新路由至其他成员。 当某个成员子集定义为互斥子集时,如果该子集的所有成员都已脱机,那么会将其他成员(未包括在该成员子集中)从服务器列表中排除,从而没有任何成员可用来处理客户机请求。

例如:
  • 具有三个成员 (0 , 1 和 2) 的 Db2 pureScale 集群
  • 成员优先级基于负载。
  • 创建其中包括成员 0 和 1 的成员子集。
  • 此集群的缺省服务器列表包括全部成员(三个)。
对于为成员集指定的连接,是否发生这些行为取决于子集为相容还是排斥:
  • 成员 0 和 1 的优先级基于负载。
  • 成员 2 的优先级始终为 0(不执行直接工作)。 成员 2 不包括在该成员子集中。 但是,如果成员 0 和成员 1 都已脱机,那么可将连接重新路由至成员 2。

如果该成员子集定义为互斥成员子集,那么返回到指定给该子集的连接的服务器列表包括成员 0 和 1 的地址,对于成员 2,则不会包括任何地址。 成员 0 和 1 的优先级基于负载。