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

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

一種 Web 應用程序級別的 Cluster 實現技術

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

  Cluster 技術在很多重要應用中都很要害,利用 Cluster 可以保證系統的高可用性。但往往 Cluster 在很多人眼里都是高不可攀的,認為這是非常高端的技術。其實不然,你也可以嘗試在你的應用內部實現一種相對比較簡單的 Cluster,這種方式對很多中小型的 Web 應用已經足夠了。
  
  這種應用級別的 Cluster 技術一個獨特的優勢就是你可以不依靠于任何應用程序服務器,象 Tomcat, WebSphere, WebLogic 等,完全是是自己應用內部的實現。這樣可以實現在混合環境下的 Cluster,比如我們可以利用一個 windows 2000 下跑的 Tomcat 和 一個在 linux 下跑的 WebSphere組成一個 Cluster。
  
  我們要實現的 Cluster 功能如下:
  
  1.有三臺服務器,一臺做 Balancer,另外兩臺做 application Server;
  2.Balancer 可以根據兩臺 Application Server 的負載情況來分配用戶請求;
  3.在某臺 Application Server down 掉后,Balancer 可以馬上知道,并在以后不再向這個 Application Server 轉發用戶請求;
  4.在啟動新的 Application Server 后,Balancer 也可以馬上知道,并在以后會向該 Application Server 轉發用戶請求;
  
  
  具體實現方法如下:
  
  首先我們要保證 session 信息能在幾臺 Application Server 間傳遞,你的Web 應用一般都需要用戶登錄,并保留登錄信息在 session 里。假如用戶是在一臺 Application Server 上登錄的,那再訪問另外一臺 Application Server的時候應該怎樣判定該用戶已在別的服務器上登錄過了呢?
  
  我們可以用 Cookie 解決這個問題,但 Cookie 有一個限制,就是 domain,即你在一臺服務器上設置了一個 Cookie 后,只有這臺服務器才能訪問到這個 Cookie,其他服務器根本訪問不到。我們必須想個辦法讓其他服務器也能訪問到,這是我們這個 Cluster 實現中的要害點之一。
  
  我們可以這樣解決,在一臺 App Server 登錄后,App Server 先設置一個 Cookie,然后再發給客戶端一個象下面這樣的 jsp
  
  <Html>
  <head>
  </head>
  <body>
  <form action="http://balancer_setcookie_jsp_url" method="POST" name="frmSetCookie">
  <input type="hidden" name="cookieValue" value="<%=cookieValue%>">
  <input type="hidden" name="redirectURL" value="<%=redirectURL%>">
  </form>
  <script lnguage="javascript">
  document.frmSetCookie.submit();
  </script>
  </body>
  </html>
  
  上面這段程序會立即自動提交個 balancer_setcookie_jsp_url 這個在 Balancer 上的程序,這個程序是這樣處理的:
  
  <%
  String redirectURL = request.getParameter("redirectURL");
  String cookieValue = null;
  
  cookieValue = request.getParameter("cookieValue");
  
  if (cookieValue != null)
  {
  Cookie c = new Cookie("itman",cookieValue);
  c.setPath("/");
  response.addCookie(c);
  %>
  <html>
  <head>
  </head>
  <body>
  <script language="JavaScript">
  document.location.href = "<%=redirectURL%>";
  </script>
  </body>
  </html>
  <%
  }
  else
  {
  if (redirectURL != null)
  {
  response.sendRedirect(redirectURL);
  }
  else
  {
  //error handling
  }
  }
  %>
  
  這個 Balancer 上的程序先取到 App Server 傳來的 cookieValue 和 redirectURL這兩個參數,然后設一個 Cookie,然后再轉回到 redirectURL 所設定的 URL 去,這樣就可以保證 Balancer 也能訪問到這個 Cookie 值了。
  
  現在 Balancer 可以取到 App Server 所設的 Cookie 了,下次客戶訪問過來的時候就先取到 Cookie 值,然后選擇一個負載最少的 App Server 把請求轉發過去。轉發過去的時候也是采用上面 App Server 為 Balancer 設 Cookie 的方法,Balancer 給要轉的 App Server 設一個 Cookie,這個 App Server 就可以判定出該用戶是否已登錄了。
  
  
  現在我們已經解決了不同的 App Server 傳遞登錄信息的問題,下面需要處理的是Balancer 和 App Server 之間的信息交換問題。
  
  每個 App Server 在運行時都需要定時給 Balancer 傳遞一個 heart-beat,Balancer上會有個后臺線程在實時檢測,假如發現那個 App Server 的 heart-beat 已經超時就去掉它,在以后不再轉用戶請求過來。
  
  具體實現方式是這樣的:
  
  Balancer 上啟動一個 RMI Service thread,作為 App Server 注冊 heart-beat 信息用,App Server 也會起來一個線程,專門是每隔指定的時間就訪問 Balancer上的 RMI Service 來注冊自己。Balancer 會維護一個可用 App Server 的列表,并記錄轉發用戶請求的次數,這樣就可以在下次用戶請求過來的時候選擇出負載最低的 App Server 并把請求轉過去。
  
  在新起來一臺 App Server 后,會立即向 Balancer 注冊,這樣 Balancer 就會加入到 App Server 列表中。
  
  在一臺 App Server 當掉后,Balancer 收不到它的 heart-beat 就會把它從 App Server列表中去掉。
  
  這種 Cluster 實現方式是很輕易理解的,也很有效,可以有效保證應用的高可用性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品aaaa| 欧美福利小视频| 韩国精品久久久999| 精品久久香蕉国产线看观看亚洲| 精品久久在线播放| 欧美激情视频一区| 自拍偷拍亚洲在线| 亚洲天堂日韩电影| 亚洲视频axxx| 国内精品久久久久| 欧美日韩国产一区二区| 日韩电影免费在线观看| 国产91精品久久久久久久| 精品成人乱色一区二区| 欧美xxxx14xxxxx性爽| 国产91精品久久久久久久| 少妇高潮久久77777| 国产成人亚洲综合91| 国模精品视频一区二区| 欧美亚洲在线播放| 欧美成人小视频| 欧美在线www| 精品国产一区久久久| 日韩精品视频中文在线观看| 久久久亚洲网站| 狠狠久久亚洲欧美专区| 亚洲欧美中文日韩在线| 国产成人精品免高潮在线观看| 亚洲石原莉奈一区二区在线观看| 日韩**中文字幕毛片| 欧美另类高清videos| 日韩电影视频免费| 色悠悠国产精品| 亚洲欧美国产一本综合首页| 国产精品爱啪在线线免费观看| 亚洲在线免费观看| 久久国产精彩视频| 91精品在线播放| 亚洲第一区第一页| 亚洲精品wwwww| 国产精品中文字幕在线| 成人黄色在线观看| 一本一本久久a久久精品牛牛影视| 国产色视频一区| 亚洲石原莉奈一区二区在线观看| 欧洲永久精品大片ww免费漫画| 国产精品免费电影| 午夜精品久久久久久久99热浪潮| 色婷婷亚洲mv天堂mv在影片| 91成人精品网站| 91精品国产色综合| 欧美老女人在线视频| 亚洲精品免费一区二区三区| 精品国产91久久久久久老师| 国产男女猛烈无遮挡91| 国产日韩av高清| 日韩中文综合网| 亚洲成人a级网| 91精品视频大全| 全球成人中文在线| 成人精品视频99在线观看免费| 欧美在线日韩在线| 国产精品丝袜久久久久久不卡| 在线看国产精品| 成人伊人精品色xxxx视频| 成人午夜黄色影院| 亚洲欧美制服中文字幕| 国产精品成人免费电影| 97欧美精品一区二区三区| 精品爽片免费看久久| 最近中文字幕mv在线一区二区三区四区| 57pao国产成人免费| 91精品国产91久久久| 国产精品999| 欧美黑人极品猛少妇色xxxxx| 国产这里只有精品| 国产精品白丝av嫩草影院| 日韩精品黄色网| 欧美日韩高清在线观看| 91tv亚洲精品香蕉国产一区7ujn| 欧美综合激情网| 91精品久久久久久久久久另类| 欧美成人精品一区二区三区| 成人情趣片在线观看免费| 亲爱的老师9免费观看全集电视剧| 一区二区在线免费视频| 精品美女永久免费视频| 97视频在线观看免费高清完整版在线观看| 久久噜噜噜精品国产亚洲综合| 国产成人拍精品视频午夜网站| 麻豆国产va免费精品高清在线| 性视频1819p久久| 久久精品这里热有精品| 亚洲国产精品久久久| 欧美日韩亚洲成人| 国产精品免费久久久久影院| 欧美大片免费观看| 久久久国产一区二区| 亚洲第一视频网| 久久噜噜噜精品国产亚洲综合| 日韩极品精品视频免费观看| 精品亚洲国产成av人片传媒| 国产成人短视频| 91精品国产91久久久久久最新| 日韩成人在线观看| 91av在线视频观看| 97国产在线观看| 97免费视频在线| 26uuu亚洲国产精品| 日韩国产欧美精品一区二区三区| 亚洲精品中文字幕av| 日韩一区二区三区在线播放| 岛国av午夜精品| 亚洲国产91色在线| 性色av一区二区咪爱| 欧美激情国产高清| 性欧美亚洲xxxx乳在线观看| 久久久久免费精品国产| 91精品国产91久久久久久久久| 亚洲色图激情小说| 久久久在线视频| 久久久极品av| 色综合色综合网色综合| 亚洲成色777777女色窝| 亚洲精品小视频在线观看| 欧美日韩aaaa| 91夜夜揉人人捏人人添红杏| 国模精品系列视频| 久久久久久久久91| 国产精品视频1区| 欧美中在线观看| 秋霞午夜一区二区| 色青青草原桃花久久综合| 亚洲免费av片| 麻豆乱码国产一区二区三区| 精品久久久久人成| 国产在线日韩在线| 亚洲全黄一级网站| 国产精品三级网站| 亚洲欧美日韩国产中文| 欧美丰满片xxx777| 国产成人免费91av在线| 成人亚洲欧美一区二区三区| 琪琪第一精品导航| 久久露脸国产精品| 欧美国产日韩中文字幕在线| 成人精品视频99在线观看免费| 色偷偷9999www| 95av在线视频| 91丨九色丨国产在线| 国产精品久久久久福利| 91免费国产视频| 久久全国免费视频| 性视频1819p久久| 大桥未久av一区二区三区| 亚洲激情视频网站| 欧美激情国产高清| 国产999精品视频| 国产精品免费一区| 久久久久亚洲精品国产| 欧美激情亚洲视频| 午夜欧美不卡精品aaaaa| 日韩美女视频中文字幕| 成人春色激情网|