欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

Nacos簡(jiǎn)介—2.Nacos的原理簡(jiǎn)介

大綱

1.Nacos集群模式的數(shù)據(jù)寫入存儲(chǔ)與讀取問題

2.基于Distro協(xié)議在啟動(dòng)后的運(yùn)行規(guī)則

3.基于Distro協(xié)議在處理服務(wù)實(shí)例注冊(cè)時(shí)的寫路由

4.由于寫路由造成的數(shù)據(jù)分片以及隨機(jī)讀問題

5.寫路由 + 數(shù)據(jù)分區(qū) + 讀路由的CP方案分析

6.基于Distro協(xié)議的定時(shí)同步機(jī)制

7.基于Distro協(xié)議的心跳校驗(yàn)下的數(shù)據(jù)同步補(bǔ)償機(jī)制

8.基于Raft協(xié)議實(shí)現(xiàn)的弱CP模式

9.Nacos集群模式下的lookup尋址機(jī)制

1.Nacos集群模式的數(shù)據(jù)寫入存儲(chǔ)與讀取問題

使用Nacos進(jìn)行服務(wù)注冊(cè)時(shí),需要解決如下問題:

一.應(yīng)該找集群里的哪個(gè)節(jié)點(diǎn)來發(fā)起服務(wù)注冊(cè)?

二.服務(wù)實(shí)例數(shù)據(jù)應(yīng)該存儲(chǔ)在集群的哪個(gè)節(jié)點(diǎn)?

三.應(yīng)該找集群里的哪個(gè)節(jié)點(diǎn)來發(fā)起服務(wù)發(fā)現(xiàn)?

2.基于Distro協(xié)議在啟動(dòng)后的運(yùn)行規(guī)則

(1)Nacos集群?jiǎn)?dòng)后會(huì)按如下規(guī)則運(yùn)行

(2)Distro協(xié)議 + 定時(shí)數(shù)據(jù)同步與AP + 心跳檢驗(yàn)與網(wǎng)絡(luò)分區(qū)

(1)Nacos集群?jiǎn)?dòng)后會(huì)按如下規(guī)則運(yùn)行

一.Nacos集群的每個(gè)節(jié)點(diǎn)都可以處理寫請(qǐng)求

Nacos集群節(jié)點(diǎn)收到寫請(qǐng)求后:首先根據(jù)要注冊(cè)的服務(wù)實(shí)例的IP:端口 + 路由算法,計(jì)算出所屬集群節(jié)點(diǎn)。然后把服務(wù)實(shí)例注冊(cè)請(qǐng)求轉(zhuǎn)發(fā)到負(fù)責(zé)該服務(wù)實(shí)例數(shù)據(jù)的集群節(jié)點(diǎn)中。接著負(fù)責(zé)該服務(wù)實(shí)例數(shù)據(jù)的集群節(jié)點(diǎn)就會(huì)解析請(qǐng)求,把數(shù)據(jù)存儲(chǔ)到內(nèi)存里。同時(shí)會(huì)定期執(zhí)行同步任務(wù),把本節(jié)點(diǎn)負(fù)責(zé)的數(shù)據(jù)同步到其他節(jié)點(diǎn)。最終每個(gè)節(jié)點(diǎn)都會(huì)存儲(chǔ)全量的服務(wù)實(shí)例數(shù)據(jù)。

二.新加入Nacos集群的節(jié)點(diǎn)會(huì)拉取全量數(shù)據(jù)

新加入Nacos集群的節(jié)點(diǎn)會(huì)輪詢Nacos集群的所有節(jié)點(diǎn),然后發(fā)送請(qǐng)求出去拉取各節(jié)點(diǎn)的數(shù)據(jù),所以Nacos集群的每個(gè)節(jié)點(diǎn)上都會(huì)有所有已注冊(cè)的服務(wù)實(shí)例的數(shù)據(jù)。

三.每個(gè)節(jié)點(diǎn)都會(huì)定期發(fā)送心跳給其他節(jié)點(diǎn)

Nacos集群的節(jié)點(diǎn)通過心跳請(qǐng)求進(jìn)行數(shù)據(jù)校驗(yàn),主要是交換數(shù)據(jù)的校驗(yàn)值。如果發(fā)現(xiàn)其他節(jié)點(diǎn)上的數(shù)據(jù)與自己的不一致,就會(huì)全量拉取數(shù)據(jù)進(jìn)行補(bǔ)齊。

四.Nacos集群的每個(gè)節(jié)點(diǎn)都可以處理讀請(qǐng)求

因?yàn)槊總€(gè)節(jié)點(diǎn)都有全量數(shù)據(jù),所以每個(gè)節(jié)點(diǎn)都可以處理讀請(qǐng)求。

(2)Distro協(xié)議 + 定時(shí)數(shù)據(jù)同步與AP + 心跳檢驗(yàn)與網(wǎng)絡(luò)分區(qū)

