為了理解weblogic服務器如何工作,並讓它表現出最佳性能,我們很有必要理解幾個概念。最重要的概念都在下面的內容談到了。

執行線程和隊列
當客戶端向Weblogic發起請求時,響應該請求的實際工作是由叫做執行線程的Java線程執行的。用戶可以使用指向Servlet引擎的基於HTTP的請求,或者訪問諸如企業級JAVABean這類對象的遠程方法調用來提交工作。當服務進程啟動時,它會把自己綁定到一個端口,並給該端口分配一個針對傳入請求的監聽線程。一旦該請求建立了鏈接,服務器就把該鏈接的控制傳遞給socket muxer。Socket muxer從socket讀取請求,並在請求到達時把工作請求放到自調整的執行隊列中。一個空閑的執行線程將從執行隊列取出請求,再把這些請求的響應工作轉發給專門的處理線程。執行線程執行請求並返迴響應。
Oracle Weblogic服務器使用socket muxer讀取服務器上的傳入請求。MU型而從網絡上讀取消息,並把它們打成工作包,然後放入工作管理器隊列,通過某個線程執行工作並確保響應回到請求來源的同一個socket去。有兩種類型的muxer,一種是Java Muxer,另一種是本地muxer。Java muxer使用專門平台的本地二進制包。默認情況下,Oracle Weblogic使用本地muxer——也就是說,該服務器的“啟用本地IOP”參數是選中狀態。要注意的是,若使用本地muxer,該服務器會創建固定數量的線程來讀取傳入請求;而使用Java muxer,可以在管理控制台中修改“socket讀取器百分比”參數來配置線程數量。本地muxer分配特定比例的服務器線程來用作socket讀取器線程,形成線程池功能,同時剩下的服務器線程忙着處理客戶端請求。一般情況下,需要小心修改socket讀取器線程的數量。在許多情況下,最優化的配置是設置為“1”。
執行JMX API和MBerns
Weblogic服務器是用Sum的Java管理擴展實現的部署系統管理基礎架構。執行JMX API涉及到使用Java API涉及到使用Java MBeans給系統管理任務建模。如果能理解MBean和JMX API,可以使用它們構建自己的管理工具。然而,所有的管理工具都使用相同的MBean和JMX API,所以不必重新發明輪子來創建定製管理工具。雖然Weblogic服務器管理員不需要知道如何用JMX API編程,但是如果對其編程有所了解的話,有助於理解不同類型的MBean以及理解JMX API如何與它們交互。
WEblogic服務器使用兩種基本類型的MBean——配置MBean和運行時MBean——來配置、監視和管理服務器以及資源。
配置MBean包含服務器和資源的配置信息,存儲在域配置文件中,比如“config.xml”文件或者其它XML文件。這些都是持久的MBean,而域配置文件(config.xml)為這些MBean存儲屬性值,不管什麼時候用管理工具修改了配置屬性,這些變更都會持久化到“config.xml”文件中。通過修改啟動腳本,在Java啟動命令中添加額外參數“-D”選項,也可以修改配置值。如果修改了任何配置設置,“config.xml”文件都會自動更新。當受管服務器啟動時,它會聯繫管理服務器,獲得配置信息副本,在內存中存儲為配置MBean。因此,域中的所有服務器在內存中都有相同的配置副本。要注意,在啟動受管服務器時,修改的任何屬性都不會影響“config.xml”文件;只有在管理服務器上修改的屬性值,才會保存到“config.xml”文件中。當關閉服務器實例時,該服務器託管的所有配置MBean都會被銷毀。
運行時MBean幫助監視運行服務器實例,它包含保持服務器實例和應用程序運行時信息的屬性。每個服務器的資源都會更新相關運行時MBean,包括其狀態變化。例如,“ServerRuntimeMBean ”在服務器啟動時會初始化,其中包括了該服務器的運行時數據。運行時MBean只有運行時數據構成,沒有其它內容。當關閉服務器時,“ServerRuntimeMBean ”中的運行時統計都被銷毀了,其它沒有運行時MBean的情況類似。
MBean服務器充當著各種MBean容器的角色,該服務器創建並提供對MBean的訪問。Oracle提供三種類型的MBean服務器。管理服務器託管域運行時MBean服務器實例,它為域範圍內的服務器管理MBean。受管服務器和管理服務器都託管運行時MBean服務器,它支持你配置服務器實例。管理服務器HIA託管編輯MBean服務器,它管理掛起的配置變更。管理服務器和受管服務器還可以選擇性地託管JVM的平台MBean服務器,它控制包含JDK監視信息的MBean。
可以在服務器實例運行時動態修改大部分域配置屬性。對於不支持動態配置的屬性,你就必須重啟服務器實例了。你配置的運行時屬性值將立即反映出你所作的變更,這些值會持久地保存在“config.xml”文件中。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/209214.html