weblogic中介軟體軟體上線標準化部署

jaymarco發表於2020-12-01

上週介紹了《weblogic標準化部署大綱》,下面詳細介紹我們在實際生產環境中如何進行weblogic中介軟體應用部署標準規範。


一、版本選型

1.1 基礎版本

因原廠已經不提供Weblogic中介軟體10.3.5版本(包括)及之前版本的Premier Support,且10.3.5版本Extended Support將於2013年8月過期,為確保weblogic中介軟體的安全及穩定執行,所有新申請weblogic中介軟體軟體版本必須安裝10.3.6或12.2.1.2.0版本。

(a)、WLS 10.3.6是WLS 11g的Terminal Patch Set版本。 根據終身支援政策檔案中規定的總支援期(2018年12月)和擴充套件支援期(2021年12月)的結束,將根據WLS Premier支援的客戶支援合同提供錯誤更正或擴充套件支援。


(a)錯誤修正結束由隨後的Patch Set釋放來確定,以設定寬限期的開始。 沒有隨後的Patch Set版本,此版本根據終身支援策略文件的Premier和Extended支援日期具有錯誤更正支援。

1.2 補丁版本

  為了確保Weblogic版本效能穩定,必須將weblogic對應版本PSU補丁升級到一個月內的版本,就是為了遮蔽當前版本存在BUG隱患。

  1.    Weblogic10.3.6.0最新PSU補丁:


  2.  Weblogic 12.2.1.2.0 最新PSU補丁:

注:常見的SSRF漏洞和JAVA反序列化漏洞打上最新補丁就已經修復。
1.3 JDK版本

安裝Weblogic軟體時必須安裝對應的JDK軟體,才能正常執行。對於JDK版本的選擇,選擇官方建議的大版本號,同時儘量保證小版本最新。如下所示:

備註:Oracle提供的JDK不適用於AIX、HP-UX作業系統,需到IBM和HP官網下載對應版本的JDK。

二、安裝規範

2.1 OS資源規範

作業系統資源規範要求應該注意以下幾點:

    1.    Weblogic執行的作業系統版本為RedHat7.3 x86_64。

    2.    Hosts配置,要求主機的hosts檔案配置主機名與IP的對應關係。

    3.    磁碟空間規範,要求單獨分配一個新的檔案系統給weblogic軟體,同時至少預留40G空間。

    4. 記憶體使用規範,中介軟體節點記憶體分類區間在4G-8G,因此分配作業系統記憶體至少在16G以上。

2.2 使用者與目錄規範

    1.    Weblogic的服務必須使用非root使用者來啟動與管理。

    2.    weblogic軟體必須安裝到指定到規劃檔案系統路徑下面(該目錄歸屬為非root使用者,許可權為740)。

    3.    嚴禁將不同版本的WebLogic軟體安裝在同一目錄下。

    4.    軟體安裝模式必須是完全模式。

2.3 執行模式選擇

  Weblogic有兩種執行模式:開發模式和生產模式。必須合理選擇Weblogic執行模式,以提升weblogic健壯性和穩定性。 開發系統推薦使用開發模式,生產系統推薦使用生產模式。

三、weblogic域配置

    1.    域名命名規範,domain名稱必須簡單明瞭貼近應用系統名稱,且名稱長度不能超過16字元。格式為:應用程式名_domain。

    2.    域名應以大功能模組作為劃分標準,域下面再建立不同的應用伺服器部署不同的、關聯性較強的應用模組。

3.1 叢集配置

    1.    叢集命名規範:叢集名稱必須簡單明瞭貼近域名稱,且名稱長度不能超過16字元。格式:域名_Cluster。

    2.    配置叢集時多播地址和埠,避免監聽地址問題,可以使用 IP 地址或 DNS名稱指定地址資訊。同時多播地址的使用必須與主機側進行核實、管理,避免重複。

    3.    標識要專用於叢集的多播通訊的地址和埠。多播地址是介於 224.0.0.0 和 239.255.255.255 之間的 IP 地址。WebLogic使用的預設多播值是 239.192.0.0。不應使用任何值為 x.0.0.1 的多播地址。

