亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JBoss 4.0.2集群指南 建立JMS集群服務(圖)

2019-11-18 13:02:33
字體:
來源:轉載
供稿:網友

  Jms集群的意義在于提升系統在處理消息時的并發能力,建立這樣的集群,有三個步驟:
  
  1、  配置jms消息持久化所使用的數據庫
  
  2、  配置分布式的jndi環境
  
  3、  配置分布式jms
  
  在jboss 4.0.2中,系統采用hibernate的方式來保存消息,所以能夠兼容hibernate支持的所有數據庫。Jboss默認采用hsql,在我們的例子中,將使用Oracle 9.2。首先需要配置連接到數據庫的jndi數據源。方法是把doc/examples/jca下的oracle-ds.xml文件拷貝到server/all/farm下,并且修改其中的參數,保證數據庫能夠正確連接。Cluster啟動后,該文件能夠通過jboss的farm服務,自動拷貝到其他集群節點,并且自動部署。假設jndi數據源的名稱為:GlobalDS
  
  將doc/examples/jms下的oracle-jdbc3-service.xml文件拷貝到server/all/deploy-hasingleton/jms目錄下,并且刪除該目錄下的hsqldb-jdbc2-service.xml。修改oracle-jdbc3-service.xml,在56行左右指定name的值為數據源的名字:GlobalDS。這樣系統會使用該數據源來保存jms消息。使用如下命令啟動boss:  run ?c all
  
  啟動完成后,正常情況下會發現oracle數據庫中多出了三張表:
  
  1、Jms_message_log    該表用于保存所有未處理的點對點消息,表結構是:
  
  Messageid     消息id
  
  Destination    目的地
  
  Txid      事務id
  
  Txop      消息操作類型(a為新增,d為刪除)
  
  Messageblob    消息內容
  
  2、JMS_REFERENCE_LOG  用于保存所有未處理的topic消息,表結構是:
  
  Messageid
  
  Destination
  
  Txid
  
  Txop
  
  Messageblob
  
  Redelivered    消息是否被重發
  
  3、JMS_TRANSACTION_LOG  用于保存處理消息過程中的一些重要的事務
  
  需要注重的是,jboss 3.2之后就不在支持以文件形式保存消息,雖然這樣最會比數據庫操作快一倍以上。Jboss官方的解釋是,使用文件會讓系統不可靠。
  
  客戶端在發送jms消息的時候,首先需要向app server查詢jndi,在jboss cluster中,jndi是作為一個分布式的singleton出現的。每個節點除了有自己的jndi環境以外,整個cluster還具有一些全局的jndi,客戶端在進行jndi查詢的時候,只需要向這個全局的jndi進行查詢,cluster假如在全局jndi中找不到對應的jndi對象,就會按次序向每個節點詢問,看他們的本地jndi中是否有匹配的對象,假如有則返回給客戶,假如所有的節點都沒有,則拋出異常。所有以all方式啟動的jboss,都會打開1100端口,這個端口是全局jndi的入口,所有節點都是如此。
  
  分布式的jndi有的節點有主次的區別,第一個啟動的jboss是主服務器,它會保存所有的全局jndi,其他的節點假如收到客戶查詢jndi的請求后,都會向主服務器請求數據。假如主服務器不幸down掉,那么次節點會發現這個變化,然后啟動自己的jndi環境,取代主服務器提供服務。
  
  下面是配置jms的jndi,打開server/all/deploy-hasingleton/jms下的jbossmq-destinations-service.xml文件,增加一個名為test的destination,如下:
  
  <mbean code="org.jboss.mq.server.jmx.Queue"
  
  name="jboss.mq.destination:service=Queue,name=test">
  
  <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  
  </mbean>
  
  為了預防主服務器down了之后丟失該jndi,所以最好在每個節點都進行這個配置。
  
  在jboss 4.0.2的默認配置下,是不支持消息bean的集群的,要達到這個目的,必須下載一個jar包才能實現,可以從這里獲得: http://blog.yam.com/bromon/archives/489460.Html
  
  得到這個jar文件后,將它命名為cdot-jbossx.jar
  
  文件放到server/all/deploy/jms下。下面編寫消息bean,它的功能很簡單,接收到來自test隊列的消息后,打印消息id。
  
  public class TestJmsBean
  
  implements MessageDrivenBean, MessageListener {
  
  MessageDrivenContext messageDrivenContext;
  
  public void ejbCreate() {
  
  System.out.  
  }
  
  public void ejbRemove() {
  
  }
  public void onMessage(Message msg) {
  
  try
  
  {
  
  System.out.println(msg.getJMSMessageID());
  
  }catch(Exception e)
  
  {
  
  e.printStackTrace();
  
  }
  
  }
  public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext) {
  
  this.messageDrivenContext = messageDrivenContext;
  
  }
  
  }
  
  把這個消息bean部署到server/all/farm目錄下,它會被自動拷貝到cluster的其它節點,并且被自動部署,你會看到如下部署信息:
  
