java計算池技術(shù)架構(gòu).ppt_第1頁
java計算池技術(shù)架構(gòu).ppt_第2頁
java計算池技術(shù)架構(gòu).ppt_第3頁
java計算池技術(shù)架構(gòu).ppt_第4頁
java計算池技術(shù)架構(gòu).ppt_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Java計算池技術(shù)規(guī)劃,高可伸縮性Java集群,目錄,背景,技術(shù)背景 目標(biāo) 解決方案,技術(shù)要點解析 我們業(yè)務(wù)現(xiàn)狀 業(yè)務(wù)解決方案 技術(shù)實施計劃表,背景,越來越多的關(guān)鍵任務(wù)與大規(guī)模應(yīng)用運行在Java EE技術(shù)上。 系統(tǒng)需要越來越高的高可用性(HA) 系統(tǒng)需要越來越好的可擴展性。 saas的發(fā)展和應(yīng)用要求我們建設(shè)可伸縮,高可靠,高性能的計算環(huán)境運營架構(gòu) 目前數(shù)商平臺的基礎(chǔ)架構(gòu)還需要解決可伸縮性問題,技術(shù)背景,傳統(tǒng)的Java應(yīng)用服務(wù)器集群的方法 基于會話復(fù)制的水平擴展 基于會話粘滯的水平擴展 基于cache的集中式會話的水平擴展,基于會話復(fù)制的水平擴展,負載均衡器(lvs),應(yīng)用服務(wù)器1 jboss,

2、數(shù)據(jù)庫(mysql),應(yīng)用服務(wù)器2 jboss,應(yīng)用服務(wù)器3 jboss,會話復(fù)制,基于會話粘滯的水平擴展,負載均衡器(lvs),應(yīng)用服務(wù)器1 jboss,數(shù)據(jù)庫(mysql),應(yīng)用服務(wù)器2 jboss,應(yīng)用服務(wù)器3 jboss,會話粘滯,基于cache的集中式會話的水平擴展,負載均衡器(lvs),應(yīng)用服務(wù)器1 jboss,數(shù)據(jù)庫(mysql),應(yīng)用服務(wù)器2 jboss,應(yīng)用服務(wù)器3 jboss,中心會話服務(wù)器 memcached,傳統(tǒng)應(yīng)用服務(wù)器水平擴展對比,傳統(tǒng)方法的問題,考慮一下這樣的場景: 一臺Web服務(wù)器可能駐留了很多Web應(yīng)用,每個Web應(yīng)用都同時有幾百個并發(fā)用戶,每個用戶將生成特定

3、的瀏覽器會話。 所有這些會話信息都將被備份下來以防服務(wù)器實例失敗。 更有甚者,會話時時刻刻都在改變:會話創(chuàng)建、過期;會話中的屬性添加、修改與移除;為了判斷會話何時過期,會話最后修改時間也隨著訪問時間而改變。 所以性能就成為會話失敗轉(zhuǎn)移解決方案中的關(guān)鍵問題。,目標(biāo),Java應(yīng)用的計算進行池化 具有出色的擴展能力,計算能力的擴展能夠線性增長或者減小 具有高可用性 不需要應(yīng)用程序進行代碼的定制 很好的失敗轉(zhuǎn)移能力 實現(xiàn)應(yīng)用的無狀態(tài) 培養(yǎng)綜合的,高級的系統(tǒng)管理人員,目標(biāo),負載均衡器,負載均衡器,Java計算池,1,1,1,2,2,2,2,3,3,3,3,3,3,3,4,1,數(shù)據(jù)庫池,1,1,2,3,3

4、,2,2,3,4,1,3,1,3,1,1,1,3,3,3,隨著處理需求的增加,自動的填加服務(wù)器 隨著實際處理能力的減少,自動的減少某個應(yīng)用占用的處理資源 服務(wù)器可動態(tài)的增加和減少,達到運行時的平衡.,解決方案,技術(shù)要點,網(wǎng)絡(luò),千兆網(wǎng)絡(luò),分層 負載均衡-lvs Terracotta, JVM-level cluster 存儲池-hadoop 數(shù)據(jù)庫集群-Continuent,squeoia,mysql 自動化維護管理-cfengine+SVN 監(jiān)控系統(tǒng)-分布式集群監(jiān)控系統(tǒng)ganglia 管理系統(tǒng),SVN/監(jiān)控/配置引擎自動化管理,Java應(yīng)用,LVS,入口,LVS,入口,Mysql/oracle

