為什麼不使用ZooKeeper,為什麼不要把ZooKeeper用於服務發現

2022-11-07 00:45:30 字數 3575 閱讀 2406

1樓:森森綠了深深

zookeeper作為發現服務的問題;

zookeeper(注:zookeeper是著名hadoop的一個子專案,旨在解決大規模分 布式應用場景下,服務協調同步(coordinate service)的問題;

它可以為同在一個分散式系統中的其他服務提供:統一命名服務、配置管理、分散式鎖服務、叢集管理等功能)是個偉大的開源專案;

有相當大的社群來支援它的發展,而且在生產環境得到了廣泛的使用;但是用它來service發現服務解決方案則是個錯誤。

在分散式系統領域有個著名的 cap定理;

zookeeper是個cp的,即任何時刻對zookeeper的訪問請求能得到一致的資料結果,同時系統對網路分割具備容錯性;但是它不能保證每次服務請求的可用性但是別忘了,zookeeper是分散式協調服務,它的職責是保證資料在其管轄下的所有服務之間保持同步一致;

所以就不難理解為什麼不使用zookeeper。

2樓:酸奶

zookeeper(注:zookeeper是著名hadoop的一個子專案,旨在解決大規模分 布式應用場景下,服務協調同步(coordinate service)的問題,它可以為同在一個分散式系統中的其他服務提供:統一命名服務、配置管理、分散式鎖服務、叢集管理等功能)是個偉大的開源專案。

它很成熟,有相當大的社群來支援它的發展,而且在生產環境得到了廣泛的使用;但是用它來做service發現服務解決方案則是個錯誤。

在分散式系統領域有個著名的 cap定理(c- 資料一致性;a-服務可用性;p-服務對網路分割槽故障的容錯性,這三個特性在任何分散式系統中不能同時滿足,最多同時滿足兩個)。

因為對於service發現服務來說就算是返回了包含不實的資訊的結果也比什麼都不返回要好。

對於service發現服務而言,寧可返回某服務5分鐘之前在哪幾個伺服器上可用的資訊,也不能因為暫時的網路故障而找不到可用的伺服器,而不返回任何結果。

所以說,用zookeeper來做service發現服務是肯定錯誤的。因此不使用zookeeper。

為什麼不使用zookeeper

3樓:匿名使用者

在分散式系統領域有個著名的 cap定理(c- 資料一致性;a-服務可用性;p-服務對網路分割槽故障的容錯性,這三個特性在任何分散式系統中不能同時滿足,最多同時滿足兩個);zookeeper是個 cp的,即任何時刻對zookeeper的訪問請求能得到一致的資料結果,同時系統對網路分割具備容錯性;但是它不能保證每次服務請求的可用性(注:也就 是在極端環境下,zookeeper可能會丟棄一些請求,消費者程式需要重新請求才能獲得結果)。但是別忘了,zookeeper是分散式協調服務,它的 職責是保證資料(注:

配置資料,狀態資料)在其管轄下的所有服務之間保持同步、一致;所以就不難理解為什麼zookeeper被設計成cp而不是ap特性 的了,如果是ap的,那麼將會帶來恐怖的後果(注:zookeeper就像交叉路口的訊號燈一樣,你能想象在交通要道突然訊號燈失靈的情況嗎?)。

而且, 作為zookeeper的核心實現演算法 zab,就是解決了分散式系統下資料如何在多個服務之間保持同步問題的。

作為一個分散式協同服務,zookeeper非常好,但是對於service發現服務來說就不合適了;因為對於service發現服務來說就算是 返回了包含不實的資訊的結果也比什麼都不返回要好;再者,對於service發現服務而言,寧可返回某服務5分鐘之前在哪幾個伺服器上可用的資訊,也不能 因為暫時的網路故障而找不到可用的伺服器,而不返回任何結果。所以說,用zookeeper來做service發現服務是肯定錯誤的,如果你這麼用就慘 了!

為什麼不要把zookeeper用於服務發現

4樓:老百姓王大爺

