谈谈分布式的场景及分布式事务的解决方案
一、解決java集群的session共享的解決方案:
1.客戶端cookie加密。(一般用于內(nèi)網(wǎng)中企業(yè)級(jí)的系統(tǒng)中,要求用戶瀏覽器端的cookie不能禁用,禁用的話,該方案會(huì)失效)。
2.集群中,各個(gè)應(yīng)用服務(wù)器提供了session復(fù)制的功能,tomcat和jboss都實(shí)現(xiàn)了這樣的功能。特點(diǎn):性能隨著服務(wù)器增加急劇下降,容易引起廣播風(fēng)暴;session數(shù)據(jù)需要序列化,影響性能。
3.session的持久化,使用數(shù)據(jù)庫來保存session。就算服務(wù)器宕機(jī)也沒事兒,數(shù)據(jù)庫中的session照樣存在。特點(diǎn):每次請(qǐng)求session都要讀寫數(shù)據(jù)庫,會(huì)帶來性能開銷。使用內(nèi)存數(shù)據(jù)庫,會(huì)提高性能,但是宕機(jī)會(huì)丟失數(shù)據(jù)(像支付寶的宕機(jī),有同城災(zāi)備、異地災(zāi)備)。
4.使用共享存儲(chǔ)來保存session。和數(shù)據(jù)庫類似,就算宕機(jī)了也沒有事兒。其實(shí)就是專門搞一臺(tái)服務(wù)器,全部對(duì)session落地。特點(diǎn):頻繁的進(jìn)行序列化和反序列化會(huì)影響性能。
5.使用memcached來保存session。本質(zhì)上是內(nèi)存數(shù)據(jù)庫的解決方案。特點(diǎn):存入memcached的數(shù)據(jù)需要序列化,效率極低。
二、分布式事務(wù)的解決方案:
Session 分布式方案
1.客戶端cookie加密。(一般用于內(nèi)網(wǎng)中企業(yè)級(jí)的系統(tǒng)中,要求用戶瀏覽器端的cookie不能禁用,禁用的話,該方案會(huì)失效)。
2.集群中,各個(gè)應(yīng)用服務(wù)器提供了session復(fù)制的功能,tomcat和jboss都實(shí)現(xiàn)了這樣的功能。特點(diǎn):性能隨著服務(wù)器增加急劇下降,容易引起廣播風(fēng)暴;session數(shù)據(jù)需要序列化,影響性能。
3.session的持久化,使用數(shù)據(jù)庫來保存session。就算服務(wù)器宕機(jī)也沒事兒,數(shù)據(jù)庫中的session照樣存在。特點(diǎn):每次請(qǐng)求session都要讀寫數(shù)據(jù)庫,會(huì)帶來性能開銷。使用內(nèi)存數(shù)據(jù)庫,會(huì)提高性能,但是宕機(jī)會(huì)丟失數(shù)據(jù)(像支付寶的宕機(jī),有同城災(zāi)備、異地災(zāi)備)。
4.使用共享存儲(chǔ)來保存session。和數(shù)據(jù)庫類似,就算宕機(jī)了也沒有事兒。其實(shí)就是專門搞一臺(tái)服務(wù)器,全部對(duì)session落地。特點(diǎn):頻繁的進(jìn)行序列化和反序列化會(huì)影響性能。
5.使用memcached來保存session。本質(zhì)上是內(nèi)存數(shù)據(jù)庫的解決方案。特點(diǎn):存入memcached的數(shù)據(jù)需要序列化,效率極低。
分布式鎖的場(chǎng)景
比如交易系統(tǒng)的金額修改,同一時(shí)間只能又一個(gè)人操作,比如秒殺場(chǎng)景,同一時(shí)間只能一個(gè)用戶搶到,比如火車站搶票等等
分布式鎖的實(shí)現(xiàn)方案
基于數(shù)據(jù)庫實(shí)現(xiàn)分布式鎖
基于緩存實(shí)現(xiàn)分布式鎖
基于Zookeeper實(shí)現(xiàn)分布式鎖
文章來自www.wityx.com,轉(zhuǎn)載請(qǐng)注明出處!原文地址http://www.wityx.com/post/1295_1_1.html
總結(jié)
以上是生活随笔為你收集整理的谈谈分布式的场景及分布式事务的解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: session共享怎么做的(分布式如何实
- 下一篇: Maven修改远程仓库配置