5、,數(shù)據(jù)集群中間件 服務(wù)器,Hadoop DataNode,Hadoop NameNode,Java應(yīng)用,Java應(yīng)用,JVM集群服務(wù)器terracotta服務(wù)集群,JVM集群服務(wù)器terracotta服務(wù)集群,Mysql/oracle,Mysql/oracle,Hadoop NameNode,Hadoop DataNode,Hadoop DataNode,數(shù)據(jù)集群中間件 服務(wù)器,存儲池,DSO JVM,DSO JVM,DSO JVM,計算池系統(tǒng)架構(gòu),網(wǎng)絡(luò)設(shè)計,網(wǎng)絡(luò)結(jié)構(gòu)是整個系統(tǒng)的基礎(chǔ)保障 分層結(jié)構(gòu)設(shè)計 外部應(yīng)用網(wǎng)連接應(yīng)用與外部用戶,應(yīng)用服務(wù)器接口eth1 內(nèi)部應(yīng)用網(wǎng)連接應(yīng)用與數(shù)據(jù)庫或存儲,應(yīng)用

6、服務(wù)器接口eth0, 數(shù)據(jù)庫服務(wù)器接口eth1. 管理網(wǎng)絡(luò)管理指令,監(jiān)控通訊,物理上是與內(nèi)部應(yīng)用網(wǎng)復(fù)用,應(yīng)用服務(wù)器接口eth0,數(shù)據(jù)庫服務(wù)器接口eth0 遠程控制網(wǎng)控制服務(wù)器啟動狀態(tài),硬件狀態(tài)監(jiān)控,應(yīng)用服務(wù)器遠程控制接口,數(shù)據(jù)庫服務(wù)器遠程控制接口 IP網(wǎng)絡(luò)規(guī)劃 管理網(wǎng)IP,全網(wǎng)唯一,按機房機架位置分配,一一對應(yīng) 遠程控制網(wǎng)IP,與管理網(wǎng)IP一起整體規(guī)劃 內(nèi)部應(yīng)用網(wǎng)IP,全網(wǎng)規(guī)劃,按需分配 外部應(yīng)用網(wǎng)IP,按需分栩 千兆交換/百兆交換 千兆交換能有效提高網(wǎng)絡(luò)絡(luò)處理速度 IDC機房出口速度的約束,可以百兆交換,用戶,應(yīng)用,數(shù)據(jù)庫/存儲,外部應(yīng)用網(wǎng),內(nèi)部應(yīng)用網(wǎng),管理網(wǎng),遠程控制網(wǎng),負載均衡LVS,負

7、載均衡用開源軟件LVS實現(xiàn) Heatbeat,ldirectord, ipvsadm 負載調(diào)度模式, 直接路由,IP隧道 對java應(yīng)用池做負載均衡 設(shè)備需求 2臺服務(wù)器,千兆網(wǎng)絡(luò),至少512MB內(nèi)存,cpu不限,JVM集群解決方案,Terracotta 是企業(yè)級,開源,JVM級的集群解決方案.JVM級集群簡化了企業(yè)JAVA應(yīng)用,使得在多個JVM上的應(yīng)用,就如同在一個JVM上運行一樣. Terracotta擴展了java 的內(nèi)存模型,包括了虛擬機的集群,運用無限量的堆,便得多個虛擬機之間能夠作用 用Terracotta的應(yīng)用集群的編程與開發(fā)單個應(yīng)用一樣,沒有針對集群的特定代碼. Terraco

