簡單認識zookeeper使用場景

? ? ? ?以前看zookeeper只知道是在分布式應(yīng)用程序環(huán)境中起到協(xié)調(diào)通知的作用,但一直都未在具體項目中應(yīng)用過。正好最近業(yè)務(wù)中有這樣的場景,就拿來實踐了一下。

? ? ? 業(yè)務(wù)場景:通過頁面將一些人工配置的數(shù)據(jù)保存下來,客戶端通過服務(wù)端暴露的restful接口來請求到這些數(shù)據(jù)。服務(wù)端大約20來個節(jié)點,當(dāng)時考慮通過將數(shù)據(jù)緩存到redis中,然后每個請求過來直接到redis機器上取數(shù)據(jù)。這些數(shù)據(jù)大部分時間不會有太大變化,但人工還有可能隨時變更,重新保存,而且客戶端過來的請求量很大,并且每次請求里面可能都會循環(huán)多次去連redis取??紤]到到redis中取雖然是ms級,但是對于大量請求來說開辟連接、網(wǎng)絡(luò)io對性能來說也是一筆不小的開銷。

? ? ? ?考慮使用zk:如果我將這些不是太經(jīng)常變更的數(shù)據(jù)直接放進本機的內(nèi)存對象里面,取的時候讀本機內(nèi)存,那樣響應(yīng)速度將大大提升。但是節(jié)點不同,對象也不同,如何保證數(shù)據(jù)一致。此時可以考慮到zk的監(jiān)聽機制。利用內(nèi)存對象 、redis、zk實現(xiàn)不同節(jié)點數(shù)據(jù)同步。保存數(shù)據(jù)時候可以存入redis中,同時創(chuàng)建一個zk臨時節(jié)點并塞入當(dāng)前時間戳數(shù)據(jù)。監(jiān)聽端,創(chuàng)建zk監(jiān)聽機制,當(dāng)需要人工重新更改配置數(shù)據(jù)時候,將會引起zk的節(jié)點發(fā)生變化,此時zk及時監(jiān)聽到通知各節(jié)點將redis中最新數(shù)據(jù)存入各個節(jié)點對象中,這樣就能保證數(shù)據(jù)是最新的而且一致性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文主要從應(yīng)用的角度對ZooKeeper做了淺析,試圖闡明ZooKeeper是什么、主要應(yīng)用場景有哪些、常用場景可...
    菜鳥小玄閱讀 3,476評論 0 6
  • 轉(zhuǎn)載地址:http://gnucto.blog.51cto.com/3391516/998509 Redis與Me...
    Ddaidai閱讀 21,547評論 0 82
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 戀愛,是一個很復(fù)雜的事情。不,準(zhǔn)確地說應(yīng)該是一個看似特別簡單實則極其復(fù)雜的事情。你永遠不會知道你在遇到屬于你的那個...
    吃土橙閱讀 433評論 8 1
  • 那年,他高一。他還不太適應(yīng)高中的生活,成績持續(xù)下落,直到掉到30多名。為了反追,他犧牲了晚上去食堂吃飯的時間,自...
    河川的貓閱讀 682評論 0 10

友情鏈接更多精彩內(nèi)容