當zk做爲dubbo的註冊中心時,是怎麼工做的?

Zookeeper做爲Dubbo的註冊中心時:服務提供者在初始化啓動時,會在Zookeeper下的Dubbo節點下的服務節點下的providers節點下的節點建立一個子節點並寫入URL,路徑相似爲 /dubbo/servicename/providers/ ,該路徑下的全部子節點均爲服務提供者。此時這些子節點都爲臨時節點,由於臨時節點的生命週期與客戶端會話相關,因此一旦提供者所在的機器出現故障致使提供者沒法提供服務,該臨時節點就會自動從Zookeeper刪除。此時由於服務者,註冊中心,消費者之間是長鏈接,註冊中心能感知服務者宕機,會告知消費者。而監控中心是Dubbo服務治理體系中重要的一部分,它須要知道全部的服務提供者和消費者的變化狀況 。因此它在啓動時會在服務節點上註冊一個watcher來監聽子節點變化,路徑爲 /dubbo/servicename/ ,因此它也能感知服務提供者的宕機。服務消費者的節點建立過程和提供者是同樣的,並且也是臨時結點。還有一個特性就是Zookeeper的節點結構設計,它以服務名和類型,也就是 /dubbo/servicename/類型 做爲節點路徑,符合Dubbo訂閱和通知的需求,保證了以服務爲粒度的變動通知,通知範圍易於控制。因此即便服務提供者和消費者頻繁變動,對Zookeeper的性能也不會形成多大影響。ide

相關文章
相關標籤/搜索