国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
集群中幾種session同步解決方案的比較

在集群中session安全和同步是個(gè)最大的問題,下面是我收集到的幾種session同步的方案,希望能通過分析其各自的優(yōu)劣找出其適應(yīng)的場景。

1. 客戶端cookie加密

   這是我以前采用的方式,簡單,高效。比較好的方法是自己采用cookie機(jī)制來實(shí)現(xiàn)一個(gè)session,在應(yīng)用中使用此session實(shí)現(xiàn)。

   問題:session中數(shù)據(jù)不能太多,最好只有個(gè)用戶id。

   參考實(shí)現(xiàn):http://rollerweblogger.org/

2. application server的session復(fù)制

   可能大部分應(yīng)用服務(wù)器都提供了session復(fù)制的功能來實(shí)現(xiàn)集群,tomcat,jboss,was都提供了這樣的功能。

   問題:

性能隨著服務(wù)器增加急劇下降,而且容易引起廣播風(fēng)暴;

session數(shù)據(jù)需要序列化,影響性能。

如何序列化,可以參考 對(duì)象的序列化和反序列化.

參考資料:

Tomcat 5集群中的SESSION復(fù)制一

Tomcat 5集群中的SESSION復(fù)制二

應(yīng)用服務(wù)器-JBoss 4.0.2集群指南

3. 使用數(shù)據(jù)庫保存session

   使用數(shù)據(jù)庫來保存session,就算服務(wù)器宕機(jī)了也沒事,session照樣在。

   問題:

程序需要定制; 

每次請(qǐng)求都進(jìn)行數(shù)據(jù)庫讀寫開銷不小(使用內(nèi)存數(shù)據(jù)庫可以提高性能,宕機(jī)就會(huì)丟失數(shù)據(jù)??晒┻x擇的內(nèi)存數(shù)據(jù)庫有BerkeleyDB,Mysql的內(nèi)存表);

數(shù)據(jù)庫是一個(gè)單點(diǎn),當(dāng)然可以做數(shù)據(jù)庫的ha來解決這個(gè)問題。

4. 使用共享存儲(chǔ)來保存session

   和數(shù)據(jù)庫類似,就算服務(wù)器宕機(jī)了也沒事,session照樣在。使用nfs或windows文件共享都可以,或者專用的共享存儲(chǔ)設(shè)備。

   問題:

程序需要定制; 

頻繁的進(jìn)行數(shù)據(jù)的序列化和反序列化,性能是否有影響;

共享存儲(chǔ)是一個(gè)單點(diǎn),這個(gè)可以通過raid來解決。

5. 使用memcached來保存session

   這種方式跟數(shù)據(jù)庫類似,不過因?yàn)槭莾?nèi)存存取的,性能自然要比數(shù)據(jù)庫好多了。

   問題:

程序需要定制,增加了工作量;

存入memcached中的數(shù)據(jù)都需要序列化,效率較低;

          memcached服務(wù)器一死,所有session全丟。memchached能不能做HA? 我也不知道,網(wǎng)站上沒提。

   參考資料:

應(yīng)用memcached保存session會(huì)話信息

正確認(rèn)識(shí)memcached的緩存失效

擴(kuò)展Tomcat 6.x,使用memcached存放session信息

 

6. 使用terracotta來保存session

   跟memcached類似,但是數(shù)據(jù)不需要序列化,并且是Find-Grained Changes,性能更好。配置對(duì)原來的應(yīng)用完全透明,原有程序幾乎不用做任何修改。而且terracotta本身支持HA。

  問題:terracotta的HA本身進(jìn)行數(shù)據(jù)復(fù)制性能如何?

參考資料:

JVM-level clustering

Terracotta集群Tomcat實(shí)現(xiàn)Session同步

使用Terracotta和Tomcat建立ACTIVE-PASSIVE模式的集群

用Spring Web Flow和Terracotta搭建Web應(yīng)用

Terracotta實(shí)戰(zhàn)示例——集群RIFE

Terracotta近況:轉(zhuǎn)向開源,接受度,Hibernate支持

 

附:terracotta介紹

OpenTerracotta is an enterprise-class, open-source, JVM-level clusteringsolution. JVM-level clustering simplifies enterprise Java by enablingapplications to be deployed on multiple JVMs, yet interact with eachother as if they were running on the same JVM. Terracotta extends theJava Memory Model of a single JVM to include a cluster of virtualmachines such that threads on one virtual machine can interact withthreads on another virtual machine as if they were all on the samevirtual machine with an unlimited amount of heap.

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【轉(zhuǎn)】分布式環(huán)境下5種session處理策略(大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析 里面的方案)
使用memcached實(shí)現(xiàn)session遠(yuǎn)程分布式存儲(chǔ)
構(gòu)建可擴(kuò)展的Java EE應(yīng)用(二)
Terracotta in Action(1) - whitesock - JavaEye...
nginx服務(wù)器集群的問題及解決方式
利用Memcached Providers搭建Asp.net共享Session
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服