搭建父工程(聚合工程)
用idea搭建一個(gè)Spring Cloud項(xiàng)目
CAP定理
1998年,加州大學(xué)的計(jì)算機(jī)科學(xué)家 Eric Brewer 提出忆某,分布式系統(tǒng)有三個(gè)指標(biāo):
- Consistency(一致性)
- Availability(可用性)
- Partition tolerance (分區(qū)容錯(cuò)性)
Eric Brewer 說(shuō)点待,分布式系統(tǒng)無(wú)法同時(shí)滿足這三個(gè)指標(biāo)。
這個(gè)結(jié)論就叫做 CAP 定理弃舒。
- Consistency(一致性):用戶訪問(wèn)分布式系統(tǒng)中的任意節(jié)點(diǎn)癞埠,得到的數(shù)據(jù)必須一致
- Availability (可用性):用戶訪問(wèn)集群中的任意健康節(jié)點(diǎn)状原,必須能得到響應(yīng),而不是超時(shí)或拒絕
- Partition(分區(qū)):因?yàn)榫W(wǎng)絡(luò)故障或其它原因?qū)е路植际较到y(tǒng)中的部分節(jié)點(diǎn)與其它節(jié)點(diǎn)失去連接苗踪,形成獨(dú)立分區(qū)颠区。Tolerance(容錯(cuò)):在集群出現(xiàn)分區(qū)時(shí),整個(gè)系統(tǒng)也要持續(xù)對(duì)外提供服務(wù)
總結(jié):
- 分布式系統(tǒng)節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接通铲,一定會(huì)出現(xiàn)分區(qū)問(wèn)題(P)
- 當(dāng)分區(qū)出現(xiàn)時(shí)毕莱,系統(tǒng)的一致性(C)和可用性(A)就無(wú)法同時(shí)滿足
BASE理論
BASE理論是對(duì)CAP的一種解決思路,包含三個(gè)思想:
- Basically Available (基本可用):分布式系統(tǒng)在出現(xiàn)故障時(shí)颅夺,允許損失部分可用性朋截,即保證核心可用。
- Soft State(軟狀態(tài)):在一定時(shí)間內(nèi)吧黄,允許出現(xiàn)中間狀態(tài)部服,比如臨時(shí)的不一致?tīng)顟B(tài)。
- Eventually Consistent(最終一致性):雖然無(wú)法保證強(qiáng)一致性拗慨,但是在軟狀態(tài)結(jié)束后廓八,最終達(dá)到數(shù)據(jù)一致。
而分布式事務(wù)最大的問(wèn)題是各個(gè)子事務(wù)的一致性問(wèn)題赵抢,因此可以借鑒CAP定理和BASE理論:
- AP模式:各子事務(wù)分別執(zhí)行和提交剧蹂,允許出現(xiàn)結(jié)果不一致,然后采用彌補(bǔ)措施恢復(fù)數(shù)據(jù)即可烦却,實(shí)現(xiàn)最終一致国夜。
- CP模式:各個(gè)子事務(wù)執(zhí)行后互相等待,同時(shí)提交短绸,同時(shí)回滾,達(dá)成強(qiáng)一致筹裕。但事務(wù)等待過(guò)程中醋闭,處于弱可用狀態(tài)。
簡(jiǎn)述BASE理論三個(gè)思想:
- 基本可用
- 軟狀態(tài)
- 最終一致
解決分布式事務(wù)的思想和模型:
- 全局事務(wù):整個(gè)分布式事務(wù)
- 分支事務(wù):分布式事務(wù)中包含的每個(gè)子系統(tǒng)的事務(wù)
- 最終一致思想:各分支事務(wù)分別執(zhí)行并提交朝卒,如果有不一致的情況证逻,再想辦法恢復(fù)數(shù)據(jù)
- 強(qiáng)一致思想:各分支事務(wù)執(zhí)行完業(yè)務(wù)不要提交,等待彼此結(jié)果抗斤。而后統(tǒng)一提交或回滾