JBoss 4.0.2集群指南 建立JMS集群服務(圖)
點擊查看大圖

  上面顯示通過farm的方式,部署了一個名為GlobalDS的連接池,以及一個名為TestJms的消息bean。
  
  下面寫個客戶端來測試一下:
  
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  
  Properties p = new Properties();
  
  p.put(Context.INITIAL_CONTEXT_FACTORY,
  
  "org.jnp.interfaces.NamingContextFactory");
  p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
  
  p.put(Context.PROVIDER_URL, "172.16.0.116:1100"); // 全局jndi入口
  
  InitialContext ctx = new InitialContext(p);
  
  QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup(
  
  "ConnectionFactory");
  
  QueueConnection conn = qcf.createQueueConnection();
  
  Queue q = (Queue) ctx.lookup("queue/test");//查詢名為test的destination
  
  Queue
session session = conn.createQueueSession(false,
  
  QueueSession.AUTO_ACKNOWLEDGE);
  
  conn.start();
  
  QueueSender sender = session.createSender(q);
  
  for (int i = 0; i < 10000; i++) {
  
  TextMessage tm = session.createTextMessage(sdf.format(new Date()));
  
  sender.send(tm, DeliveryMode.PERSISTENT, 4, 0);//發送持久化消息
  
  System.out.print("第" + i);
  
  }
  
  conn.stop();
  
  session.close();
  
  conn.close();
  
  執行一下,可以看到每個節點都創建了若干個消息bean,同時在處理消息,任意關閉一個次服務器,系統會自動fail over。查看Jms_message_log數據表,里面沒有任何數據,表示所有的消息都已經被處理。
  
  Jboss的jms cluster功能與websphere mq比較起來,是非常簡陋的,可以配置的地方也很少,究竟是免費的東西。Jboss的論壇上透露,在jboss 6.0中將會有全新的jboss messaging服務,不知要等到何年何月。針對這個cluster,我做過簡單的測試,800萬左右的消息數量,無一丟失,應該說還算比較可靠。響應時間也還過的去,在簡單的網絡環境下,能夠應付比較高的并發。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人综合精品在线| 91超碰caoporn97人人| 欧美老少做受xxxx高潮| 欧美黑人巨大精品一区二区| 亚洲最大的av网站| 国产suv精品一区二区三区88区| 国产亚洲精品日韩| 久久久久久高潮国产精品视| 国外色69视频在线观看| 2021久久精品国产99国产精品| 精品调教chinesegay| 91高潮在线观看| 亚洲一区国产精品| 久久久999精品视频| 91久久在线播放| 91精品免费久久久久久久久| 久久精品国产成人| 亚洲男人天堂九九视频| 最近中文字幕mv在线一区二区三区四区| 亚洲精品99久久久久中文字幕| 日韩免费精品视频| 精品久久久久久久久久国产| 欧美日韩福利视频| 黑丝美女久久久| 91av在线免费观看视频| 7777免费精品视频| 国产精品一区二区性色av| 成人黄色av网站| 欧美大胆在线视频| 亚洲精品久久久久中文字幕二区| 久久综合伊人77777蜜臀| 国产精品视频午夜| 欧美午夜影院在线视频| 97视频在线观看免费高清完整版在线观看| 国产精品在线看| 亚洲天堂成人在线视频| 亚洲男人av在线| 欧洲成人免费视频| 北条麻妃一区二区三区中文字幕| 91亚洲国产成人久久精品网站| 伊人精品在线观看| 综合136福利视频在线| 国产美女被下药99| 日韩小视频在线观看| 欧美一级在线亚洲天堂| 亚洲国产精品中文| 亚洲性线免费观看视频成熟| 欧美黑人巨大精品一区二区| 精品久久久久久亚洲国产300| 中文字幕亚洲一区在线观看| 亚洲国产精品va在线看黑人| 国产精品久久久久久久久久久新郎| 在线观看国产精品91| 久久99热精品这里久久精品| 91在线观看免费观看| 亚洲欧美日本伦理| 国产精品无av码在线观看| 久久精品亚洲94久久精品| 欧美性xxxx极品高清hd直播| 黑人巨大精品欧美一区二区一视频| 亚洲香蕉成人av网站在线观看| www.亚洲一区| 欧美成人午夜激情| 国产丝袜精品视频| 国产精品视频免费在线| 美女性感视频久久久| 欧美激情在线狂野欧美精品| 欧美肥臀大乳一区二区免费视频| 欧美电影免费观看高清| 一区二区三区日韩在线| 美女久久久久久久久久久| 亚洲国产美女久久久久| 日韩亚洲欧美中文在线| 成人在线精品视频| 亚洲一区美女视频在线观看免费| 91综合免费在线| 91国产高清在线| 亚洲第一网站男人都懂| 大胆人体色综合| 日韩中文有码在线视频| 亚洲白虎美女被爆操| 国产精品999| 国产精品一区二区三区久久久| 久久亚洲电影天堂| 欧美激情精品久久久久久大尺度| 亚洲欧美日韩国产中文| 亚洲免费视频在线观看| 国产成人精品在线观看| 尤物yw午夜国产精品视频明星| 久久久久久久97| 精品视频久久久| 国产精品精品久久久| 亚洲欧美一区二区激情| 亚洲人成电影网站色xx| 亚洲国产另类久久精品| 成人妇女淫片aaaa视频| 亚洲最新视频在线| 亚洲人成网站999久久久综合| 97精品国产aⅴ7777| 国产精品久久久久久久久久尿| 欧美福利小视频| 成人看片人aa| 中文综合在线观看| xvideos亚洲| 亚洲日本中文字幕| 精品国产一区二区在线| 伊是香蕉大人久久| 成人激情视频在线| 国产欧美日韩亚洲精品| 久久久久久国产精品三级玉女聊斋| 国产欧美va欧美va香蕉在| 欧美一级视频免费在线观看| 欧美成人h版在线观看| 91九色综合久久| 国产最新精品视频| 海角国产乱辈乱精品视频| 久久精品视频亚洲| 91精品免费久久久久久久久| 自拍偷拍亚洲精品| 国产mv免费观看入口亚洲| 中文字幕av一区中文字幕天堂| 在线看国产精品| 日韩成人激情视频| 日韩一区av在线| 亚洲欧洲激情在线| 欧美不卡视频一区发布| 亚洲美女中文字幕| 久久久久久一区二区三区| 欧美日韩国产成人高清视频| 成人免费黄色网| 亚洲全黄一级网站| 日韩免费视频在线观看| 亚洲a成v人在线观看| 欧美国产亚洲精品久久久8v| 国产免费成人av| 国产日韩在线播放| 久久久久久国产免费| 国产精品一区二区久久国产| 欧美另类精品xxxx孕妇| 亚洲一区二区三区四区视频| 国产精品欧美激情在线播放| 亚洲天堂成人在线| 亚洲激情在线视频| 欧美激情二区三区| 久久久精品欧美| 最近2019好看的中文字幕免费| 中文字幕国产亚洲| 2018中文字幕一区二区三区| 91av免费观看91av精品在线| 欧美亚洲成人xxx| 456国产精品| 国产成人小视频在线观看| 日韩在线观看免费高清| 精品亚洲aⅴ在线观看| 成人乱色短篇合集| 亚洲国产精品久久久久| 91日本视频在线| 亚洲综合在线做性| 久久人人爽亚洲精品天堂| 国产精品美女www爽爽爽视频| 久久久国产一区二区三区| 高清日韩电视剧大全免费播放在线观看| 久久久久久久久综合| 福利一区福利二区微拍刺激|