原創(chuàng)文章,歡迎轉(zhuǎn)載夷狰。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì)岭皂,謝謝!
原文鏈接地址:「小程序JAVA實(shí)戰(zhàn)」zookeeper簡(jiǎn)介(71)
上一篇: 「小程序JAVA實(shí)戰(zhàn)」小程序的留言和評(píng)價(jià)功能(70)已是最新文章
如果一個(gè)應(yīng)用在操作自身沼头,自身的刪除和添加的方式很容易讓自己知道爷绘。如果是小程序后端一個(gè)程序书劝,web端一個(gè)程序,他們需要進(jìn)行通信土至。如果彼此之間自動(dòng)的一致呢购对。如果是數(shù)據(jù)庫(kù)可以通過(guò)共用一個(gè)數(shù)據(jù)庫(kù)的方式,如果是文件就要用到一個(gè)工具zookeeper了陶因。
方式多種多樣
- Springboot開(kāi)放接口骡苞,ssm調(diào)用其完成同步工作。
這樣是有弊端的楷扬,耦合度比較高解幽。
- 使用MQ消息隊(duì)列,生產(chǎn)者(SSM)調(diào)用消費(fèi)者(Springboot)
這個(gè)可以達(dá)到解耦的方式
- 使用Zookeeper毅否,Springboot監(jiān)聽(tīng)并且下載
使用springboot 將我們小程序的后端亚铁,去監(jiān)聽(tīng)zookeeper的服務(wù),如果我們ssm上傳一個(gè)文件螟加,就會(huì)像我們的zookeeper server徘溢,寫(xiě)入一個(gè)對(duì)象寫(xiě)入一個(gè)文本,springboot監(jiān)聽(tīng)到這個(gè)動(dòng)作捆探,就會(huì)下載然爆,像這種就像是一個(gè)集群,每個(gè)server就相當(dāng)于一個(gè)節(jié)點(diǎn)黍图,每個(gè)服務(wù)就會(huì)監(jiān)聽(tīng)到我們的節(jié)點(diǎn)曾雕,當(dāng)有節(jié)點(diǎn)的寫(xiě)入或者刪除,springboot就會(huì)執(zhí)行操作助被。
zookeeper 動(dòng)物管理員
- 俗語(yǔ)入門(mén)
動(dòng)物園里面有很多的對(duì)象剖张,大象,豬揩环,蜜蜂(hadoop搔弄,pig,hive)搞過(guò)大數(shù)據(jù)的老鐵對(duì)著應(yīng)該都有所了解丰滑。當(dāng)然zookeeper在分布式系統(tǒng)中也起到了非常大的作用顾犹,不僅僅是在大數(shù)據(jù),在java中用到了很多褒墨,配合一些中間件炫刷,比如solr都是可以相互進(jìn)行配合的。
- 簡(jiǎn)介
- 中間件郁妈,提供協(xié)調(diào)服務(wù)
- 作用于分布式系統(tǒng)浑玛,發(fā)揮其優(yōu)勢(shì),可以為大數(shù)據(jù)提供服務(wù)噩咪。
- 支持java顾彰,提供java和c語(yǔ)言的客戶端接口api
什么是分布式系統(tǒng)
對(duì)外是隱形的失晴,對(duì)外是顯形的,內(nèi)部的開(kāi)發(fā)老鐵肯定是知道有多少臺(tái)機(jī)器拘央,對(duì)于用戶來(lái)講我們只點(diǎn)一個(gè)按鈕完成這個(gè)操作就可以了。
- 很多臺(tái)計(jì)算機(jī)組成一個(gè)整體书在,一個(gè)整體一致對(duì)外并且處理同一個(gè)請(qǐng)求
- 內(nèi)部的每臺(tái)計(jì)算機(jī)都可以相互之間通信(rest/rpc)
- 客戶端到服務(wù)端的一次請(qǐng)求到響應(yīng)結(jié)束會(huì)經(jīng)歷多臺(tái)計(jì)算機(jī)(我們?cè)诰W(wǎng)購(gòu)的時(shí)候灰伟,下個(gè)單子,可以經(jīng)歷很多儒旬,訂單服務(wù)栏账,商品服務(wù),支付服務(wù)栈源。一連串的服務(wù)完成下單的所有流程挡爵,組成的整體的分布式系統(tǒng))
zookeeper的常用java客戶端
- 原生api
使用起來(lái)相對(duì)麻煩,不是很方便甚垦。
超時(shí)重連茶鹃,不支持自動(dòng),需要手動(dòng)操作艰亮。
watch注冊(cè)一次后會(huì)失效闭翩,只能注冊(cè)一次,監(jiān)聽(tīng)一次迄埃。
不支持遞創(chuàng)建節(jié)點(diǎn)
- zkclient
國(guó)外的IT高手合作開(kāi)發(fā)的疗韵,只不過(guò)相對(duì)來(lái)說(shuō)維護(hù)的頻率不是很高,已經(jīng)很久不維護(hù)了侄非。使用的人比較少
- Apache curator
非常好用的java客戶端蕉汪。
Apache的開(kāi)源項(xiàng)目
解決watcher的注冊(cè)一次就失效的問(wèn)題
Api更加簡(jiǎn)單方便
提供更多提供方案并且實(shí)現(xiàn)簡(jiǎn)單:比如分布式鎖。
提供常用的zookeeper工具類
編程風(fēng)格更爽逞怨,函數(shù)式的編程
Apache curator如何創(chuàng)建的客戶端
創(chuàng)建重試策略 - retryPolicy
創(chuàng)建客戶端 - client
初始化客戶端
PS:下次通過(guò)代碼的形式來(lái)說(shuō)下者疤,了解下如何創(chuàng)建客戶端