新聞中心
Java-JAVA中都有哪幾種分布式實(shí)現(xiàn)方式,各有什么優(yōu)缺點(diǎn)
常用的有EJB、rmi、Web Service,還有Hessian、NIO等,它們的優(yōu)缺點(diǎn)比較比下:
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),魯山企業(yè)網(wǎng)站建設(shè),魯山品牌網(wǎng)站建設(shè),網(wǎng)站定制,魯山網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,魯山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1:EJB
優(yōu)勢(shì):可擴(kuò)展性好,安全性強(qiáng),支持分布式事務(wù)處理。
劣勢(shì):不能跨語(yǔ)言;配置相對(duì)復(fù)雜,不同J2EE容器之間很難做無(wú)縫遷移。
2:rmi
優(yōu)勢(shì):面向?qū)ο蟮倪h(yuǎn)程服務(wù)模型;基于TCP協(xié)議上的服務(wù),執(zhí)行速度快。
劣勢(shì):不能跨語(yǔ)言;每個(gè)遠(yuǎn)程對(duì)象都要綁定端口,不易維護(hù);不支持分布式事務(wù)JTA,RMI框架對(duì)于安全性、事務(wù)、可擴(kuò)展性的支持非常有限。
3: Web Service
優(yōu)勢(shì):跨語(yǔ)言、跨平臺(tái),SOA思想的實(shí)現(xiàn);安全性高;可以用來(lái)兼容legacy系統(tǒng)的功能
劣勢(shì):性能相對(duì)差,不支持兩階段事務(wù)
4:Hessian
優(yōu)勢(shì):使用簡(jiǎn)單,速度快;跨語(yǔ)言,跨平臺(tái);可以用來(lái)兼容legacy系統(tǒng)的功能。
劣勢(shì):安全性的支持不夠強(qiáng),不支持兩階段事務(wù)。
5:NIO(Mina/Netty)
優(yōu)點(diǎn):基于TCP通信,效率上高于HTTP的方式,非阻塞IO應(yīng)對(duì)高并發(fā)綽綽有余。根據(jù)具體的需要制定數(shù)據(jù)傳輸?shù)母袷剑蓴U(kuò)展性強(qiáng)。
缺點(diǎn):不能跨語(yǔ)言,無(wú)法穿透防火墻。
java怎么實(shí)現(xiàn)redis分布式鎖
一、使用分布式鎖要滿(mǎn)足的幾個(gè)條件:
系統(tǒng)是一個(gè)分布式系統(tǒng)(關(guān)鍵是分布式,單機(jī)的可以使用ReentrantLock或者synchronized代碼塊來(lái)實(shí)現(xiàn))
共享資源(各個(gè)系統(tǒng)訪(fǎng)問(wèn)同一個(gè)資源,資源的載體可能是傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)或者NoSQL)
同步訪(fǎng)問(wèn)(即有很多個(gè)進(jìn)程同事訪(fǎng)問(wèn)同一個(gè)共享資源。沒(méi)有同步訪(fǎng)問(wèn),誰(shuí)管你資源競(jìng)爭(zhēng)不競(jìng)爭(zhēng))
二、應(yīng)用的場(chǎng)景例子
管理后臺(tái)的部署架構(gòu)(多臺(tái)tomcat服務(wù)器+redis【多臺(tái)tomcat服務(wù)器訪(fǎng)問(wèn)一臺(tái)redis】+mysql【多臺(tái)tomcat服務(wù)器訪(fǎng)問(wèn)一臺(tái)服務(wù)器上的mysql】)就滿(mǎn)足使用分布式鎖的條件。多臺(tái)服務(wù)器要訪(fǎng)問(wèn)redis全局緩存的資源,如果不使用分布式鎖就會(huì)出現(xiàn)問(wèn)題。 看如下偽代碼:
long N=0L;
//N從redis獲取值
if(N5){
N++;
//N寫(xiě)回redis
}
復(fù)制代碼
java分布式開(kāi)發(fā)涉及到哪些技術(shù)
分布式是一種思想,范圍很廣,我得先知道它的誕生:
以前是一個(gè)數(shù)據(jù)庫(kù) 一個(gè)JSP 就可以做一個(gè)應(yīng)用了,后來(lái)隨著業(yè)務(wù)復(fù)雜,我們開(kāi)始分層,比如MVC之類(lèi)的,再后來(lái)我們的數(shù)據(jù)越來(lái)越多了,比如有上億的數(shù)據(jù),這個(gè)時(shí)候我們一個(gè)數(shù)據(jù)庫(kù)查詢(xún)太慢了,就開(kāi)始分庫(kù),這也算是分布式的一種。
還有比如我們的系統(tǒng)訪(fǎng)問(wèn)的人多了,比如雙11,上千萬(wàn)人同時(shí)訪(fǎng)問(wèn),我們的服務(wù)器(網(wǎng)站)支持不住了,這個(gè)時(shí)候就要部署到很多個(gè)服務(wù)器,每個(gè)服務(wù)器分?jǐn)傉?qǐng)求,這也是分布式
當(dāng)然隨著業(yè)務(wù)擴(kuò)大, 我們得分業(yè)務(wù)了,比如注冊(cè)登錄的,物流的,賣(mài)東西的 等等,不同的系統(tǒng),但是各個(gè)系統(tǒng)之間進(jìn)行協(xié)調(diào),也算分布式一種
以上都算是分布式的來(lái)源,主要是解決 壓力過(guò)大,大家協(xié)同工作的,那么這就涉及到一些常用的東西,或者像你說(shuō)的的技術(shù)
1.你用N個(gè)數(shù)據(jù)庫(kù)才放數(shù)據(jù),至少CRUD 方面就 麻煩些了,得用cobar,tddl,mysql-proxy 等協(xié)調(diào)
2.服務(wù)器:你部署了很多服務(wù)器,肯定得用個(gè)東西來(lái)分發(fā)請(qǐng)求這些吧,nginx,apache 等分發(fā)請(qǐng)求。
3.你公司有很多系統(tǒng),想很好的聯(lián)系在一起,光用接口不滿(mǎn)足了,得用一些JMS ,像activemq,ons 之類(lèi)的來(lái)協(xié)調(diào)吧
4.為了解決io問(wèn)題,得加緩存吧,那么緩存對(duì)應(yīng)上面的,也得分布式吧,就涉及memcache,redies 等等
上面就簡(jiǎn)單的介紹了下 分布式 的東西,還有很多啦,這是常用的一些,希望你能慢慢來(lái),不是一下子 能理解得
當(dāng)前題目:java分布式代碼 java分布式開(kāi)發(fā)
網(wǎng)頁(yè)路徑:http://fisionsoft.com.cn/article/docssod.html