3.2 伺服器配置

為了確保WebLogic環境中的每個可配置資源都具有唯一名稱。每個域、伺服器、計算機、叢集、JDBC 資料來源、虛擬主機或其他資源都必須具有唯一名稱。

1.    管理伺服器(AdminServer)配置要求 

    1)    管理伺服器必須使用預設命名:AdminServer;

    2)    每一個域必須有一臺AdminServer;

    3)    禁止在AdminServer上部署應用;

    4)    管理伺服器必須配置在域的對外服務IP上;

    5)    嚴禁使用預設埠7001作為管理節點的服務埠,安裝weblogic管理埠指定埠範圍在 [7100-7900]之間;

    6)    管理賬戶密碼必須具備一定強度,禁止使用weblogic這種弱口令,要求密碼要有一定的複雜度。

2.    受管伺服器(ManagedServer)配置要求      

    1)    受管伺服器命名規範,要求字元長度在16位內,以應用名稱加下劃線”_”進行分隔;

    2)    每個叢集節點埠做出埠範圍限定,第一個叢集節點服務埠指定在 [8001-9001]範圍, 第二個叢集節點服務埠指定在 [8101-9101]範圍,其它叢集節點服務埠往後類推。

  3)    同一個cluster下受管伺服器,其JVM啟動引數必須一致,JVM啟動引數必須在啟動指令碼中進行設定,嚴禁在影響全域性環境變數配置檔案中進行配置。

3.3 資料來源配置

為了提高JDBC資料來源連線池效率問題, Oracle官方推出了GridLink資料來源,增強對RAC的支援,就是為了取代原先的多資料來源。以防資料庫RAC節點異常,中介軟體資料來源自動切換正常資料庫節點。

1、JDBC資料來源型別規範選擇:

    1)    資料庫為單例項採用普通資料來源;

    2)    Oracle11g以下版本的RAC多例項資料庫採用多資料來源;

    3)    Oracle11g以上版本的RAC多例項資料庫採用GridLink資料來源,資料來源採用連線資料庫的地址統一用scan ip和service_name。

2、針對JDBC資料來源規範要求作出以下規範要求:

    1)    資料來源名須設為應用程式名_datasource。 

    2)    資料來源JNDI名稱須設為應用程式名_datasource_JNDI,要為資料來源指定多個 JNDI 名,請在單獨的行上分別輸入每個 JNDI 名。

    3)    Cluster中每個節點資料來源,資料庫連線池配置屬性須保持一致

    4)    採用Gridlink資料來源方式配置

3.4 JMS配置

對於每種資源型別(例如佇列、主題和連線工廠),JMS模組內的資源名稱必須是唯一的。但是,兩個不同的JMS模組可以擁有共享相同名稱的相同型別的資源。同樣,跨JMS模組的任何可繫結的JMS資源的JNDI名稱(排除配額、目標關鍵字和 JMS 模板)也必須是唯一的。

    1.    JMS模組名須設為 “應用程式名_JMS_Module”

    2.    JMS Server須設為“應用程式名_JMS_Server”

    3.    JMS連線工廠須設為“應用程式名_ CF”

    4.    JNDI Name須設為“應用程式名_ CF_JNDI”

    5.    JMS佇列須設為“應用程式名_ Queue”

    6.    JNDI Name須設為“應用程式名_ Queue_JNDI”

    7.    JMS主題須設為“應用程式名_ Topic”

    8. JNDI Name須設為“應用程式名_ Topic _JNDI”   

3.5 登入密碼加密配置

1.    新建WebLogic伺服器後要做免密碼啟動檔案,以便在後臺啟動指令碼時能正常啟動各個WebLogic節點。

2.    在每個WebLogic節點目錄下新建security目錄,在security目錄下新建boot.properties檔案,並將使用者和密碼寫入此檔案中,方便使用者密碼管控。

