有关负载平衡的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Load Balancing”。本部分介绍如何配置负载平衡,并提供了样例配置。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
通过查看 LDAP 数据源池的属性获取当前的负载平衡算法。
$ dpconf get-ldap-data-source-pool-prop -h host -p port pool-name |
LDAP 数据源池的默认属性如下所示:
client-affinity-policy : write-affinity-after-write client-affinity-timeout : 20s description : - enable-client-affinity : false load-balancing-algorithm : proportional |
默认情况下,负载平衡算法为 proportional(比例)。
将 LDAP 数据源池配置为使用某种算法。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:selected-algorithm |
其中 selected-algorithm 可为以下任一选项:
故障转移
操作相似性
比例
饱和度
有关算法的详细信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Introduction to Load Balancing”。
重新启动目录代理服务器实例。
$ dpadm restart instance-path |
对于连接到数据源池的某个数据源,其权重需要相对于连接到数据源池的任何其他数据源的权重进行配置。请考虑所有连接数据源的权重。对于某一类型的操作,如果数据源的权重为已禁用,则始终不会将此类型的请求发送到该数据源。如果数据源的权重为 0(零),则不会将任何请求分发到该数据源。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
查看已连接到数据源池的数据源的列表。
$ dpconf list-attached-ldap-data-sources -h host -p port pool-name |
查看某个连接数据源的属性。
$ dpconf get-attached-ldap-data-source-prop pool-name \ attached-data-source-name |
连接数据源的属性可定义每种操作类型的权重。连接数据源的默认权重如下所示:
add-weight : disabled bind-weight : disabled compare-weight : disabled delete-weight : disabled modify-dn-weight : disabled modify-weight : disabled search-weight : disabled |
配置其中一个连接数据源的权重。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name \ attached-data-source-name add-weight:value \ bind-weight:value compare-weight:value delete-weight:value \ modify-dn-weight:value modify-weight:value search-weight:value |
比较连接数据源的主要参数。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name |
例如,数据源池可以包含具有以下权重的数据源:
$ dpconf list-attached-ldap-data-sources -h host1 -p 1389 -v myPool SRC_NAME add-weight bind-weight compare-weight delete-weight -------- ---------- ----------- -------------- ------------- DS-1 disabled 3 disabled disabled DS-2 2 2 2 2 DS-3 1 1 1 1 modify-dn-weight modify-weight search-weight ---------------- ------------- ------------- disabled disabled disabled 2 2 2 1 1 1 |
有关比例算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Proportional Algorithm for Load Balancing”。
在此示例中,为数据源 ds–1 配置的权重是其他两个数据源权重的两倍。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图。
将数据源池配置为使用负载平衡的比例算法。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:proportional |
配置第一个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \ modify-weight:2 search-weight:2 |
配置第二个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
配置第三个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
比较连接数据源的主要参数。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name SRC_NAME add-weight bind-weight compare-weight delete-weight -------- ---------- ----------- -------------- ------------- ds-1 2 2 2 2 ds-2 1 1 1 1 ds-3 1 1 1 1 modify-dn-weight modify-weight search-weight ---------------- ------------- ------------- 2 2 2 1 1 1 1 1 1 |
重新启动目录代理服务器实例。
$ dpadm restart instance-path |
有关饱和度算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Saturation Algorithm for Load Balancing”。
在此示例中,数据源 ds-1 执行大多数绑定操作,但不执行任何其他类型的操作。对三个数据源的权重进行如下配置:
将 ds-1 的权重配置为 3(对于绑定操作)和“已禁用”(对于所有其他类型的操作)。
将 ds-2 的权重配置为 2(对于所有操作)。
将 ds-3 的权重配置为 1(对于所有操作)。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图。
将数据源池配置为使用负载平衡的饱和度算法。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:saturation |
配置第一个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:disabled bind-weight:3 compare-weight:disabled delete-weight:disabled \ modify-dn-weight:disabled modify-weight:disabled search-weight:disabled |
配置第二个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \ modify-weight:2 search-weight:2 |
配置第三个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
比较连接数据源的主要参数。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name SRC_NAME add-weight bind-weight compare-weight delete-weight -------- ---------- ----------- -------------- ------------- ds-1 disabled 3 disabled disabled ds-2 2 2 2 2 ds-3 1 1 1 1 modify-dn-weight modify-weight search-weight ---------------- ------------- ------------- disabled disabled disabled 2 2 2 1 1 1 |
重新启动目录代理服务器实例。
$ dpadm restart instance-path |
有关此算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Operational Affinity Algorithm for Global Account Lockout”。
此示例具有三个数据源。数据源 ds-1 被配置为接收所有绑定请求。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图。
将数据源池配置为使用操作相似性算法。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:operational-affinity |
配置第一个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:1 bind-weight:100 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
配置第二个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
配置第三个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
比较连接数据源的主要参数。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name SRC_NAME add-weight bind-weight compare-weight delete-weight -------- ---------- ----------- -------------- ------------- ds-1 1 100 1 1 ds-2 1 1 1 1 ds-3 1 1 1 1 modify-dn-weight modify-weight search-weight ---------------- ------------- ------------- 1 1 1 1 1 1 1 1 1 |
重新启动目录代理服务器实例。
$ dpadm restart instance-path |
有关此算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Operational Affinity Algorithm for Cache Optimization”。
此示例具有三个数据源。数据源 ds-1 处理所有搜索和比较操作。当 ds-1 响应请求时,目标条目将被存储到缓存中。如果 ds-1 重复响应同一请求,数据源可以使用缓存的数据。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图。
将数据源池配置为使用操作相似性算法。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:operational-affinity |
配置第一个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:1 bind-weight:1 compare-weight:100 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:100 |
配置第二个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
配置第三个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
比较连接数据源的主要参数。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name SRC_NAME add-weight bind-weight compare-weight delete-weight -------- ---------- ----------- -------------- ------------- ds-1 1 1 100 1 ds-2 1 1 1 1 ds-3 1 1 1 1 modify-dn-weight modify-weight search-weight ---------------- ------------- ------------- 1 1 100 1 1 1 1 1 1 |
重新启动目录代理服务器实例。
$ dpadm restart instance-path |
有关故障转移算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Failover Algorithm for Load Balancing”。
此示例具有三个数据源。数据源 ds-1 接收所有请求。如果 ds-1 出现故障,ds-2 将接收所有请求,直到 ds-1 恢复为止。如果 ds-2 在 ds-1 恢复之前出现故障,ds-3 将接收所有请求。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图。
将数据源池配置为使用负载平衡的故障转移算法。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:failover |
配置第一个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:3 bind-weight:3 compare-weight:3 delete-weight:3 modify-dn-weight:3 \ modify-weight:3 search-weight:3 |
配置第二个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \ modify-weight:2 search-weight:2 |
配置第三个数据源的属性。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
比较连接数据源的主要参数。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name SRC_NAME add-weight bind-weight compare-weight delete-weight -------- ---------- ----------- -------------- ------------- ds-1 3 3 3 3 ds-2 2 2 2 2 ds-3 1 1 1 1 modify-dn-weight modify-weight search-weight ---------------- ------------- ------------- 3 3 3 2 2 2 1 1 1 |
重新启动目录代理服务器实例。
$ dpadm restart instance-path |
一个简单的负载平衡案例就是将搜索和比较操作发送到一组目录,而将其他操作发送到另一组目录。目录代理服务器接收所有客户端操作。服务器必须确定哪组目录获取读取操作,哪组目录获取其他操作。
配置目录代理服务器以处理此负载平衡方案的重要阶段如下所示。
将目录添加为目录代理服务器的数据源。
将数据源添加到数据源池中。
将某些数据源配置为接受搜索和比较操作,而将其他数据源配置为接受添加、绑定、删除、修改以及修改 DN 操作。
将数据源池添加到数据视图中。
下面的示例使用侦听端口 9389 的目录代理服务器。此处按上述方式将代理配置为在一个目录服务器实例 ds1:1389(用于处理搜索和比较操作)和另一个目录服务器实例 ds2:2389(用于处理其他操作)之间平衡负载。
第一步是创建并启用数据源。此步骤需要重新启动代理服务器。
$ dpconf create-ldap-data-source -p 9389 ds1 localhost:1389 $ dpconf create-ldap-data-source -p 9389 ds2 localhost:2389 $ dpconf set-ldap-data-source-prop -p 9389 ds1 is-enabled:true $ dpconf set-ldap-data-source-prop -p 9389 ds2 is-enabled:true $ dpadm restart /local/dps |
第二步是将数据源添加到数据源池中。
$ dpconf create-ldap-data-source-pool -p 9389 "Directory Pool" $ dpconf attach-ldap-data-source -p 9389 "Directory Pool" ds1 ds2 |
第三步是将 ds1 配置为接受搜索和比较操作,而将 ds2 配置为接受其他操作。
$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds1 \ add-weight:disabled bind-weight:disabled compare-weight:1 delete-weight:disabled \ modify-dn-weight:disabled modify-weight:disabled search-weight:1 $ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds2 \ add-weight:1 bind-weight:1 compare-weight:disabled delete-weight:1 \ modify-dn-weight:1 modify-weight:1 search-weight:disabled |
第四步是将数据源池添加到数据视图中,以便将客户端应用程序请求路由到该池。
$ dpconf create-ldap-data-view -p 9389 "Balanced View" "Directory Pool" \ dc=example,dc=com |