原文地址http://www.theserverside.com/articles/article.tss?l=J2EEClustering .
此文章寫的非常通俗易懂,用詞簡單,建議閱讀一下,就是有點長.
相關(guān)術(shù)語
Scalability
可度量
High Availability
高可用性
Load balancing
負(fù)載均衡
Fault Tolerance
錯誤冗余
Failover
崩潰挽回?
Idempotent methods
等冪函數(shù)? 意思就是函數(shù)本身也是從集群中獲取一個節(jié)點來執(zhí)行的函數(shù)...(咳,這么別扭)
HTTPSession 集群實現(xiàn)
- Database persistence approach 數(shù)據(jù)庫保存
- Memory replication approach 內(nèi)存保存
- Tomcat’s approach :Multi-servers replication 多服務(wù)器復(fù)制:互相復(fù)制
- Weblogic, Jboss and WebSphere’s approach-- paired servers replication 結(jié)對復(fù)制
- IBM’s Approach -- centralized state server 中心服務(wù)器
- Sun’s approach – special Database 特殊數(shù)據(jù)庫復(fù)制(內(nèi)存)
JNDI 集群實現(xiàn)
- Shared global JNDI Tree 共享JNDI樹
- Independent JNDI 獨立的JNDI
- Centralized JNDI 中心服務(wù)器JNDI
有些Application支持多個地址用逗號分割
EJB集群實現(xiàn)
(略過...)
JMS和數(shù)據(jù)庫連接的集群支持
很多不支持...
Myths about J2EE clustering J2EE集群神話
- Failover can avoid errors completely. -- Negative FailOver能完全避免錯誤 --并非如此
執(zhí)行到一半發(fā)生錯誤是很難避免的,除非調(diào)用的是"Idempotent methods"
不過我覺得可以不考慮這個問題?
- Stand-alone applications can be transmit transparently to a cluster structure. -- Negative! 單機程序能夠透明地發(fā)布到集群構(gòu)架上 --并非如此
- Http Session 限制
保存在session里面的數(shù)據(jù)必須支持序列化
避免保存大的對象
內(nèi)存復(fù)制集群的必須防止交叉引用
setAttribute方法的調(diào)用
- Cache
很多時候緩存不起效果
- Static variables
類似單態(tài)的使用會造成問題,如果沒有考慮集群的話
- External resource
外部資源例如上傳文件如果保存在某個服務(wù)器的磁盤上會有問題.這時候要保存在數(shù)據(jù)庫里或者使用磁盤陣列等解決方式.
- Special Services
例如定時的服務(wù),會造成每臺服務(wù)器都去調(diào)用的可能,所以要考慮.
- Distributed structure is more flexible than collocated one? -- Maybe Not! 分布式結(jié)構(gòu)比集中配置靈活 --可能不是
分析了Web容器和EJB容器的關(guān)系.
Conclusion 結(jié)論
集群并不是那么簡單,從項目的開始就要考慮相關(guān)問題.
|
除經(jīng)特別注明外,本文章版權(quán)歸JScud Develop團隊或其作者所有. 署名,非商業(yè)用途,保持一致. scud(飛云小俠) JScud Develop |