為什么不用zookeeper做注冊中心 在使用dubbo時,一般都結合zk(作為注冊中心)來使用。那為什么SpringCloud中使用Eureka,而不是zk呢?
我們來比較一下,在CAP理論中,zk更看重C和P,即一致性和分區容錯性。但Eureka更在意的是A和P,A為高可用。zk中有master和follower區別,當進入選舉模式時,就無法正常對外提供服務。但Eureka中,集群是對等的,地位是相同的,雖不能保證一致性,但至少可以提供注冊服務。 根據不同的業務場景,各有取舍吧。
Eureka只有一個8761的注冊中心,那么如何避免單點問題呢?
我們可以采用集群的方式來解決。 比如現在有三台機器:Server1、Server2和Server3.在高可用方案中,三台機器要兩兩注冊。比如S1要向S2、S3分別進行注冊,目前他無法實現注冊的傳遞性。 這樣一來,如果Server1宕機,我們還可以繼續從Server2和3中獲取服務。