欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
J2EE Clustering經(jīng)典范文學(xué)習 : 技術(shù)文檔-新技術(shù)天空-新技術(shù)CMS-j2e...

J2EE Clustering經(jīng)典范文學(xué)習

2007-09-10 11:00:43 作者: 江南白衣 來(lái)源: csdn  標簽:j2ee Cluster (English)
文章轉載自互聯(lián)網(wǎng),如果您覺(jué)得我們侵權了,請聯(lián)系管理員,我們會(huì )立刻處理。

    構造Cluster是架構師們實(shí)現ScalabilityHigh Availability 的最直接用藥。所以大家很多都會(huì )無(wú)意中使用Cluster的思想去設計自己的服務(wù)器。其實(shí)Java EE里的Clustering已經(jīng)做得很熟很爛,大家如果爛熟各家vendor對Web,EJB,JNDI,JMS,WebService....的 Cluster實(shí)現,再思考自己的爛攤子時(shí),思路便快捷清晰,少很多與同僚們的無(wú)謂爭論。

      本站下載地址 : http://www.ntsky.com/download/document/2007-09-10/dc8746ce46924f63.html

     JavaEE Cluster的經(jīng)典范文是Sun的王昱寫(xiě)于2005年的Uncover the hood of J2EE Clustering Preface,更可貴的是dev2dev上的JadeYuan兄弟將它高質(zhì)的翻成了中文。 

 一、所謂集群            目的就是以負載均衡(Load Balance)與失敗轉移(Failover) 實(shí)現可擴展性(Scalability)和高可靠性(High Availability),主要實(shí)現的功能:

  1. Load Balance 算法主要有輪循、權重(根據服務(wù)器硬件配置的不同)和隨機三種,但更酷的做法是基于負載(直接查探或者服務(wù)器主動(dòng)報告它們的負載)。
  2. Health Check心跳系統與發(fā)現協(xié)議。Server一般會(huì )主動(dòng)定期多播報告自己狀態(tài),也會(huì )Ping對方來(lái)問(wèn)候平安。比如Weblogic每10秒會(huì )發(fā)送一次心跳,如果有30秒沒(méi)有收到對方服務(wù)器的心跳了(考慮到多播可能會(huì )丟失數據包)就視對方為陣亡。
  3. Session Replication 因為會(huì )服務(wù)器記錄與特定用戶(hù)的會(huì )話(huà)信息,Balancer應該把同一用戶(hù)的請求定位到同一臺服務(wù)器上。如果該服務(wù)器失效,把該用戶(hù)和會(huì )話(huà)信息轉移到新服務(wù)器上時(shí)。
    如果只要單純的load balance,不要fail over的話(huà),使用純硬件如F5已經(jīng)足夠,不需要在軟件上做任何事情。

除了Scalability 與High Availability,一個(gè)集群還應該對已有代碼的最小影響,對性能影響最小,配置與部署簡(jiǎn)單,以及運行時(shí)可監控。

 二、Web層群集 

    Balancer無(wú)非Apache/IIS插件,balance Servlet,硬件四層交換機三類(lèi),而討論的重點(diǎn)在Session 信息的Replication 實(shí)現上,簡(jiǎn)單的分有全部服務(wù)器冗余備份,三三兩兩互為冗余備份,中央備份服務(wù)器三種模式。

              1.多服務(wù)器全冗余備份
              Tomcat的最為粗糙,最沒(méi)有擴展性的做法,不提。Sun的怪怪的replacate的內存數據庫法HADB可能也屬于這種范疇。

              2.三三兩兩互為冗余備份
              Weblogic, Jboss and WebSphere 的做法,好主流。A會(huì )有B的數據,B會(huì )有C的數據,C會(huì )有B的數據,如果A出錯,就會(huì )由C接替A的工作。這種做法的弊端是:
              1.要控制failover到備份服務(wù)器,Balancer的實(shí)現復雜度高。
              2. 如果A出錯,C就要瞬時(shí)承載A、C的操作,很可能將它壓垮,針對這點(diǎn),Weblogic的做法是針對每個(gè)session而不是每個(gè)Server選擇備份服務(wù)器,把主備服務(wù)器A、B的名字寫(xiě)在用戶(hù)Cookie里,如果A失效后,Balancer將用戶(hù)轉到服務(wù)器C,C會(huì )根據用戶(hù)cookie記錄,從B那里獲取會(huì )話(huà)信息。
              3.相對沒(méi)有cluster的方案,需要花額外的時(shí)間和內存。

              文中沒(méi)講的Geronimo使用的WADI,應該也屬于這種類(lèi)型,不過(guò)更為靈活,詳見(jiàn)Geronimo 叛逆者: 加入集群功能第1部分 和 第2部分。

              3. 中央備份服務(wù)器
             
