Sun Cluster 資料服務開發者指南 (適用於 Solaris 作業系統)

CRNP 概觀

CRNP 提供一些機制與常駐程式,這些機制與常駐程式產生叢集重新配置事件、透過叢集路由這些事件,並將其發送給感興趣的用戶端。

cl_apid 常駐程式與用戶端互動。 Sun Cluster 資源群組管理員 (RGM) 產生叢集重新配置事件。 這些常駐程式使用 syseventd(1M) 在每個本機節點上傳送事件。 cl_apid 常駐程式在 TCP/IP 中使用可延伸標記語言 (XML) 與感興趣的用戶端通訊。

以下圖表展示了 CRNP 元件之間事件流程的概觀。 在此圖表中,一個用戶端在叢集節點 2 上執行,另一個用戶端在叢集之外的電腦上執行。

圖 12–1 CRNP 的工作方式

顯示 CRNP 工作方式的流程圖

CRNP 協定概觀

CRNP 定義了標準七層開放式系統互連 (OSI) 協定堆疊的應用層、表示層和工作時段層。 傳輸層必須是 TCP,網路層必須是 IP。 CRNP 與資料連接層和實體層無關。 在 CRNP 中所交換的所有應用層訊息均以 XML 1.0 為基礎。

CRNP 協定的語義

用戶端透過將註冊訊息 (SC_CALLBACK_RG) 發送給伺服器來開始通訊。 此註冊訊息指定用戶端要接收通知的事件類型,以及可以將事件投遞至的通訊埠。 註冊連線的來源 IP 與指定的通訊埠一起形成回呼位址。

每當叢集內產生用戶端感興趣的事件,伺服器便會在其回呼位址 (IP 與通訊埠) 中聯絡用戶端,並將事件 (SC_EVENT) 發送給該用戶端。 該伺服器是在叢集自身內執行的具有高度可用性的伺服器。 該伺服器將用戶端註冊儲存在儲存體中,該儲存體在重新啟動叢集之後仍會持久性存在。

用戶端透過將註冊訊息 (SC_CALLBACK_RG,其中包含 REMOVE_CLIENT 訊息) 發送給伺服器來取消註冊。 在用戶端接收到來自伺服器的 SC_REPLY 訊息之後會關閉連接。

以下圖表顯示用戶端與伺服器之間的通訊流程。

圖 12–2 用戶端與伺服器之間的通訊流程

顯示用戶端與伺服器之間通訊流程的流程圖