熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java程序性能優化-負載均衡(1)

2022-06-13   來源: Java高級技術 

    負載均衡(

  對大型應用來說系統負載可能非常重以網站應用為例如果並發數很多則單台計算機就無法承受此時為保證應用程序的服務質量需要使用多台計算機協同工作將系統負載盡可能均勻地分配到各個計算機節點上

  一個典型的實現便是Tomcat集群配置Tomcat集群實現負載均衡可以通過Apache服務器實現使用Apache服務器作為負載分配器將請求轉向各個Tomcat服務器從而實現負載均衡如圖所示客戶端請求被均勻地分配到各個Tomcat節點上

  圖  基於Apache的負載均衡結構

  在使用Tomcat集群時有兩種基本的Session共享模式黏性Session模式和復制Session模式

  在黏性Session模式下所有的Session信息被平均分配到各個Tomcat節點上以實現負載均衡但是一旦一個節點宕機它所維護的Session信息將丟失不具備高可用性且同一用戶只能與一台Tomcat交互因為其他Tomcat節點上不保存這個用戶信息

  而使用復制Session模式將使得所有Session在所有Tomcat節點上保持一致當一個節點上的Session信息被修改這個Session會被廣播到其他Tomcat節點上以保持Session同步這樣當用戶的下一次請求被分配到其他Tomcat節點上時將擁有足夠信息處理用戶請求這樣做的壞處是很容易引起網絡繁忙影響系統效率

  在Java開源軟件中還有一款跨JVM虛擬機專門用於分布式緩存的框架Terracotta使用Terracotta也可以實現Tomcat的Session共享同時Terracotta也是一個成熟的高可用性系統解決方案

  由於Terracotta進行內存共享時並不會進行全復制而僅僅傳輸變化的部分網絡負載也相對較低因此使用Terracotta進行Tomcat的Session共享其效率也遠遠高於普通的Session復制除了與Tomcat集成Terracotta還可以與一些主流Java組件集成使用如JettySpring和EHCacheTerracotta的工作架構如圖所示

  圖  Terracotta工作架構

  使用Terracotta可以在多個Java應用服務器間共享緩存並且在增加應用服務器時不會像Tomcat那樣引起網絡風暴系統負載可以線性增長是一種可靠的負載均衡方案

  注意Terracotta是一款企業級的開源的JVM層的集群解決方案它可以實現諸如分布式對象共享分布式緩存分布式Session等功能可以作為負載均衡高可用性的解決方案

  讀者可以在Terracotta官方網站http://terracottaorg/下載並試用Terracotta在Terracotta安裝完成後可以參考Terracotta自帶的幾個實例深入對Terracotta的了解在此筆者簡單介紹兩個有代表性的Terracotta應用案例

  首先筆者將介紹分布式Cache的使用在Terracotta中EhCache得到了加強具備了分布式功能在Terracotta安裝目錄的ehcache\samples\colorcache子文件夾中有名為colorcache的分布式EhCache應用示例該示例由用戶指定某一種顏色的名稱由後台生成這種顏色生成顏色的初始化時間會比較長但一旦生成後這種顏色便會進入緩存以後再獲取相同的顏色時就能很快得到響應

       返回目錄Java程序性能優化讓你的Java程序更快更穩定

  編輯推薦

       Java程序設計培訓視頻教程

       JEE高級框架實戰培訓視頻教程

       JME移動開發實戰教學視頻

  Visual C++音頻/視頻技術開發與實戰

  Oracle索引技術

  ORACLEG數據庫開發優化指南


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27792.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.