8、tta 用字節(jié)碼的處理方式,這種技術(shù)是目前許多 面向方面的開發(fā)框架,如AspectJ ,AspectWerkz,Terracotta, JVM-level cluster,會話集群的性能,傳統(tǒng)應(yīng)用結(jié)構(gòu)的問題-瓶頸問題,Java應(yīng)用集群架構(gòu)Terracotta, JVM-level cluster,Scale-out,Java應(yīng)用集群功能Terracotta, JVM-level cluster,功能 堆級的復(fù)制-共享幾乎所有對象 ACID Replication - no new exceptions or error scenarios 中央存儲- 保持應(yīng)用的狀態(tài) 通訊集中-集中管理共享對象

9、的通訊,沒有多點通訊和裂腦產(chǎn)生 Virtual Memory - page in objects on demand Coordination - We have extended our support to wait / notify and other useful tools,App Server,Web App,JVM,DSO Libraries,Shared Objects,Terracotta Server Clustering the JVM,App Server,Web App,JVM,DSO Libraries,Shared Objects,App Server,Web A

10、pp,JVM,DSO Libraries,Shared Objects,集群中會話問題的解決方案對比,傳統(tǒng)集群方法與terracotta方法的對比結(jié)論,通過基于JVM集群,terracotta方法能夠?qū)崿F(xiàn)具有線性擴展和高性能的Http會話集群 Terracotta 方法的優(yōu)點: 線性擴展 明顯的減少總擁有成本TCO 高性能集群解決方案 不需要改變應(yīng)用程序, 網(wǎng)絡(luò)效率沒有序列化,只檢測變化的區(qū)域進行傳輸 只在需要的地方進行數(shù)據(jù)的復(fù)制,Terracotta 分布式共享對象DSO架構(gòu),DSO不需要特殊的技術(shù)要求,就能夠建立一個高可用的集群,并且對應(yīng)用來說是完全透明的.比如,緩存和j2ee集群要求所有

11、的對象是序列化的,而DSO處理這些對象就當(dāng)沒有這些需求.正確配置的DSO能夠認識和響應(yīng)應(yīng)用的計算狀態(tài)的變化。圖中,DSO處理應(yīng)用程序的執(zhí)行環(huán)境作為第1級緩存。它還提供了一個二級高速緩存,用于傳播的計算狀態(tài)的變化到所有其他節(jié)點,Hibernate 的解決方案GETTING MAXIMUM HIBERNATE PERFORMANCE WITH TERRACOTTA,今天,將對象數(shù)據(jù)映射成數(shù)據(jù)庫的關(guān)系型格式是目前最普遍無狀態(tài)應(yīng)用的應(yīng)用架構(gòu), 而Hibernate是最受歡迎的對象-關(guān)系映射方式。應(yīng)用這樣的設(shè)計,有兩個原因。首先,數(shù)據(jù)庫的擴展是已知的并且是可調(diào)的。第二,數(shù)據(jù)庫的可用性要比應(yīng)用服務(wù)器的可用

12、性更接近于5個9。 盡管這些原因,共享java應(yīng)用狀態(tài)的數(shù)據(jù)庫開發(fā)人員和應(yīng)用開發(fā)人員的負擔(dān)還是很高的。 雖然Hibernate減輕了開發(fā)者在開發(fā)數(shù)據(jù)庫接口上的工作量, Terracotta仍然降低了Hibernate對數(shù)據(jù)庫高可用和可擴展性的依賴, Terracotta 和Hibernate結(jié)合簡化了應(yīng)用的開發(fā)和極大的提高應(yīng)用程序的性能。這就是在某些方面降低總成本數(shù)量級的原因。,Hibernate的三種方案,Hibernate獨立的Hibernate應(yīng)用 Hibernate with the second level cache clustered by Terracotta for high

13、 availability,通過用Terracotta實現(xiàn)Hibernate的二級緩存 Hibernate with Hibernate-generated POJOs clustered by Terracotta in disconnected mode.通過用Terracotta實現(xiàn)獨立的帶有Hibernate生成系統(tǒng)的普通JAVA對象集群,Hibernate獨立的Hibernate應(yīng)用,如果我們的應(yīng)用操作要成為無狀態(tài)的,那么在每個請求開始的時候就要進行數(shù)據(jù)庫的查詢,當(dāng)應(yīng)用返回給用戶的時候,會產(chǎn)生大量的更新。在下面的有三個應(yīng)用服務(wù)器的例子中,工作流程上就會有6個JDBC的數(shù)據(jù)庫調(diào)用。,H