when a.fieldsno <> b.fieldsno then '順序: ' + str(a.fieldsno) + '-->' + str(b.fieldsno)

when a.length <> b.length then '長度: ' + str(a.length) + '-->' + str(b.length)

when a.lensec <> b.lensec then '小數位: ' + str(a.lensec) + '-->' + str(b.lensec)

when a.allownull <> b.allownull then '允許空值:

' + str(a.allownull) + '-->' + str(b.allownull)

endfrom (select

tablename = b.name,

fieldname = a.name,

fieldsno = a.colid,

fieldtype = c.name,

length = a.length,

lensec = a.xscale,

allownull = a.isnullable

from intfsimsnew..syscolumns a

left join intfsimsnew..sysobjects b

on a.id = b.id

left join intfsimsnew..systypes c

on a.xusertype = c.xusertype

where b.xtype = 'u') a

hbase不使用zookeeper可以嗎

5樓:袖裡藏針

可以不使用,hbase有自帶的zookeeper。

建議:zookeeper和hbase最好還是分開,這樣維護起來方便一些,具體解釋到底要不要用hbase自帶的zookeeper

為什麼不使用zookeeper

6樓:

zookeeper作為發現服務的問題

zookeeper(注:zookeeper是著名hadoop的一個子專案,旨在解決大規模分

布式應用場景下,服務協調同步(coordinate

service)的問題;它可以為同在一個分散式系統中的其他服務提供:統一命名服務、配置管理、分散式鎖服務、叢集管理等功能)是個偉大的開源專案,它

很成熟,有相當大的社群來支援它的發展,而且在生產環境得到了廣泛的使用;但是用它來做service發現服務解決方案則是個錯誤。

在分散式系統領域有個著名的 cap定理(c-

資料一致性;a-服務可用性;p-服務對網路分割槽故障的容錯性,這三個特性在任何分散式系統中不能同時滿足,最多同時滿足兩個);zookeeper是個

cp的,即任何時刻對zookeeper的訪問請求能得到一致的資料結果,同時系統對網路分割具備容錯性;但是它不能保證每次服務請求的可用性(注:也就

是在極端環境下,zookeeper可能會丟棄一些請求,消費者程式需要重新請求才能獲得結果)。但是別忘了,zookeeper是分散式協調服務,它的

為什麼我的zookeeper執行不了? 30

7樓:華碩服務

可能程式不相容, 可以更換個版本試試。另外建議參考下程式對配置的要求。

或者右鍵需要執行的程式 選擇相容性 用相容模式執行試試。

為什麼ZStack不使用快照做備份,而使用災備做備份

災備bai不僅僅是資料備份。資料備du份是最自然 最基 zhi礎的需求。完成數dao據恢復後,用專戶需要恢復的是業務。在私有屬雲的場景下,業務恢復的資源粒度可以是一臺虛擬機器,甚至是一個叢集。通過在zstack 中引入混合雲災備,使用者可以將虛擬機器映象以及相關後設資料備份到公有云。即使本地資料丟失...

我們為什麼不使用七十士譯本

從一種文字翻譯成另一種文字,總會有遺漏,尤其是宗教的 的翻譯,即使是標榜有所謂的 聖靈 的啟示的譯文,也不會與原文一致,甚至會與原文有相當大的出入,其中一個很重要的原因是,任何一種翻譯本身就是一種詮釋,而 教歷史上號稱受了 聖靈 啟示的眾多 聖經 譯本也表明,所謂的 聖靈 啟示,不過是掛了一個 聖 ...

蘋果手機為什麼不使用高壽命大容量電池?

蘋果手機這樣的設計是出於手機重量厚薄等多方面需求,系統對後臺程式的優化使得蘋果手機並不會像安卓手機的費電,在不使用大容量電池時依舊可以保證手機使用和待機時長,所以蘋果一直不使用高容量電池。因為蘋果並不需要這樣的電池,蘋果無論是硬體還是在軟體方面,功耗控制方面都做的極強,使得整機在低功耗的前提下可以達...