JBoss 系列二十八:JBoss Data Grid(Infinispan)CarMart 示例

JBoss Data Grid是Red Hat中間件產品(http://www.redhat.com/products/jbossenterprisemiddleware/data-grid/),JBoss Data Grid是基於開源社區產品Infinispan(http://infinispan.org/)。 企業版的JBoss Data Grid與社區版的Infinispan代碼徹底同樣,因此本部份內容基於Infinispan進行。

示例概述

Infinispan能夠做爲內存數據庫使用,Infinispan CarMart示例是一個簡單的Web應用程序,使用Infinispan代替傳統的關係數據庫,CarMart提供瞭如下功能:html

  • 列出全部車
  • 添加新的車
  • 刪除某一特定的車
  • 查看Infinispan的統計信息
CarMart示例中每一個車的信息保存在Infinispan中,咱們經過三種方式運行CarMart示例:遠程客戶端-服務器端模式,本地模式。其中遠程客戶端-服務器端模式咱們使用Infinispan HotRod協議存取數據,本地模式是事務性的經過Infinispan接口存取數據。CarMart示例源代碼位於 cluster/infinispan/carmart目錄之下:

以遠程客戶端-服務器端模式運行Infinispan CarMart示例

根據JBoss Cluster Framework Demo 介紹所示的方法,任意從SourceForge下載或編譯生成DEMO_HOME,本處所需的infinispan-carmart.war位於DEMO_HOME/dist下,咱們須要將infinispan-carmart.war部署到JBoss AS 7,下圖爲示例的簡單架構圖。
git


本示例共兩臺服務器,Infinispan服務器和JBoss服務器,JBoss服務器用來部署CarMart Web應用程序;Infinispan服務器爲CarMart提供存儲數據的支持,carcache爲配置在Infinispan服務器上的命名緩存,CarMart中全部數據都保存在carcache中;CarMart使用Infinispan服務器提供的HotRod協議,經過11222端口從緩存中獲取數據;經過8080端口咱們能夠訪問部署在JBoss服務器上的Web應用程序。具體咱們使用以下步驟運行測試CarMart示例。github

1. 配置啓動Infinispan服務器。一樣,爲了方便描述,咱們將Infinispan服務器目錄稱爲JDG_HOME,編輯$JDG_HOME/standalone/configuration/standalone.xml,添加carcache以下所示:數據庫

<local-cache name="carcache" start="EAGER" batching="false">
	<locking isolation="REPEATABLE_READ" striping="false" acquire-timeout="20000" concurrency-level="500"/>
	<eviction strategy="LIRS" max-entries="100"/>
</local-cache>

注意,如上配置須要添加到cache-container中。$JDG_HOME/bin目錄下有Infinispan服務器的啓動腳本啓動Infinispan以下:

./standalone.sh

2. 啓動JBoss AS 7,並將infinispan-carmart.war部署到JBoss AS 7。$JBOSS_HOME/bin目錄下有JBoss AS 7啓動腳本,咱們經過以下命令JBoss AS 7:

./standalone.sh -b <IP> -bmanagement=<IP>

啓動JBossAS 7啓動完成後,咱們將infinispan-carmart.war拷貝至$JBOSS_HOME/standalone/deployments即完成部署。緩存

3.  測試分析。咱們能夠經過http://<IP>:8080/infinispan-carmart訪問CarMart示例,在打開的頁面咱們能夠執行添加,刪除,查看汽車等操做。

以本地模式運行Infinispan CarMart示例

根據JBoss Cluster Framework Demo 介紹所示的方法,任意從SourceForge下載或編譯生成DEMO_HOME,本處所需的infinispan-carmart-tx.war位於DEMO_HOME/dist下,咱們須要將infinispan-carmart-tx.war部署到JBoss AS 7,下圖爲示例的簡單架構圖。
服務器


如圖,咱們使用Infinispan本地模式,即名爲「carcache」的命名緩存與CarMart Web應用程序在同一臺JBoss服務器上;一樣CarMart應用的數據存儲於緩存之中,與以遠程客戶端-服務器端模式相比,本地模式支持事務性,事務性單元內操做發生異常則整個事務回滾;CarMart經過Infinispan提供的接口讀取,刪除以及插入數據;經過8080端口咱們能夠訪問部署在JBoss服務器上的Web應用程序。具體咱們使用以下步驟運行測試CarMart示例。
架構

1. 啓動JBoss AS 7,並將infinispan-carmart-tx.war部署到JBoss AS 7。$JBOSS_HOME/bin目錄下有JBoss AS 7啓動腳本,咱們經過以下命令JBoss AS 7:測試

./standalone.sh -b <IP> -bmanagement=<IP>

啓動JBossAS 7啓動完成後,咱們將infinispan-carmart-tx.war拷貝至$JBOSS_HOME/standalone/deployments即完成部署。ui

2. 測試分析。咱們能夠經過http://<IP>:8080/infinispan-carmart訪問CarMart示例,在打開的頁面咱們能夠執行添加,刪除,查看汽車等操做。
相關文章
相關標籤/搜索