N+ 1模式,一個(gè)中央Server存放所有的Session,如果一臺Server死了,接管的Server就從中央服務(wù)器restore相關(guān)數據??梢杂脭祿?很多應用服務(wù)器都支持的最簡(jiǎn)單,但最慢的模式),也可以采用內存。這種方式好處是cluster服務(wù)器上不需要冗余內存,可以failover到任意服務(wù)器,cluster服務(wù)器全死了中央服務(wù)器都不死。壞處就是如果中央服務(wù)器死了...如果中央服務(wù)器的內存不夠了.....另外,多了個(gè) restore的步驟。

        使用內存備份session時(shí),Tomcat/JBoss使用的JavaGroups 是一個(gè)很好的工具,它的“ Group membership protocols” and “message multicast”特性都非常有用。

        另外,無(wú)論使用內存還是數據庫,都需要串行化Java對象,性能損耗厲害,所以JRun 就采用了Jini架構 ,而Tangosol Coherenc ,Terracotta這些Data Grid方案都提出了自己的session備份做法,整天顯示著(zhù)比傳統方案快多少多少。Data Grid分布式緩存本身就是很Enterprise的功能,下篇blog再詳述。 

三、EJB集群

從stub 調用實(shí)際EJB對象時(shí),有三種方法實(shí)現負載均衡和fail over:

  1. Smart Stub.在stub內維護有效列表,實(shí)現負載均衡邏輯,進(jìn)行實(shí)效檢測,BEA Weblogic and JBoss 采用。
  2. IIOP Runtime Library ,Sun的JES 算法,把算法從客戶(hù)端的stub移到客戶(hù)端的IIOP Runtime
  3. Interceptor Proxy,IBM做法,把算法移到了服務(wù)端,Location Service Daemon (LSD)。

在JNDI查找,EJBHome Stub查找生成EJB實(shí)例,調用EJB方法三種時(shí)候都可以實(shí)現負載均衡,對statefull,stateless,entity bean,又有不同的做法。

四、其他集群

JMS 集群,可以有多個(gè)broker組成集群(JBoss,如果要持久化Message,就要把原來(lái)嵌入式的數據庫改為共享模式),activeMQ還支持多個(gè)消費者組成集群,但每個(gè)消費者負責同一類(lèi)的任務(wù),比如訂單隊列的處理,Server A只處理圖書(shū)類(lèi)的訂單,或只處理《Programming Ruby 2nd》的訂單。

數據庫集群有Oracle的RAC,但JDBC本身的failover能力很低,一旦connection 中斷,resultset等對象都會(huì )失效,Weblogic的連接池會(huì )嘗試重連。

五、Cluster的神話(huà)

1.Failover可徹底避免錯誤
   JBoss的文檔用了整整一章來(lái)警告你,真的需要http session復制嗎?沒(méi)有http session可以使效率提高很多,而有了的話(huà),并不能避免所有錯誤。失敗轉移只能在兩次調用間產(chǎn)生作用,在調用時(shí)產(chǎn)生的錯誤是無(wú)法恢復的,除非這是個(gè)冪等操作(如單純的get(),而不是put(),無(wú)論如何重復操作結果都是一樣的),否則,如果A上承載100用戶(hù),失敗時(shí)有20個(gè)用戶(hù)正在進(jìn)行處理,則只有80個(gè)用戶(hù)能逃出生天平安轉移到B。

2.小心編寫(xiě)可集群的程序

1.http session要放能serilaze的對象,對象不要太大,變更時(shí)要顯式的setAttribute().

2. 注意Cache的使用。如果每個(gè)JVM獨立使用Cache,會(huì )否不一致,如果進(jìn)行同步,注意開(kāi)銷(xiāo)。

3.不能使用靜態(tài)變量,如在線(xiàn)用戶(hù)數,要搞成分布式的 Cache。

4.外部資源如文件系統(一臺機器上沒(méi)有另外一臺機器的文件),存成DB或者使用SAN

5.特別服務(wù):如timer服務(wù),基于事件的服務(wù),

六、延伸閱讀

來(lái)源:http://ntsky.com/tech/java/j2ee/2007-09-10/3f90662ab6dc76d5.html 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
揭開(kāi)J2EE集群的神秘面紗(三)
EJB集群技術(shù)分析 - biaoming - JavaEye技術(shù)網(wǎng)站
有關(guān)J2EE集群的文章
Enterprise Java Community: Under the Hood of J2EE Clustering
大話(huà)Oracle RAC:集群 高可用性 備份與恢復
【獨家】史上最全Redis高可用技術(shù)解決方案大全
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久