Distro協(xié)議兼顧了CAP中的AP。在這個(gè)協(xié)議下,所有節(jié)點(diǎn)通過定期數(shù)據(jù)同步 + 心跳校驗(yàn)實(shí)現(xiàn)數(shù)據(jù)最終一致。這個(gè)協(xié)議能讓每個(gè)節(jié)點(diǎn)都有全量數(shù)據(jù)。

如果出現(xiàn)某節(jié)點(diǎn)宕機(jī),不影響集群可用性。如果出現(xiàn)網(wǎng)絡(luò)分區(qū),同樣不影響集群可用性。因?yàn)椴煌木W(wǎng)絡(luò)分區(qū)只會(huì)讀寫分區(qū)中的Nacos節(jié)點(diǎn),此時(shí)只是沒辦法同步數(shù)據(jù)而已。雖然數(shù)據(jù)會(huì)不一致,但一旦分區(qū)恢復(fù)后,心跳校驗(yàn)機(jī)制運(yùn)作起來,數(shù)據(jù)會(huì)自動(dòng)補(bǔ)齊。

3.基于Distro協(xié)議在處理服務(wù)實(shí)例注冊(cè)時(shí)的寫路由

首先,服務(wù)實(shí)例會(huì)隨機(jī)選擇Nacos集群中的一個(gè)節(jié)點(diǎn)發(fā)起注冊(cè)請(qǐng)求。

然后,Nacos集群節(jié)點(diǎn)收到寫請(qǐng)求后:會(huì)根據(jù)要注冊(cè)的服務(wù)實(shí)例的IP:端口 + 路由算法,計(jì)算出所屬的集群節(jié)點(diǎn)。

接著,把服務(wù)實(shí)例注冊(cè)請(qǐng)求轉(zhuǎn)發(fā)到負(fù)責(zé)該服務(wù)實(shí)例數(shù)據(jù)的集群節(jié)點(diǎn)中。負(fù)責(zé)該服務(wù)實(shí)例數(shù)據(jù)的節(jié)點(diǎn)會(huì)解析請(qǐng)求,緩存服務(wù)實(shí)例數(shù)據(jù)到內(nèi)存中。

4.由于寫路由造成的數(shù)據(jù)分片以及隨機(jī)讀問題

由于Nacos集群節(jié)點(diǎn)收到寫請(qǐng)求后:會(huì)根據(jù)要注冊(cè)的服務(wù)實(shí)例的IP:端口 + 路由算法,計(jì)算出所屬的集群節(jié)點(diǎn)。所以會(huì)導(dǎo)致數(shù)據(jù)分片,即每個(gè)節(jié)點(diǎn)僅負(fù)責(zé)管理一部分的服務(wù)實(shí)例數(shù)據(jù)。

服務(wù)實(shí)例進(jìn)行服務(wù)發(fā)現(xiàn)時(shí),只能隨機(jī)選擇一個(gè)Nacos節(jié)點(diǎn)來讀取數(shù)據(jù)。對(duì)Nacos集群節(jié)點(diǎn)進(jìn)行隨機(jī)讀的時(shí)候,由于每個(gè)節(jié)點(diǎn)只負(fù)責(zé)處理部分?jǐn)?shù)據(jù),所以可能出現(xiàn)讀取不到剛向集群注冊(cè)的數(shù)據(jù)的隨機(jī)讀問題。

5.寫路由 + 數(shù)據(jù)分區(qū) + 讀路由的CP方案分析

在數(shù)據(jù)分區(qū) + 隨機(jī)讀的情況下,此時(shí)為了讀取到數(shù)據(jù),有兩種解決方案。

方案一:讓隨機(jī)選擇的節(jié)點(diǎn)重新進(jìn)行讀路由

方案二:讓隨機(jī)選擇的節(jié)點(diǎn)也擁有全部數(shù)據(jù)

如果采用方案一,也就是寫路由 + 數(shù)據(jù)分片 + 讀路由的架構(gòu)設(shè)計(jì)。那么讀寫某個(gè)服務(wù)實(shí)例的數(shù)據(jù),只能由Nacos集群中的其中一個(gè)節(jié)點(diǎn)處理。如果節(jié)點(diǎn)宕機(jī),那么對(duì)應(yīng)的該服務(wù)實(shí)例數(shù)據(jù)就不可用。雖然該節(jié)點(diǎn)的數(shù)據(jù)不可用,但也是對(duì)所有用戶都不可用,視圖是一致的。視圖是一致的,說明要么都能讀到數(shù)據(jù),要么都讀不到數(shù)據(jù)。所以這種方案會(huì)存在可用性的問題,但優(yōu)點(diǎn)是數(shù)據(jù)是強(qiáng)一致的。也就是犧牲了CAP中的A,沒有了可用性,但保證了CP。

