多個群體的拓蹼

為納入多個群體的部署選擇拓蹼時,您可以從數個不同的選項中進行選取。

連接群體的鏈結

抄寫資料網格基礎架構是群體(彼此之間含有雙向鏈結)的連接圖形。透過鏈結,兩個群體可以傳遞資料變更。例如,最簡單的拓蹼就是彼此之間具有單個鏈結的兩個群體群體從左側開始按字母順序命名:A、B 和 C,依此類推。鏈結可以橫跨廣域網路 (WAN),從而跨越較大距離。即使鏈結已岔斷,您仍可以變更任何一個群體中的資料。當鏈結重新連接群體時,拓蹼使變更一致。如果網路連線已岔斷,則鏈結將自動嘗試重新連接。

鏈結

設定鏈結之後,產品會先嘗試保持每個群體都相同。然後,eXtreme Scale 會在任何群體中發生變更時,嘗試保持相同狀況。目標是為了使每一個群體都將是鏈結所連接之所有其他群體的確切鏡映。群體之間的抄寫鏈結,可協助確保對某個群體中所做的任何變更,都複製到其他群體

線拓蹼

雖然該部署如此簡單,線拓蹼仍示範了鏈結的部分品質。 首先,不必將某個群體直接連接至所有其他群體,以接收變更。群體 B 從群體 A 取回變更。 群體 C 透過群體 B(連接群體 A 和 C)從群體 A 接收變更。同樣地,群體 D 透過群體 C 從其他群體接收變更。此能力會分散從變更來源遠端配送變更的負載。

線拓蹼

請注意,如果群體 C 失敗,則將發生下列動作:
  1. 將孤立群體 D,直到重新啟動群體 C 為止
  2. 群體 C 將其本身與群體 B(為群體 A 的副本)進行同步化
  3. 群體 D 使用群體 C 將其本身與群體 A 和 B 上的變更進行同步化。這些變更最初發生於孤立群體 D(當群體 C 關閉時)時。
最後,群體 A、B、C 和 D 都將與彼此再次相同。

環拓蹼

環拓蹼是更具復原力拓蹼的範例。當群體或單個鏈結失敗時,存活的群體仍可以取得變更。群體沿著環型進行傳播,遠離失敗。無論環拓蹼大到何種程度,每一個群體與其他群體最多具有兩個鏈結。傳送變更時的延遲可能非常大。來自特定群體的變更可能需要行經數個鏈結進行傳播,才能使所有群體都具有這些變更。線拓蹼具有相同的性質。

環拓蹼

您還可以部署較複雜的環拓蹼,該拓墣在環中心具有根群體。根群體用來當作中央的一致點。針對發生在根群體中的變更,其他群體用來當作遠端的一致點。根群體可以仲裁群體之間的變更。 如果環拓蹼在根群體周圍包含多個環,則群體只能裁決最內層環之間的變更。不過,仲裁結果會分散到其他環中的群體

集中分支拓蹼

使用集中分支拓蹼,變更透過中心群體進行傳播。因為中心是唯一指定的中間群體,集中分支拓蹼的延遲較低。中心群體透過鏈結連接至每一個分支群體。中心在群體之間配送變更。中心用來當作衝突的一致點。在更新率高的環境中,中心可能需要比分支在更多硬體上執行,以保持同步。WebSphere® DataPower® XC10 Appliance 設計為按線性擴展,這表示您可以依需要輕鬆地將中心增大。不過,如果中心失敗,則在中心重新啟動之前,將不配送變更。分支群體上的任何變更都將在重新連接中心之後予以配送。

集中分支拓蹼

還可以使用含有完全抄寫用戶端的策略,即將一對執行中的伺服器用作中心的拓蹼變異。每一個用戶端都使用用戶端 JVM 中的型錄建立自行包含的單一儲存器資料網格。用戶端使用其資料網格來連接中心型錄。此連線讓使用戶端只要與中心取得連線便可與中心進行同步化。

用戶端所做的任何變更都是用戶端的本端變更,將以非同步方式抄寫至中心。中心用來當作仲裁群體,以將變更配送至所有已連接的用戶端。完全抄寫的用戶端拓蹼為物件關聯式對映程式(例如,OpenJPA)提供了可靠的 L2 快取。變更透過中心在用戶端 JVM 之間快速配送。如果快取記憶體大小可以包含在可用的資料堆空間內,則拓蹼是此 L2 樣式的可靠架構。

必要的話,請使用多個分割區在多個 JVM 上對中心群體進行擴展。因為所有資料仍必須儲存在單個用戶端 JVM 中,所以多個分割區將增加中心用於配送及仲裁變更的容量。不過,具有多個分割區並不會變更單個群體的容量。

樹狀結構拓蹼

還可以使用有向非循環樹狀結構。非循環樹狀結構沒有循環或迴圈,有向設定將鏈結限制為僅存在於母項與子項之間。 針對具有許多群體的拓蹼,此配置非常有用。在這些拓蹼中,具有已連接至每一個可能分支的集中中心並不實用。當您必須新增子項群體而不必更新根群體時,這種類型的拓蹼也非常有用。

樹狀結構拓蹼

樹狀結構拓蹼仍可以在根群體中具有中央的一致點。針對發生在它們下面的群體中的變更,第二層仍用來當作遠端的一致點。根群體只能裁決第二層上群體之間的變更。還可以使用 n 層樹狀結構,每個 n 層樹狀結構在每一個層次都具有 N 個子項。每一個群體都具有 n 個向外的鏈結。

完全抄寫的用戶端

這種拓蹼變異涉及將一對執行中的伺服器用作中心。每一個用戶端都使用用戶端 JVM 中的型錄建立自行包含的單一儲存器資料網格。用戶端使用其資料網格來連接中心型錄,從而使用戶端只要取得與中心的連線即會與中心進行同步化。

用戶端所做的任何變更都是用戶端的本端變更,將以非同步方式抄寫至中心。中心用來當作仲裁群體,以將變更配送至所有已連接的用戶端。完全抄寫的用戶端拓蹼為物件關聯式對映程式(例如,OpenJPA)提供了良好的 L2 快取。變更透過中心在用戶端 JVM 之間快速配送。只要快取記憶體大小可以包含在用戶端的可用資料堆空間內,這種拓蹼就是此 L2 樣式的良好架構。

必要的話,請使用多個分割區在多個 JVM 上對中心群體進行擴展。因為所有資料仍必須儲存在單個用戶端 JVM 中,所以使用多個分割區將增加中心用於配送及仲裁變更的容量,但不變更單個群體的容量。