偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

CAP,能少了P?你知道嗎?

網(wǎng)絡(luò) 通信技術(shù)
由于網(wǎng)絡(luò)通信肯定會出現(xiàn)延遲丟包等問題,所以一般情況而言,分區(qū)容錯性是必須實(shí)現(xiàn)的。那么分布式系統(tǒng)會在一致性和可用性之間進(jìn)行權(quán)衡, 即C和A之間的選擇。

哈嘍,大家好,我是指北君。

大型網(wǎng)站幾乎都是分布式系統(tǒng),分布式系統(tǒng)也越來越重要,你也會發(fā)現(xiàn)周圍的許多事物已經(jīng)是分布式理論的最佳實(shí)踐了。

前言

分布式系統(tǒng)(distributed system)主要有三個指標(biāo) 一致性 (Consistency),可用性(Availability),分區(qū)容錯性(Partition tolerance)。

一致性是指更新操作成功后,所有節(jié)點(diǎn)在同一時間的數(shù)據(jù)完全一致。

可用性是指用戶訪問數(shù)據(jù)時,系統(tǒng)是否能正常響應(yīng)時間內(nèi)返回數(shù)據(jù)。

分區(qū)容錯性是指分布式系統(tǒng)在遇到某個節(jié)點(diǎn)或網(wǎng)絡(luò)分區(qū)故障時,仍然能夠?qū)ν馓峁M足一致性和可用性的服務(wù)。

CAP理論基本可以定義為,以上的三個指標(biāo)不能全部做到,即只能同時滿足CA, CP, AP。

1. 分區(qū)容錯性

分布式系統(tǒng)存在多個子系統(tǒng),每個子系統(tǒng)子網(wǎng)絡(luò)可以叫做區(qū)。各個節(jié)點(diǎn)之間的數(shù)據(jù)需要同步,子系統(tǒng)之間也需要通信。而分區(qū)容錯指的是某個節(jié)點(diǎn)出現(xiàn)故障,而整個服務(wù)不會受到大的影響。

若一個服務(wù)為單節(jié)點(diǎn)服務(wù),那么它可以說是滿足CA。

C表示任何時間點(diǎn)讀取的數(shù)據(jù)都是相同的,保證了一致性。

A表示只要有節(jié)點(diǎn)可以用,那么就可以提供服務(wù)

由于是單節(jié)點(diǎn)服務(wù),那么總是滿足CA的條件。

而在分布式系統(tǒng)中,大多時候,單節(jié)點(diǎn)出問題之后,我們是需要保障整個系統(tǒng)都是可以使用的。所以可以認(rèn)為CAP中的P總是需要成立的。

2. 一致性

一致性指的是分布式系統(tǒng)中所有節(jié)點(diǎn)在同一時間訪問時,返回數(shù)據(jù)完全一致。

從客戶端看,就是并發(fā)訪問時獲取數(shù)據(jù)的一致性。

服務(wù)端來看,就是數(shù)據(jù)節(jié)點(diǎn)之間的同步問題,即節(jié)點(diǎn)之間通過通信保持?jǐn)?shù)據(jù)的實(shí)時更新。

也有對一致性分成強(qiáng),弱以及最終一致性三類。

強(qiáng)一致性 要求數(shù)據(jù)更新后,對于其他節(jié)點(diǎn),必須立馬同步,并可見。

弱一致性 可以允許在數(shù)據(jù)更新后,部分節(jié)點(diǎn)不能訪問到最新的數(shù)據(jù)。

最終一致性 要求一段時間內(nèi)不能訪問最新數(shù)據(jù),但是一段時間后,分布式系統(tǒng)的所有數(shù)據(jù)需要統(tǒng)一

3. 可用性

相對來說,可用性比較容易理解,就是說任何時候,我們都可以從系統(tǒng)中獲取數(shù)據(jù)。系統(tǒng)可以提供正常的用戶服務(wù)。不會出現(xiàn)操作失敗,訪問超時等情況

總結(jié)

由于網(wǎng)絡(luò)通信肯定會出現(xiàn)延遲丟包等問題,所以一般情況而言,分區(qū)容錯性是必須實(shí)現(xiàn)的。那么分布式系統(tǒng)會在一致性和可用性之間進(jìn)行權(quán)衡, 即C和A之間的選擇。

CP without A  即要求一致性,每個請求都要求服務(wù)之間保持強(qiáng)一致性,分區(qū)則會使同步時間無限延長,如果網(wǎng)絡(luò)嚴(yán)重故障,消息丟失的情況下,用戶體驗(yàn)差,需要全部數(shù)據(jù)一致后才能提供訪問。比如Redis,Hbase 等就會要求數(shù)據(jù)一致性。Zookeeper 也是遵循CP原則,Leader節(jié)點(diǎn)掛掉之后,集群會進(jìn)行選舉,選舉期間整個Follower都是不可用的,需要同步數(shù)據(jù),所以需要Zookeeper恢復(fù)之后才可以使用。

AP without C 即要求高可用而且可以分區(qū),此時需要放棄一致性。分區(qū)節(jié)點(diǎn)出現(xiàn)故障時,為了滿足高可用,每個節(jié)點(diǎn)只能使用本地的數(shù)據(jù)提供訪問,避免服務(wù)中斷。這種典型的應(yīng)用就是搶票等情形,前一秒還有票,當(dāng)我輸入驗(yàn)證碼之后再點(diǎn)擊,票已售罄。心里的草泥馬無限增生。Eureka是采用AP原則,犧牲一致性,達(dá)到可用性的目的。

在一致性方面做出讓步之后,有些系統(tǒng)會實(shí)現(xiàn)最終一致性,盡力保證整個系統(tǒng)的數(shù)據(jù)一致性。

分布式系統(tǒng)的一致性和可用性之間的選擇沒有固定的搭配,而需要根據(jù)不同的業(yè)務(wù)場景進(jìn)行選擇,吹牛沒用,合適才行。

責(zé)任編輯:武曉燕 來源: Java技術(shù)指北
相關(guān)推薦

2024-04-30 09:02:48

2023-12-20 08:23:53

NIO組件非阻塞

2023-12-12 08:41:01

2023-04-26 10:21:04

2024-04-07 00:00:00

ESlint命令變量

2024-05-28 09:12:10

2023-05-05 09:04:41

文本數(shù)據(jù)ChatGPT

2019-12-12 09:23:29

Hello World操作系統(tǒng)函數(shù)庫

2024-07-30 08:22:47

API前端網(wǎng)關(guān)

2024-01-09 07:29:05

Argo代碼庫應(yīng)用程序

2024-04-07 00:00:03

2022-03-10 08:25:27

JavaScrip變量作用域

2022-05-27 08:55:15

工具自動化軟件

2020-10-28 11:20:55

vue項(xiàng)目技

2021-02-02 08:21:28

網(wǎng)絡(luò)面試通信

2024-10-10 16:53:53

守護(hù)線程編程

2021-12-08 07:31:40

Linux安全病毒

2024-08-20 08:29:55

2019-06-14 15:36:13

Windows 10安全PC

2017-10-16 13:45:04

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號