「小程式JAVA實戰」zookeeper簡介(71)
如果一個應用在操作自身,自身的刪除和新增的方式很容易讓自己知道。如果是小程式後端一個程式,web端一個程式,他們需要進行通訊。如果彼此之間自動的一致呢。如果是資料庫可以通過共用一個數據庫的方式,如果是檔案就要用到一個工具zookeeper了。
方式多種多樣
-
Springboot開放介面,ssm呼叫其完成同步工作。
>這樣是有弊端的,耦合度比較高。
- 使用MQ訊息佇列,生產者(SSM)呼叫消費者(Springboot)
這個可以達到解耦的方式
- 使用Zookeeper,Springboot監聽並且下載
使用springboot 將我們小程式的後端,去監聽zookeeper的服務,如果我們ssm上傳一個檔案,就會像我們的zookeeper server,寫入一個物件寫入一個文字,springboot監聽到這個動作,就會下載,像這種就像是一個叢集,每個server就相當於一個節點,每個服務就會監聽到我們的節點,當有節點的寫入或者刪除,springboot就會執行操作。
###zookeeper 動物管理員
* 俗語入門
動物園裡面有很多的物件,大象,豬,蜜蜂(hadoop,pig,hive)搞過大資料的老鐵對著應該都有所瞭解。當然zookeeper在分散式系統中也起到了非常大的作用,不僅僅是在大資料,在java中用到了很多,配合一些中介軟體,比如solr都是可以相互進行配合的。
- 簡介
- 中介軟體,提供協調服務
- 作用於分散式系統,發揮其優勢,可以為大資料提供服務。
- 支援java,提供java和c語言的客戶端介面api
什麼是分散式系統
對外是隱形的,對外是顯形的,內部的開發老鐵肯定是知道有多少臺機器,對於使用者來講我們只點一個按鈕完成這個操作就可以了。
- 很多臺計算機組成一個整體,一個整體一致對外並且處理同一個請求
- 內部的每臺計算機都可以相互之間通訊(rest/rpc)
- 客戶端到服務端的一次請求到響應結束會經歷多臺計算機(我們在網購的時候,下個單子,可以經歷很多,訂單服務,商品服務,支付服務。一連串的服務完成下單的所有流程,組成的整體的分散式系統)
zookeeper的常用java客戶端
-
原生api
使用起來相對麻煩,不是很方便。
超時重連,不支援自動,需要手動操作。
watch註冊一次後會失效,只能註冊一次,監聽一次。
不支援遞建立節點
- zkclient
國外的IT高手合作開發的,只不過相對來說維護的頻率不是很高,已經很久不維護了。使用的人比較少
- Apache curator
非常好用的java客戶端。
Apache的開源專案
解決watcher的註冊一次就失效的問題
Api更加簡單方便
提供更多提供方案並且實現簡單:比如分散式鎖。
提供常用的zookeeper工具類
程式設計風格更爽,函式式的程式設計
- zkclient
Apache curator如何建立的客戶端
- 建立重試策略 – retryPolicy
-
建立客戶端 – client
-
初始化客戶端
PS:下次通過程式碼的形式來說下,瞭解下如何建立客戶端
>>原創文章,歡迎轉載。轉載請註明:轉載自,謝謝!>>原文連結地址:上一篇:下一篇: