歡迎您光臨本站 註冊首頁

提高WebSphere Portal性能的捷徑

←手機掃碼閱讀     火星人 @ 2014-03-10 , reply:0

門戶系統作為企業前端應用系統的整合平台,在企業內部通常會作為所有的員工的工作平台使用.由於系統的使用頻率和用戶量都比較大,系統的性能就成了保證項目成功的一個關鍵指標.

通常情況下,我們可以利用IBM官方提供的門戶系統調優手冊來對系統進行基本的優化(門戶系統調優手冊可以通過這個URL地址下載:http://www.ibm.com/developerworks/websphere/zones/portal/proddoc.html),但同時,由於IBM WebSphere Portal Server是基於IBM WebSpere Application Server的產品,因此IBM門戶產品可以很便捷的使用IBM WebSpere Application Server所提供的各種緩存技術,來提高整個門戶系統的性能.WebSpere Application Server的動態高速緩存技術就是其中的一種最常用的方式.

WebSpere Application Server的動態高速緩存(Dynamic Cache),是應用伺服器自身的一種高速緩存機制.利用動態高速緩存,可以將J2EE應用中靜態的(HTML、CSS、JS、圖片等文件)和動態的(需要與資料庫、Web Service等服務交互才能得到的數據)內容緩存到伺服器的JVM中,這樣訪問相關被緩存的應用時,所有的相關輸出都可以直接從JVM的內容中獲得,而不必直接與資料庫、Web Service、靜態文件等交互,從而有效地提高系統的性能.

下圖,列舉出來了動態高速緩存(Dynamic Cache)在整個部署架構中的具體位置,從中我們可以很明確的了解到動態高速緩存(Dynamic Cache)的核心作用:將J2EE應用中靜態的(HTML、CSS、JS、圖片等文件 )和動態的(需要與資料庫、Web Service等服務交互才能得到的數據)內容緩存到伺服器層,以提高系統性能.



下面,我就通過一個具體的例子,來了解如何利用配置WebSpere Application Server的動態高速緩存(Dynamic Cache)來提高門戶系統的性能.關於WebSpere Application Server的動態高速緩存(Dynamic Cache)的詳細資料,可以參考IBM紅皮書站點(www.ibm.com/redbooks) 的紅皮書——WebSphere Application Server V6 Scalability and Performance Handbook.

門戶系統中,所有的應用都是以Portlets的方式來實現的,我們在配置WebSpere Application Server的動態高速緩存(Dynamic Cache)時,需要配置的核心部分就是我們部署在門戶系統中的Portlets.

我們在門戶中部署一下HelloWorld Porltet,這個Portlet的顯示結果如下圖:



此Portlet會顯示出客戶端的當前系統時間和此應用在伺服器中的相對路徑.從中我們可以看到,此Portlet的展現的核心是一個jsp文件——HelloWorldPorltletView.jsp.接下來,我們就具體描述如何配置WebSpere Application Server的動態高速緩存(Dynamic Cache),是的這個HelloWorld Porltet的輸出被緩存的應用伺服器的JVM內存中.


實現過程

第一步 啟用動態高速緩存服務

啟用過程如下:

1. 打開WebSpere Application Server的管理控制台.
2. 在管理控制台中,單擊「伺服器->應用程序伺服器->WebSphere_Portal->容器服務->動態高速緩存服務」.
3. 選擇伺服器啟動時啟用服務.
4. 單擊應用或確定.
5. 保存配置



第二步 配置 Servlet 高速緩存

1. 在管理控制台中,單擊控制台導航樹中的「伺服器->應用程序伺服器->WebSphere_Portal->Web容器設置->Web容器」.
2. 選擇「配置」選項卡下的啟用 servlet 高速緩存.
3. 單擊應用或確定.
4. 保存配置.



第三步 使用cachespec.xml文件配置可高速緩存的對象

編寫針對helloworld Portlet的cachespec.xml文件(要了解cachespec.xml文件相關元素,請參考WebSphere Application Server的inforcenter,具體URL:http://www-01.ibm.com/software/webservers/appserv/was/library/).

內容如下:注意紅色部分,要正確指定cachespec.dtd文件位置,一般情況下是在安裝portal的appserver/properties目錄下.

<?xml version="1.0" ?>
<!DOCTYPE cache SYSTEM "/opt/WebSphere/AppServer/properties/cachespec.dtd">
<cache>
<cache-entry>
<class>servlet</class>
<name>/helloworld/jsp/html/HelloWorldPortletView.jsp</name>
<cache-id>
<component id="*" type="parameter">
<required>false</required>
</component>
<component id="" type="pathinfo">
<required>false</required>
</component>
<component id="host" type="header">
<required>false</required>
</component>
<timeout>180</timeout>
</cache-id>
</cache-entry>
</cache>

請注意:

<class>servlet</class>
<name>/helloworld/jsp/html/HelloWorldPortletView.jsp</name>

此部分,指定需要緩存的具體文件(相對路徑).

編寫好cachespec.xml文件后,需要把該文件放到此Portlet具體部署的文件系統的指定位置:


第四步 部署Cache Monitor

在完成前三步后,需要在伺服器上安裝Cache Monitor組件,來監控剛才配置的動態高速緩存(Dynamic Cache)是否成功運行.

發布[WAS_ROOT]WebSphere/AppServer/installableApps/CacheMonitor.ear應用在WebSphere_Portal server上(和Portal一個伺服器實例上).



通過http://[Host]:10038/cachemonitor查看cache內容(如果伺服器啟動了安全性,先登陸伺服器管理控制台(或Portal),再切換到http://[Host]:10038/cachemonitor).具體內容如下:



第五步 確認配置是否成功

,我們先手動不停地刷新HelloWorld Portlet的頁面.



然後,打開Cache Monitor的頁面:


隨著刷新HelloWorld Portlet的頁面的次數不斷增加,我們會看到上圖「Cache Hits」的數目也會不斷增加.Cache Hits:記錄緩存訪問情況的參數.

另外,通過點擊「Cache Content」,可以進一步確認到底緩存的具體內容是什麼.



點擊內容的具體鏈接,我們就可以看到,應用伺服器內存中,所緩存的內容就是HelloWorld Porltet了.



總結

通過以上方案,我們可以方便地將J2EE應用中靜態的(HTML、CSS、JS、圖片等文件)和動態的(需要與資料庫、Web Service等服務交互才能得到的數據)內容緩存到伺服器的JVM中,這樣訪問相關被緩存的應用時,所有的相關輸出都可以直接從JVM的內容中獲得,而不必直接與資料庫、Web Service、靜態文件等交互,從而有效地提高系統的性能.



[火星人 ] 提高WebSphere Portal性能的捷徑已經有834次圍觀

http://coctec.com/docs/java/show-post-61881.html