我們應(yīng)該不應(yīng)該用ZooKeeper?

最近一年多,跟ZooKeeper打了挺多交道,閱讀了一部分ZooKeeper的源代碼,也學(xué)習(xí)到了不少知識,包含Java面向?qū)ο笤O(shè)計(jì)、分布式一致性協(xié)議等等。ZooKeeper基于github和JIRA的開發(fā)流也讓我覺得挺驚艷的。從開源角度講,ZooKeeper的質(zhì)量可能尚可,而且我們也不應(yīng)該指望開源的項(xiàng)目能有多高質(zhì)量。如果目的是學(xué)習(xí)的話,ZooKeeper無疑是一個(gè)好的代碼庫,但是企業(yè)級應(yīng)用的話,ZooKeeper還是有很多問題。

  • Bug數(shù)量太多。具體可以參考ZooKeeper在JIRA上的bug列表。而且有相當(dāng)一部分bug非常致命,包括我提的這個(gè) bug,可能導(dǎo)致在機(jī)器掛掉后,選主無法成功!甚至3.4.X版本之前還有幾個(gè)很嚴(yán)重的一致性問題(要知道ZooKeeper的設(shè)計(jì)目的就是保證一致性的)。
  • 無法動(dòng)態(tài)配置集群大小。這個(gè)問題已經(jīng)持續(xù)很久了,雖然新的3.5版本據(jù)說添加了這個(gè)特性。但是3.5目前還處于beta版本,正式release不知道要到什么時(shí)候了,估計(jì)得到2019年了。
  • 業(yè)務(wù)級應(yīng)用,通常對高可靠的要求非常高,在極端條件下,數(shù)據(jù)都不能出錯(cuò)。例如硬盤空間滿、網(wǎng)絡(luò)閃斷、多網(wǎng)卡、機(jī)器重啟。這些環(huán)境下,ZooKeeper的測試覆蓋可能不足。例如硬盤空間滿后,ZooKeeper服務(wù)掛掉,并且重啟后不能恢復(fù)(非必現(xiàn))。多網(wǎng)卡是最近我提了一個(gè)patch后,才算能正常支持。
  • 整體而言,社區(qū)的ZooKeeper開發(fā)者,還是很勤奮的,基本上一直保持更新的節(jié)奏,但是還是讓人非常不放心。

該自己造輪子,還得自己造。

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

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

  • 一、ZooKeeper的背景 1.1 認(rèn)識ZooKeeper ZooKeeper---譯名為“動(dòng)物園管理員”。動(dòng)物...
    algernoon閱讀 9,331評論 1 106
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • 我曾在那寬窄巷子, 牽手一株老柳, 愿我柔美的十指, 與它緊緊相扣, 留住余下的時(shí)光, 守在巷的盡頭, 伴那少年的...
    天山木蘭閱讀 308評論 0 0
  • 經(jīng)過了將近30個(gè)小時(shí)旅途的我很快進(jìn)入了夢鄉(xiāng)。原本我還和我的商丘朋友商量兩個(gè)人輪番睡覺,以避免小偷的光顧??墒侨艘坏?..
    重生之路111閱讀 890評論 0 0

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