目錄代理伺服器提供下列分佈演算法:
模式對應
數值
字母
複寫
自訂
目錄代理伺服器會根據請求的參數與一或多個模式之間的對應,將請求分佈至資料檢視。設定下列參數可配置模式對應分佈演算法:
pattern-matching-base-object-search-filter pattern-matching-base-object-search-filter(5dpconf)
pattern-matching-dn-regular-expression pattern-matching-dn-regular-expression(5dpconf)
pattern-matching-one-level-search-filter pattern-matching-one-level-search-filter(5dpconf)
pattern-matching-subtree-search-filter pattern-matching-subtree-search-filter(5dpconf)
結尾是 filter 的配置屬性為 LDAP 篩選,而非常規表示式。這些 LDAP 篩選會對內送搜尋請求中所包含的 LDAP 篩選進行評估。
例如,使用下列設定可配置模式對應分佈演算法,將使用者 uid 為偶數的請求傳送至 even 資料檢視,並將使用者 uid 為奇數的請求傳送至 odd 資料檢視。
$ dpconf set-ldap-data-view-prop even pattern-matching-base-object-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\ (uid=*4)(uid=*6)(uid=*8))'\ pattern-matching-one-level-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\ (uid=*4)(uid=*6)(uid=*8))'\ pattern-matching-subtree-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\ (uid=*4)(uid=*6)(uid=*8))'\ pattern-matching-dn-regular-expression:'uid=[0-9]+[02468]' distribution-algorithm: pattern-matching |
$ dpconf set-ldap-data-view-prop odd pattern-matching-base-object-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\ (uid=*5)(uid=*7)(uid=*9))'\ pattern-matching-one-level-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\ (uid=*5)(uid=*7)(uid=*9))'\ pattern-matching-subtree-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\ (uid=*5)(uid=*7)(uid=*9))'\ pattern-matching-dn-regular-expression:'uid=[0-9]+[13579]' distribution-algorithm: pattern-matching |
在 (uid=\2a) 表示式中,\2a 是 * 的 ASCII 表示法,其中 2 與 a 是兩個十六進制數字。(uid=\2a) 表示式會確定資料檢視接受所有 uid 的請求。
模式對應演算法支援的語法由 Java Pattern 類別所指定 (請參閱 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html)。此語法與常用之 regex 語法不同。
目錄代理伺服器會根據請求中 RDN 的數值,將請求分佈至資料檢視。此數值擷取自資料檢視的基底 DN 下之第一個 RDN 的值。設定下列參數可定義數值界限:
numeric-attrs numeric-attrs(5dpconf)
numeric-default-data-view numeric-default-data-view(5dpconf)
numeric-lower-bound numeric-lower-bound(5dpconf)
numeric-upper-bound numeric-upper-bound(5dpconf)
例如,配置數值分佈演算法,將 uid 介於 0 與 99 之間的請求傳送至特定的資料檢視。為其餘的使用者使用相同語法,但利用不同的資料檢視。
$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:numeric \ numeric-attrs:uid numeric-lower-bound:0 numeric-upper-bound:99 |
目錄代理伺服器會根據請求中 RDN 的字母值,將請求分佈至資料檢視。字母界限擷取自資料檢視的基底 DN 下之第一個 RDN 的值。設定下列參數可定義字母界限:
lexicographic-attrs lexicographic-attrs(5dpconf)
lexicographic-lower-bound lexicographic-lower-bound(5dpconf)
lexicographic-upper-bound lexicographic-upper-bound(5dpconf)
例如,配置字母分佈演算法,將名稱開頭介於 A 至 M 之間的使用者請求,傳送至一個資料檢視,並將其餘使用者的請求傳送至另一個資料檢視。
$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:lexicographic \ lexicographic-attrs:cn lexicographic-lower-bound:A lexicographic-upper-bound:M |
目錄代理伺服器會根據複寫中資料檢視的角色,將請求分佈至資料檢視。演算法會將寫入作業分佈至資料來源池中的所有資料來源,並將讀取作業分佈至單一資料來源。複寫角色由 replication-role 參數所定義。資料檢視可有主機角色或用戶角色。
$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:replication |
您可以為所有的資料檢視類型配置自訂分佈演算法,包含 ldap-data-view、jdbc-data-view、ldif-data-view 與 join-data-view 等資料檢視類型。在下列程序中,僅會設定 ldap-data-view 的演算法。
將 extension-jar-file-url 特性設定為包含內有分佈演算法類別之 Java 歸檔 (JAR) 檔案的路徑。
$ dpconf set-server-prop -h host -p port extension-jar-file-url:jar file path |
jar file path 會被有效的 JAR 檔案路徑取代,例如 file:/expt/dps/custom_plugin/myjar.jar。
在配置 custom-distribution-algorithm 之前,請將 distribution-algorithm 設定為 none。
$ dpconf set-ldap-data-view-prop view name distribution-algorithm:none |
將 custom-distribution-algorithm 特性設定為您的自訂分佈演算法類別。
$ dpconf set-ldap-data-view-prop view name custom-distribution-algorithm:PackageName.AlgoClassName |