14、ibernate with the second level cache clustered by Terracotta for high availability,在這個案例中,JDBC的調(diào)用已經(jīng)從6個減到了4個。是因為有2個load是從cache得到,terracotta 實現(xiàn)了hibernate的內(nèi)部二級緩存集群,使得所有節(jié)點表現(xiàn)的和一個節(jié)點一樣。用terracotta,在擴展應(yīng)用節(jié)點的時候,始終保持一致。 因為緩存了一個,就等于緩存了所有,所以不管是數(shù)據(jù)庫用粘滯的負載均衡還是不用, Hibernates caches 將關(guān)閉轉(zhuǎn)移負載功能,Hibernate with Hibernate

15、-generated POJOs clustered by Terracotta in disconnected mode.,對數(shù)據(jù)庫的訪問已經(jīng)降為2個,前面三種方案的性能OPERATIONS THROUGHPUT,三種方案的商業(yè)價值對比,高峰時段5,000并發(fā) 10個應(yīng)用服務(wù)器 Oracle 10g 單8路CPU 70%數(shù)據(jù)庫利用率,傳統(tǒng)架構(gòu)挑戰(zhàn):高峰時段增加5,000并發(fā) 10個應(yīng)用服務(wù)器不夠,擴充到20 1個 Oracle 10g 8路CPU不夠,擴充到2個的RAC, 投資增加:120萬美元用于數(shù)據(jù)庫,30萬用于服務(wù)器,仍然用單個的8路CPU數(shù)據(jù)庫服務(wù)器 數(shù)據(jù)庫利用率下隆到30% 應(yīng)用服

16、務(wù)器仍然用10個節(jié)點 Terracotta企業(yè)版和相關(guān)硬件花費50萬美元 用Terracotta節(jié)省投資100萬美元,Terracotta 能做什么,1) 堆級的復(fù)制:集群時需要拷貝的對象在堆之間進行 2) 超大的虛擬堆:由于是JVM層次的集群,所以堆要比單個JVM大很多 3) 多種集群鎖語法:distributed wait/notify and synchronized 4) 運行實時監(jiān)控 5) 無需序列化實現(xiàn)集群 6) Find-Grained Changes:由于集群時,terracotta不要求序列化,所以對象拷貝可以細化到對象中的每一個字段,就是說在進行復(fù)的時候,當(dāng)對象發(fā)生變化的時

17、候,不需要整個對象進行拷貝,只需要拷貝發(fā)生變化的那個field。 HTTP Session Replication - Tomcat, Weblogic, Websphere,jboss,glassfish,Jetty, Geronimo Distributed Cache - from java.util.Hashmap to OSCache, we support it, Work/Manager Distributed Queries - Coordination is easy with Terracotta. We even have code to get you started

18、on the Terracotta Forge POJO Clustering/Spring integration- Everything from Spring Beans to java.util.HashMap Collaboration/Coordination - Use a queue, use distributed wait/notify, or even Cyclic Barrier (We love Cycle Barrier ) with Terracotta coordination across VMs is as easy as coordination acro

19、ss threads,Terracotta 能解決什么問題?,1) 如果運用了terracotta,我們現(xiàn)有的項目需要有哪些方面的修改? 由于terracotta運用了bytecode instrumentation的技術(shù),所以我們現(xiàn)有的項目基本上不需要做任何修改。Terracotta提供一個配置文件tc-config.xml,我們只需要在這個配置文件里配置一些必須參數(shù)就可以實現(xiàn)集群 2) 性能的變化,把terracotta集成到項目后性能是否能有明顯的提升? 3) Terracotta的擴展性。Terracotta是純java編寫的,源碼開源,可以自己修改源代碼進行擴展。 4) Terrac

