Leo Yeh's Blog

SAS 系統管理 (79)

教學目標

初步了解 SAS JMS Broker 服務叢集架構設定的基本概念。

重點概念

首先 SAS JMS Broker 服務主要是被 SAS 網站應用程式伺服器所使用, SAS 網站應用程式伺服器主要會使用 JMS 連線參數、查詢和主題以實作商業邏輯。此外 SAS JMS Broker 也能夠手動設定叢集架構,以提供高可用性的服務。

接著 SAS JMS Broker 主要是基於 ActiveMQ,所謂 ActiveMQ 屬於 Apache 專案主要是最流行和強大的開放源始碼訊息和整合模式伺服器,在 SAS JMS Broker 主要是使用 Shared File System Master Slave 的設定方式達到高可用性的服務。但是 SAS 部署精靈不會自動安裝與設定 SAS JMS Broker 多個實體,我們必須透過手動的方式在不同伺服器上安裝與設定 SAS JMS Broker 多個服務實體,相關步驟主要為:

  1. 改變 ActiveMQ 的設定檔。
  2. 複製 ActiveMQ 的資料夾至其它伺服器。
  3. 重新啟動 SAS JMS Broker 服務。
  4. 編輯 SAS 網站應用程式伺服器的設定檔。
  5. 重新啟動 SAS 網站應用程式伺服器。

其中 ActiveMQ 的設定檔主要設定 kahaDB 為共享資料夾,請注意共享資料夾的權限必須設定為執行 SAS JMS Broker 服務的使用者,預設為本機系統帳號建議修改為本機管理者帳號,以利設定共享資料夾的權限。

再來我們需要複製 ActiveMQ 的資料夾至其它伺服器,同時透過命令提示字元工具以系統管理員權限執行「InstallService.bat」批次檔建立「SAS [Config-Lev1] JMS Broker on port 61616」服務,並且更改登入身份為本機系統管理者帳號,此時若啟動第二台的 SAS JMS Broker 服務,則在「activemq.log」記錄檔中將會看到 kahaDB 被鎖定無法寫入檔案的警告訊息,主要原因是 SAS JMS Broker 服務高可用性設定為 Active / Warm Standby 的架構, 所以不同伺服器上的 SAS JMS Broker 服務主要會嘗試在 kahadb 的資料夾中建立 lock 檔案,當執行中的 SAS JMS Broker 服務停止時,將會由其它嘗試建立 lock 檔案的 SAS JMS Broker 服務立即接續處理。

最後我們必須修改每個 SAS 網站應用程式伺服器中的「D:\SAS\Lev1\Web\WebAppServer\SASServern_m/conf/server.xml」設定檔,主要會將修改 brokerURL 屬性值以利進行 JMS Broker 的容錯移轉功能,其中可以設定很多台 JMS Broker 的實體伺服器。

總結 SAS JMS Broker 服務雖然預設安裝時,只會在 SAS 網站伺服器進行安裝與設定無法自動設定叢集架構,但是按照 SAS 官方文件和 ActiveMQ 官方文件手動設定叢集架構,就能夠提供高可用性的服務。

相關資源

⬅️ Go back