nutzboot 使用nacos替換zookeeper

先放一段從網上拷貝一段分佈式CAP理論的概念php

分佈式領域中存在CAP理論,且該理論已被證實:任何分佈式系統只可同時知足兩點,沒法三者兼顧。

  ①C:Consistency,一致性,數據一致更新,全部數據變更都是同步的。

  ②A:Availability,可用性,系統具備好的響應性能。

  ③P:Partition tolerance,分區容錯性。

所以,將精力浪費在思考如何設計能知足三者的完美系統上是愚鈍的,應該根據應用場景進行適當取捨。

(1)一致性

  一致性是指從系統外部讀取系統內部的數據時,在必定約束條件下相同,即數據變更在系統內部各節點應該是同步的。根據一致性的強弱程度不一樣,能夠將一致性級別分爲以下幾種:

  ①強一致性(strong consistency)。任什麼時候刻,任何用戶都能讀取到最近一次成功更新的數據。

  ②單調一致性(monotonic consistency)。任什麼時候刻,任何用戶一旦讀到某個數據在某次更新後的值,那麼就不會再讀到比這個值更舊的值。也就是說,可  獲取的數據順序必是單調遞增的。

  ③會話一致性(session consistency)。任何用戶在某次會話中,一旦讀到某個數據在某次更新後的值,那麼在本次會話中就不會再讀到比這值更舊的值   會話一致性是在單調一致性的基礎上進一步放鬆約束,只保證單個用戶單個會話內的單調性,在不一樣用戶或同一用戶不一樣會話間則沒有保障。示例case:php的  session概念。

  ④ 最終一致性(eventual consistency)。用戶只能讀到某次更新後的值,但系統保證數據將最終達到徹底一致的狀態,只是所需時間不能保障。

  ⑥弱一致性(weak consistency)。用戶沒法在肯定時間內讀到最新更新的值。

zookeeper 按照cp原則構建    nacos  按照ap原則構建 session

nutzboot 從zookeeper切換到nacos很容易 註冊中心該一下基本就好了(首先要安裝好nacos)app

dubbo.application.qos.enable=false
#dubbo.application.qos.port=22222
#dubbo.application.qos.accept.foreign.ip=false

#註冊中心
#dubbo.registry.address=zookeeper://ip1:2181?backup=ip2:2181,ip3:2181
dubbo.registry.address=nacos://ip1:8848?backup=ip2:8848,ip3:8848
 #端口 0爲自動端口 
dubbo.protocol.port=0 
dubbo.annotation.package=com.jxzg
dubbo.consumer.timeout=300000 
dubbo.consumer.retries=0

使用 nacos 須要引入的jar分佈式

<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo-registry-nacos</artifactId>
        <version>0.0.2</version>
</dependency>
<dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>0.8.0</version>
</dependency>
相關文章
相關標籤/搜索