四、啟動指令碼規範

1.    對於不同型別的多使用者作業系統,需配置Weblogic後臺啟動指令碼,已增強使用安全性。

2.    啟動指令碼引數要求重定義JVM記憶體大小和服務埠變數,要求必須後臺啟動server;必須有輸出的server日誌。

3.    啟動指令碼中定義好heapdump和gc引數,方便後續系統出現故障對記憶體使用情況進行分析。

4.    服務啟動指令碼統一用定製化指令碼來啟動,不建議使用weblogic安裝後的指令碼來啟動服務。

5.    因為每個節點的配置要求可能存在差異,不建議設定成全域性變數,所以weblogic標準化裡面不設定“計算機”功能,統一透過後臺維護,控制檯僅提供部署、修改部分配置功能。

五、基線引數最佳化

   weblogic服務執行正常的同時可以透過引數最佳化有助系統效能提升,所以需要針對weblogic相關的引數進行最佳化,以保障業務系統穩定執行。針對weblogic中介軟體存在幾個最佳化點,比如:JVM記憶體、本地I/0開啟、執行緒、資料來源、Accept BackLog和日誌檔案等。

5.1 記憶體最佳化

     1)    Heap堆大小:管理節點JVM記憶體限制在 1G-2G左右,被管理節點伺服器JVM記憶體限制在 4G-8G,其它情況需合理利用伺服器資源,至少預留1~2G本地記憶體給作業系統使用;

   2)    Perm區大小:通用場景設定512MB即可,對於大記憶體應用場景可適當調整為約佔整個heap的1/4大小。Permanent區用於載入類(class)的專門的記憶體區域,該引數僅針對Sun JDK和HP JDK。

注:在WebLogic中,為了獲得更好的效能,ORACLE官方推薦最小堆記憶體等於最大堆記憶體

5.2 本地IO

在能使用Native I/O的平臺上儘量 開啟本地原生I/O,此引數優勢是會使用Java執行緒進行網路操作會降低WLS效能。以下操作是如何去開啟原生I/0引數

5.3 執行緒池

為了提升系統業務併發,執行緒池的最佳化直接影響到了業務系統的併發上升空間和 weblogic 處理能力,因此應該合理的去分配服務的執行緒池大小,這裡提供兩種執行緒調優方式。

1.    work managers執行緒自調優:

2.    手動執行緒調優

在startWeblogic.sh啟動指令碼中的JAVA_OPTIONS變數加入以下引數

-Dweblogic.threadpool.MinPoolSize=500 -Dweblogic.threadpool.MaxPoolSize=500

要求最小執行緒和最大執行緒大小要相等,為了降低申請執行緒資源的開銷,有助效能提升。

5.4 線上執行模式

   生產交付的weblogic系統,要求將域啟動模式設定成生產模式,有助weblogic效能提高。請修改startWebLogic.sh指令碼中,將PRODUCTION_MODE變數的值更改為TRUE。

5.5 資料來源

為了提升資料來源的效能,保障業務能正常獲取資料來源中每個健康的連線,同時也能釋放出非活動連線提升主機的效能,以參考以下指標進行最佳化。


5.6 Accept Backlog

WebLogic使用Accept Backlog (TCP queue)引數規定WebLogic向系統請求的queue的大小, Accept Backlog屬性決定了在 waiting queue中最多可以有多少TCP連線等待處理,預設值為300。如果在許多client連線被拒絕,而在伺服器端沒有錯誤顯示,說明該值設得過低。可以適當增大acceptBacklog的值,每次增加25%

伺服器->配置->最佳化->接受積壓:

5.7 日誌引數

由於Weblogic安裝後預設的各節點日誌生成是不規範的,是無法滿足安全基線規範,為了適應廣西電網中介軟體安全基線要求,強化日誌輸出標準,請按以下引數標準設定。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2738392/,如需轉載,請註明出處,否則將追究法律責任。

相關文章