麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

原創重量級:JBoss 4.0.2集群指南(圖)

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

  本文主要講解JBoss cluster的基本知識以及簡單的配置方法,其間涉及了一些jboss的補充知識。
  
  一、材料預備:
  
  1、  JBoss 4.0.2
  
  JBoss各個版本之間差異比較大,即使同為jboss 4.x的版本,內部組件的版本也不一致,所以請盡量使用同一版本的server。目前已經證實可以配置cluster的版本多為jboss 3.2.6和jboss 4.0.2。
  
  2、  Apache 2.0.54
  
  3、  Apache mod_jk-1-2-13-apache-2-0-54
  
  二、安裝:
  
  1、  jboss4.0.2與apache 2.0.54的安裝請自行搞定。假設jboss的安裝目錄為%jboss%,apache安裝目錄為%apache%。
  
  2、  mod_jk的安裝。
  
  從apache.org獲得文件mod_jk-1-2-13-apache-2-0-54.so,將該文件拷貝到%apache%/ modules。
  
  三、jboss cluster入門
  
  Jboss 支持如下類型的cluster:EJB、web、JNDI、JMS,我們主要了解web cluster。
  Web cluster實際上可以劃分為兩個話題:負載均衡 (load balance) 和狀態同步。它們是互相獨立的,單獨配置。
  
  負載均衡的概念比較簡單,重要的是負載均衡的粒度。可以選擇針對每個request的均衡,或者是針對每個用戶的均衡。選擇不同的粒度,需要不同的狀態同步方式。
  
  1、基于request的負載均衡
  
  該種方式下,負載均衡器 (load balancer)會根據各個node的狀況,把每個http request進行分發。使用這樣的均衡策略,就必須在多個node之間復制用戶的session,實時保持整個cluster的用戶狀態同步,這種操作被稱為session復制(session replication)。Jboss的實現原理是使用攔截器(interceptor),根據用戶的同步策略攔截request,做同步處理后再交給server產生響應。
  
  該方法的優點是客戶不會被綁定都具體的node,只要還有一個node存活,用戶狀態都不會丟失,cluster都能夠繼續工作。缺點是node之間通信頻繁,響應速度有影響,多并發、高頻操作的情況下性能下降比較厲害。
  
  2、  基于用戶的負載均衡
  
  該種方式下,當用戶發出第一個request后,負載均衡器動態的把該用戶分配到某個節點,并記錄該節點的jvm路由,以后該用戶的所有request都會被綁定這個jvm路由,用戶只會與該server發生交互,這種策略被稱為粘性session(session sticky)。
  
  該方法的優點是響應速度快,多個節點之間無須通信。缺點也很明顯,某個node死掉以后,它負責的所有用戶都會丟失session。
  
  四、實戰
  
  1、負載均衡
  
  Jboss的負載均衡目前有兩種方案,一是使用apache的mod_jk,二是使用jboss自帶的負載均衡模塊。下面分別講解這兩種配置。
  
  mod_jk的配置
  
  1、  請確認%apache%/modules下已經有mod_jk-1-2-13-apache-2-0-54.so文件。
  2、  修改%apache%/conf/httpd.conf  在文件末尾添加:  Include conf/mod_jk2.conf
  3、  在%apache%/conf下新建文件  mod_jk2.conf    文件內容如下:
  
  # Load mod_jk module. Specify the filename
  # of the mod_jk lib you’ve downloaded and
  # installed in the PRevious section
  LoadModule jk_module modules/mod_jk-1-2-13-apache-2-0-54.so
  # Where to find workers.properties
  JkWorkersFile conf/workers2.properties
  # Where to put jk logs
  JkLogFile logs/mod_jk.log
  # Set the jk log level [debug/error/info]
  JkLogLevel info
  # Select the log format
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  # JkOptions indicate to send SSL KEY SIZE,
  JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  # JkRequestLogFormat set the request format
  JkRequestLogFormat "%w %V %T"
  JkMount /* loadbalancer
  
  其中JkMount /* loadbalancer的意思是,把所有的請求都發給loadbalancer處理。可以通過修改url來控制發送某些request。
  4、在%apache%/conf下新建文件  workers2.properties    其內容為:
  
  worker.list=loadbalancer,server1,server2
  
  # Define the first node...
  worker.server1.port=8009
  worker.server1.host=172.16.0.116
  worker.server1.type=ajp13
  worker.server1.lbfactor=1
  worker.server1.local_worker=1
  worker.server1.cachesize=10
  
  # Define the first node...
  worker.server2.port=8009
  worker.server2.host=172.16.32.88
  worker.server2.type=ajp13
  worker.server2.lbfactor=1
  worker.server2.local_worker=1
  worker.server2.cachesize=10
  
  # Now we define the load-balancing behaviour
  worker.loadbalancer.type=lb
  worker.loadbalancer.balanced_workers=server1,server2
  worker.loadbalancer.sticky_session=1
  
  其中對于node的命名規則是worker.節點名.xxxx。所以上述文件定義了兩個節點:server1和server2。8009端口是jboss默認的ajp端口,另外需要注重的是worker.server2.lbfactor參數,它是節點的負載加權,它的值越大,獲得負載的機會就越大。可以根據node的硬件性能進行調整。worker.loadbalancer.sticky_session參數是指定是否使用粘性session。
  
  所有需要負載均衡的節點,都必須在worker.loadbalancer.balanced_workers參數中列舉出來。
  
  請記住所有node的名稱和它對應著哪臺機器,后面的配置中會使用。
  
  嘗試啟動apache:%apache/bin/apache.exe,正常情況下沒有任何提示。假如你使用的jk是2.0的,那么配置文件的寫法完全不同,由于mod_jk2已經停止開發,所以apache并沒有提供任何講解,對于配置文件的編寫也沒有任何指導。
  
  Jboss自帶均衡器的配置
  
  將文件夾%jboss%/docs/examples/varia/loadbalancer/loadbalancer.sar拷貝到%jboss%/server/all/deploy下,并且修改loadbalancer.sar/loadbalancer.sar/META-INF/jboss-service.XML,在<host>標簽中類出所有節點,在<sticky-session>標簽中指定是否使用粘性session。配置完成。
  
  該均衡器的缺點是負載能力相對不高,配置參數太少,比如無法指定不同節點的負載加權,所以后面都以mod_jk為例,不再講解jboss自帶的負載均衡器的內容。
  
  負載均衡的配置基本完成,啟動jboss,其中過程中會列出DefaultPatition中所有的節點:
  run.bat -c all
  
 原創重量級:JBoss 4.0.2集群指南(圖)(圖一)

  任何節點的關閉與啟動都會在cluster中廣播,比如加如一個新節點后,其他節點會得到以下提示:
  
 原創重量級:JBoss 4.0.2集群指南(圖)(圖二)

  2、session sticky配置
  
  apache應該會以粘性session的方式分發請求。部署一個應用測試一下,你會發現粘性session沒有起作用。因為我們還沒有給jboss配置jvm路由( jvmRoute),apache就無法知道究竟哪些session是屬于哪個節點的。我們繼續往下:
  
  修改server1機器上的jboss的配置文件:%jboss%/server/all/deploy/jbossweb-tomcat55.sar/ META-INF/ jboss-service.xml
  
  在110行有:<attribute name="UseJK">false</attribute>,將它改為true。值得注重的是在這行標簽上面有一段注釋,要求你在server.xml中必須有:
  Engine name="jboss.web" jmvRoute="Node1" defaultHost="localhost"
  
  請注重這里有一個氣死人不償命的小bug,jboss的官方文檔把 jvmRoute寫成了jmvRoute,就是v和m兩個字母的顛倒讓我郁悶了三天,翻遍了jboss.com和theserverside.com。都是直接拷貝的錯,吐血吐到脫水啊。
  
  下面需要修改server1上的%jboss%/server/all/deploy/jbossweb-tomcat55.sar/ server.xml,在32行左右有:
  
  <Engine name="jboss.web" defaultHost="localhost">
  
  給它增加一個jvmRoute屬性:
  
  <Engine jvmRoute="server1" name="jboss.web" defaultHost="localhost">
  
  請注重,jvmRoute的值必須和mod_jk中的節點名字正確對應,否則無法正確路由。Cluster中的所有節點都應該做相應的配置。
  
  Jboss的配置完成了,下面需要在你的web應用中修改配置文件,讓它支持集群。
  
  在WEB-INF/web.xml中加入屬性:  <distributable/>
  
  Ok,基于用戶的cluster完成了,每個用戶會綁定都某個節點上進行交互。這種綁定是如何完成的呢?原來apache把客戶分發到節點后,該節點會在用戶的session id后面加上此節點的路由名稱,變成這個樣子:
  
  Efdfxxd98daja87daj76da2dka**,server1
  
  有了這個標志,就能分辨該session屬于哪個節點。
  
  3、session replication配置
  
  下面要做的是基于request的cluster,也就讓各個節點之間互相復制session狀態。有兩種復制模式,同步與異步。使用同步的方式,jboss會把session復制的操作和對request的響應放到一個應用事務(application transaction),session復制完成后才去處理request。異步復制則發送session復制的消息后馬上處理request,session復制則會稍有延遲。但是

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一本一道久久久a久久久精品91 | 国产亚洲精品久久久久婷婷瑜伽 | 国产午夜小视频 | 免费在线观看午夜视频 | 91网页视频入口在线观看 | 91亚洲免费视频 | 天天色综合2 | 国产91中文字幕 | 国产免费一级淫片a级中文 99国产精品自拍 | 在线播放黄色片 | 精品国产一区二区三区四区在线 | 日韩三级伦理在线观看 | 99亚洲伊人久久精品影院红桃 | 一区二区三区在线视频观看58 | 久久久麻豆 | 老女人碰碰在线碰碰视频 | 久久久久在线观看 | 国产精品自拍av | 国产毛片在线看 | 国产精品区一区二区三区 | 有色视频在线观看 | 久久久国产精品电影 | 国产美女自拍av | chinesexxxx刘婷hd 国产91在线播放九色 | 亚洲一级片在线观看 | 国产精品久久久久久久hd | 成人在线网站 | 成人艳情一二三区 | 日本成年网 | 999精品国产| 久久精品国产99国产精品澳门 | 国产精品视频在 | 成人黄色小视频在线观看 | 92看片淫黄大片一级 | 欧美日韩免费一区 | 操皮视频 | 黄污网址 | 逼片 | 91成人免费在线观看 | 中午字幕无线码一区2020 | 久久久日韩精品一区二区三区 |