Nacos的Distro協(xié)議則使用了方案二。某個(gè)節(jié)點(diǎn)宕機(jī)后,該節(jié)點(diǎn)的數(shù)據(jù)不會(huì)全部不可用,可能會(huì)丟失部分?jǐn)?shù)據(jù)。也就是犧牲了CAP中的C,不能確保強(qiáng)一致性,但保證了AP。加上Distro協(xié)議的同步機(jī)制,可以讓各節(jié)點(diǎn)的數(shù)據(jù)實(shí)現(xiàn)最終一致性。

6.基于Distro協(xié)議的定時(shí)同步機(jī)制

Nacos集群中的每個(gè)節(jié)點(diǎn),雖然通過寫路由只寫入由自己處理的數(shù)據(jù),但同時(shí)也會(huì)定期執(zhí)行同步任務(wù),把本節(jié)點(diǎn)負(fù)責(zé)的數(shù)據(jù)同步到其他節(jié)點(diǎn),最終每個(gè)節(jié)點(diǎn)都會(huì)存儲(chǔ)全量的集群數(shù)據(jù)。

同步機(jī)制的存在保證了各節(jié)點(diǎn)的數(shù)據(jù)最終是一致的。

7.基于Distro協(xié)議的心跳校驗(yàn)下的數(shù)據(jù)同步補(bǔ)償機(jī)制

Nacos集群的節(jié)點(diǎn)通過心跳請(qǐng)求進(jìn)行數(shù)據(jù)校驗(yàn),主要是交換數(shù)據(jù)的校驗(yàn)值。如果發(fā)現(xiàn)其他節(jié)點(diǎn)上的數(shù)據(jù)與自己的不一致,就會(huì)全量拉取數(shù)據(jù)進(jìn)行補(bǔ)齊。

當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)時(shí),兩分區(qū)間的節(jié)點(diǎn)無法通信,此時(shí)自然就無法定時(shí)同步。但當(dāng)分區(qū)恢復(fù)后,節(jié)點(diǎn)之間通過心跳校驗(yàn)機(jī)制,數(shù)據(jù)可以快速自動(dòng)補(bǔ)齊。

8.基于Raft協(xié)議實(shí)現(xiàn)的弱CP模式

Nacos集群節(jié)點(diǎn)在啟動(dòng)時(shí)會(huì)選舉出一個(gè)Leader節(jié)點(diǎn),由Leader節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的寫入,并將數(shù)據(jù)同步給其他節(jié)點(diǎn)。Leader節(jié)點(diǎn)成功寫入數(shù)據(jù)的判斷依據(jù)是,過半節(jié)點(diǎn)都成功同步數(shù)據(jù)了。

9.Nacos集群模式下的lookup尋址機(jī)制

(1)單機(jī)尋址

(2)文件尋址

(3)地址服務(wù)器尋址

尋址就是Nacos各節(jié)點(diǎn)啟動(dòng)時(shí)如何找到其他節(jié)點(diǎn)。

(1)單機(jī)尋址

Nacos通過"-m standalone"模式來啟動(dòng)時(shí),會(huì)讀取自己本機(jī)的IP:端口,然后構(gòu)造對(duì)象放入到ServerMemberManager,它是專門負(fù)責(zé)管理所有節(jié)點(diǎn)信息的組件。

(2)文件尋址

cluster.conf里會(huì)寫入各個(gè)節(jié)點(diǎn)地址,節(jié)點(diǎn)啟動(dòng)時(shí)會(huì)讀取這個(gè)文件的內(nèi)容。同時(shí)節(jié)點(diǎn)會(huì)針對(duì)這個(gè)文件施加監(jiān)聽器,如果發(fā)現(xiàn)文件有變動(dòng),會(huì)進(jìn)行重新讀取。但是需要手工維護(hù)每個(gè)節(jié)點(diǎn)的cluster.conf文件,比較適合常規(guī)的、三節(jié)點(diǎn)、小規(guī)模的生產(chǎn)集群部署。

(3)地址服務(wù)器尋址

如果Nacos需要進(jìn)行大規(guī)模的集群部署,一般會(huì)采用這個(gè)方案。也就是使用一個(gè)Web服務(wù)器來維護(hù)一份cluster.conf,然后所有的Nacos都定時(shí)請(qǐng)求這個(gè)Web服務(wù)器獲取最新的地址列表。

詳細(xì)介紹后端技術(shù)棧的基礎(chǔ)內(nèi)容,包括但不限于:MySQL原理和優(yōu)化、Redis原理和應(yīng)用、JVM和G1原理和優(yōu)化、RocketMQ原理應(yīng)用及源碼、Kafka原理應(yīng)用及源碼、ElasticSearch原理應(yīng)用及源碼、JUC源碼、Netty源碼、zk源碼、Dubbo源碼、Spring源碼、Spring Boot源碼、SCA源碼、分布式鎖源碼、分布式事務(wù)、分庫分表和TiDB、大型商品系統(tǒng)、大型訂單系統(tǒng)等

全部評(píng)論

相關(guān)推薦

評(píng)論
點(diǎn)贊
2
分享

創(chuàng)作者周榜

更多
牛客網(wǎng)
??推髽I(yè)服務(wù)