20、otta相當(dāng)一個中央服務(wù)器,那會不會terracotta出現(xiàn)single-point的問題呢?terracotta server本身支持集群,Terracota 集群架構(gòu),Terracotta集群設(shè)備需求,Terracotta服務(wù)器至少2臺,實現(xiàn)主備高可用 配置建議: 雙路CPU,8G內(nèi)存,千兆網(wǎng)絡(luò). 應(yīng)用服務(wù)器至少1臺,隨著數(shù)量的增加,性能也會隨著線性增加. 配置建議: 雙路CPU,4G內(nèi)存,千兆網(wǎng)絡(luò),分布式文件存儲-hadoop-HDFS,目前,存儲超過1TB以上數(shù)據(jù)文件時,一般是采用DAS/NAS/SAN架構(gòu),此類架構(gòu)存儲幾十TB以下數(shù)據(jù)還可以承受,但成本很高。 而若要以PB為單位,目前

21、是無法做到的,或者成本異常高。由于互聯(lián)網(wǎng)的數(shù)據(jù)是海量的,一個大的網(wǎng)站的數(shù)據(jù)就可以達到并超過一個PB,因些傳統(tǒng)的DAS/NAS/SAN 方式是不不參滿足需要的。 HDFS是基于apache基金的Hadoop的核心分布式文件系統(tǒng),也是Google的GFS思想基礎(chǔ)上開發(fā)的開源系統(tǒng)。采用分布式存儲,多份拷貝的技術(shù)架構(gòu),只使用普通服務(wù)器加普通硬盤的方式。,Hadoop HDFS 架構(gòu),分布式存儲設(shè)備需求,元數(shù)據(jù)服務(wù)器,至少2臺,雙機冗余 文件副本服務(wù)器, 1臺大容量存儲服務(wù)器,開始時可以利用應(yīng)用服務(wù)器做副本存儲,規(guī)模擴大時再用專用的服務(wù)器做副本存儲.,數(shù)據(jù)庫集群,盡管Terracotta的應(yīng)用能極大減少

22、對數(shù)據(jù)庫的訪問量,但業(yè)務(wù)應(yīng)用的增加和數(shù)據(jù)量的增加使得我們?nèi)匀恍枰紤]數(shù)據(jù)庫系統(tǒng)的高可用性,可伸縮性,高性能,低成本架構(gòu)。 開源數(shù)據(jù)庫集群中間件 squeoia 很好的實現(xiàn)高可用,性能擴展,失敗恢復(fù),易管理等特點.,數(shù)據(jù)庫中間件架構(gòu),持續(xù)的數(shù)據(jù)可用CDA使用案例,使用數(shù)據(jù)復(fù)制來實現(xiàn)持續(xù)的數(shù)據(jù)可用 數(shù)據(jù)可用和業(yè)務(wù)的持續(xù) 工作負載和性能擴展 跨站點集群 異種數(shù)據(jù)傳輸 實時數(shù)據(jù)倉庫 升級和牽移的零停機時間,數(shù)據(jù)庫中間件架構(gòu)設(shè)備需求,數(shù)據(jù)庫中間件控制器 至少2臺,保證數(shù)據(jù)庫中件高可用 數(shù)據(jù)庫服務(wù)器 至少2臺,保證數(shù)據(jù)庫高可用,增加數(shù)量提高性能.,自動化維護管理-cfengine+SVN,實現(xiàn)應(yīng)用服務(wù)器集群的自動化安裝,配置,變更 實現(xiàn)分布式存儲集群Hadoop的自動化安裝,配置,變更 實現(xiàn)數(shù)據(jù)庫集群的自動化安裝,配置,變更. 設(shè)備需求 管理服務(wù)器1臺,千兆網(wǎng)絡(luò),分布式集群監(jiān)控系統(tǒng)ganglia,Ganglia 是一個可擴展的分布式監(jiān)控系統(tǒng),主要是監(jiān)控集群,網(wǎng)格等高性能計算集群.針對集群采用了分層設(shè)計. Ganglia監(jiān)控軟件主要是用來監(jiān)控系統(tǒng)性能的軟件,如:cpu 、me

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論