中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

富陽網(wǎng)站開發(fā)互聯(lián)網(wǎng)產(chǎn)品推廣

富陽網(wǎng)站開發(fā),互聯(lián)網(wǎng)產(chǎn)品推廣,做海報(bào)的網(wǎng)站推薦,wordpress 圖片下一頁本篇是在上一篇的基礎(chǔ)上,主要對(duì)分布式應(yīng)用架構(gòu)下的異步化機(jī)制和緩存技術(shù)進(jìn)行學(xué)習(xí),主要記錄和思考如下,供大家學(xué)習(xí)參考。大家知道原來傳統(tǒng)的單一WAR應(yīng)用中,由于所有數(shù)據(jù)都在同一個(gè)數(shù)據(jù)庫中,因此事務(wù)問題一般借助數(shù)據(jù)庫事…

? ? ? 本篇是在上一篇的基礎(chǔ)上,主要對(duì)分布式應(yīng)用架構(gòu)下的異步化機(jī)制和緩存技術(shù)進(jìn)行學(xué)習(xí),主要記錄和思考如下,供大家學(xué)習(xí)參考。大家知道原來傳統(tǒng)的單一WAR應(yīng)用中,由于所有數(shù)據(jù)都在同一個(gè)數(shù)據(jù)庫中,因此事務(wù)問題一般借助數(shù)據(jù)庫事務(wù)來解決,但是對(duì)于分布式架構(gòu)下的應(yīng)用系統(tǒng)來說,事務(wù)性問題就無法采用這種方式了,否則會(huì)出現(xiàn)數(shù)據(jù)庫單點(diǎn)問題,而且隨著應(yīng)用范圍和用戶量的增大,需要通過分布式異步化機(jī)制來解決系統(tǒng)處理性能和吞吐率下降等問題,以及各大平臺(tái)的直播促銷活動(dòng)帶來的瞬時(shí)流量等問題。本文介紹的柔性事務(wù)、兩階段/三階段提交、消息服務(wù)實(shí)現(xiàn)分布式事務(wù)處理、緩存技術(shù)支撐各種大促秒殺場景的穩(wěn)定、可靠的實(shí)施,那分布式架構(gòu)下的事務(wù)性問題該如何解決呢?如何借助緩存技術(shù)來支撐目前比較流行的秒殺活動(dòng)、抖音直播促銷活動(dòng)等。

一、分布式事務(wù)相關(guān)的幾個(gè)業(yè)務(wù)概念術(shù)語
1.事務(wù)和柔性事務(wù)

傳統(tǒng)的事務(wù)主要通過數(shù)據(jù)庫事務(wù)來保證業(yè)務(wù)的一致性,核心就是實(shí)現(xiàn)了ACID(原子性、一致性、隔離性和持久性),表示一個(gè)事務(wù)包含的所有邏輯處理都作用于數(shù)據(jù)庫上,只有這個(gè)事務(wù)的所有操作都成功,才會(huì)永久更新到數(shù)據(jù)庫,任何一個(gè)操作失敗,對(duì)數(shù)據(jù)庫修改都會(huì)失效。
柔性事務(wù)是在互聯(lián)網(wǎng)場景或分布式領(lǐng)域提出的,主要有兩個(gè)理論:CAP和BASE,CAP理論認(rèn)為一個(gè)分布式系統(tǒng)最多只能同時(shí)滿足一致性(Consistency)、可用性(Availability)和分區(qū)容錯(cuò)性(Partition tolerance)中的其中兩項(xiàng)。BASE是CAP理論的延伸,包括基本可用(Basically Available)、柔性狀態(tài)(Soft State)和最終一致性(Eventual Consistency),允許一定時(shí)間內(nèi)不同節(jié)點(diǎn)的數(shù)據(jù)不一致,但要求實(shí)現(xiàn)數(shù)據(jù)的最終一致機(jī)制,目的是為了實(shí)現(xiàn)較高的可用性,因此,高可用=系統(tǒng)構(gòu)建在多機(jī)=分布式系統(tǒng),高性能=分布式系統(tǒng)的副產(chǎn)品。

2.業(yè)務(wù)流程異步化

企業(yè)在做共享服務(wù)平臺(tái)建設(shè)過程中,各個(gè)業(yè)務(wù)平臺(tái)不斷建設(shè)沉淀并提供一些可共享給外部的專業(yè)服務(wù),這些服務(wù)組合起來就是一個(gè)或一類業(yè)務(wù)場景,但這些服務(wù)之間不可能都順序同步執(zhí)行,很多服務(wù)都是異步調(diào)用方式,而且同步執(zhí)行將導(dǎo)致調(diào)用時(shí)間比較長影響用戶體驗(yàn),同時(shí)長時(shí)間占用資源導(dǎo)致系統(tǒng)的吞吐量下降。因此就需要將業(yè)務(wù)流程中的各個(gè)業(yè)務(wù)邏輯通過異步化方式進(jìn)行并行處理,相當(dāng)于同步執(zhí)行的異步化處理,這樣既降低了處理時(shí)間,也提升了吞吐量和并發(fā)處理效率,目前主要通過消息隊(duì)列來實(shí)現(xiàn)。比如網(wǎng)上訂單交易業(yè)務(wù)流程包括訂單交易開始、庫存檢查、庫存預(yù)減、訂單生成、支付生成等,其中的訂單生成通過消息中間件服務(wù)可拆分為訂單日志、支付生成等。

3.數(shù)據(jù)庫事務(wù)異步化

核心就是將大事務(wù)拆分為小事務(wù),降低數(shù)據(jù)庫資源的長時(shí)間占用導(dǎo)致的數(shù)據(jù)庫瓶頸,最終提升系統(tǒng)的吞吐量和事務(wù)操作響應(yīng)時(shí)間。比如還款業(yè)務(wù)流程拆分為還款開始、還款計(jì)算、還款計(jì)劃分派、還款計(jì)劃處理和詳單處理等。

4.柔性事務(wù)中的兩階段提交(2PC)和三階段提交(3PC)

在分布式系統(tǒng)中,用戶在下單時(shí),需要同時(shí)創(chuàng)建訂單信息和減庫存的操作,然而創(chuàng)建訂單信息和減庫存是分布在不同服務(wù)器和不同數(shù)據(jù)庫中的,這種情況下只能借助分布式事務(wù)介入,保證所有操作,要么一起提交,要么一起回滾,如下圖所示。

兩階段提交(2PC,2 Phase Commit):一種分布式事務(wù)協(xié)議,確保所有參與者在提交或回滾事務(wù)時(shí)都處于一致的狀態(tài)。
1)準(zhǔn)備階段(prepare phase):在這個(gè)階段,事務(wù)協(xié)調(diào)者(Transaction Coordinator)向所有參與者(Transaction Participant)發(fā)出準(zhǔn)備請(qǐng)求,詢問它們是否準(zhǔn)備好提交事務(wù)。參與者執(zhí)行所有必要的操作,并回復(fù)協(xié)調(diào)者是否準(zhǔn)備好提交事務(wù)。如果所有參與者都回復(fù)準(zhǔn)備好提交事務(wù),協(xié)調(diào)者將進(jìn)入下一個(gè)階段。如果任何參與者不能準(zhǔn)備好提交事務(wù),協(xié)調(diào)者將通知所有參與者回滾事務(wù)。
2)提交階段(commit phase):在這個(gè)階段,如果所有參與者都已準(zhǔn)備好提交事務(wù),則協(xié)調(diào)者向所有參與者發(fā)送提交請(qǐng)求。參與者執(zhí)行所有必要的操作,并將其結(jié)果記錄在持久性存儲(chǔ)中。一旦所有參與者都已提交事務(wù),協(xié)調(diào)者將向它們發(fā)送確認(rèn)請(qǐng)求。如果任何參與者未能提交事務(wù),則協(xié)調(diào)者將通知所有參與者回滾事務(wù)。
兩階段提交面臨的問題
2PC 協(xié)議可確保分布式事務(wù)的原子性和一致性,但是其效率較低,可能會(huì)出現(xiàn)阻塞等問題。
1)同步阻塞問題:執(zhí)行過程中,所有參與節(jié)點(diǎn)都是事務(wù)阻塞型的。當(dāng)參與者占有公共資源時(shí),其他第三方節(jié)點(diǎn)訪問公共資源不得不處于阻塞狀態(tài)。也就是說從投票階段到提交階段完成這段時(shí)間,資源是被鎖住的。
2)單點(diǎn)故障:由于協(xié)調(diào)者的重要性,一旦協(xié)調(diào)者發(fā)生故障。參與者會(huì)一直阻塞下去。尤其在第二階段,協(xié)調(diào)者發(fā)生故障,那么所有的參與者還都處于鎖定事務(wù)資源的狀態(tài)中,而無法繼續(xù)完成事務(wù)操作。
3)數(shù)據(jù)不一致問題:在 2PC 最后提交階段中,當(dāng)協(xié)調(diào)者向參與者發(fā)送 commit 請(qǐng)求之后,發(fā)生了局部網(wǎng)絡(luò)異?;蛘咴诎l(fā)送 commit 請(qǐng)求過程中協(xié)調(diào)者發(fā)生了故障,這會(huì)導(dǎo)致只有一部分參與者接受到了 commit 請(qǐng)求。而在這部分參與者接到 commit 請(qǐng)求之后就會(huì)執(zhí)行 commit 操作。但是其他部分未接到 commit 請(qǐng)求的機(jī)器則無法執(zhí)行事務(wù)提交,于是整個(gè)分布式系統(tǒng)便出現(xiàn)了數(shù)據(jù)不一致性的現(xiàn)象。
三階段提交(3PC,3 Phase Commit):3PC是在 2PC 協(xié)議的基礎(chǔ)上添加了一個(gè)額外的階段來解決 2PC 協(xié)議可能出現(xiàn)的阻塞問題。
1)CanCommit 階段(詢問階段):在這個(gè)階段,事務(wù)協(xié)調(diào)者(Transaction Coordinator)向所有參與者(Transaction Participant)發(fā)出 CanCommit 請(qǐng)求,詢問它們是否準(zhǔn)備好提交事務(wù)。參與者執(zhí)行所有必要的操作,并回復(fù)協(xié)調(diào)者它們是否可以提交事務(wù)。
2)PreCommit 階段(準(zhǔn)備階段):如果所有參與者都回復(fù)可以提交事務(wù),則協(xié)調(diào)者將向所有參與者發(fā)送PreCommit 請(qǐng)求,通知它們準(zhǔn)備提交事務(wù)。參與者執(zhí)行所有必要的操作,并回復(fù)協(xié)調(diào)者它們是否已經(jīng)準(zhǔn)備好提交事務(wù)。
3)DoCommit 階段(提交階段):如果所有參與者都已經(jīng)準(zhǔn)備好提交事務(wù),則協(xié)調(diào)者將向所有參與者發(fā)送DoCommit 請(qǐng)求,通知它們提交事務(wù)。參與者執(zhí)行所有必要的操作,并將其結(jié)果記錄在持久性存儲(chǔ)中。一旦所有參與者都已提交事務(wù),協(xié)調(diào)者將向它們發(fā)送確認(rèn)請(qǐng)求。如果任何參與者未能提交事務(wù),則協(xié)調(diào)者將通知所有參與者回滾事務(wù)。
3PC相較于2PC的優(yōu)點(diǎn)
3PC引入了超時(shí)機(jī)制,同時(shí)在協(xié)調(diào)者和參與者中都引入超時(shí)機(jī)制(2PC 只有協(xié)調(diào)者有超時(shí)機(jī)制);
3PC 相比于 2PC 增加了 CanCommit 階段,可以盡早的發(fā)現(xiàn)問題,從而避免了后續(xù)的阻塞和無效操作,3PC 協(xié)議能夠更快地執(zhí)行提交或回滾事務(wù)。也就是說,3PC 相比于 2PC,因?yàn)橐肓顺瑫r(shí)機(jī)制,所以發(fā)生阻塞的幾率變小了;同時(shí) 3PC 把之前 2PC 的準(zhǔn)備階段一分為二,變成了兩步,這樣就多了一個(gè)緩沖階段,保證了在最后提交階段之前各參與節(jié)點(diǎn)的狀態(tài)是一致的。

5.數(shù)據(jù)一致性問題和解決方案

3PC 雖然可以減少同步阻塞問題和單點(diǎn)故障問題,但依然存在數(shù)據(jù)一致性問題(概率很小),而解決數(shù)據(jù)一致性問題的方案有很多,常見的有Paxos算法或柔性事物機(jī)制等。
1)Paxos 算法:Paxos 算法是一種基于消息傳遞的分布式一致性算法。
Paxos 算法是一種分布式共識(shí)算法,用于在分布式系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)的一致性和共識(shí),保證分布式系統(tǒng)中不同節(jié)點(diǎn)之間的數(shù)據(jù)同步和一致性。 Paxos 算法由三個(gè)角色組成:提議者、接受者和學(xué)習(xí)者。當(dāng)一個(gè)節(jié)點(diǎn)需要發(fā)起一個(gè)提議時(shí),它會(huì)向其他節(jié)點(diǎn)發(fā)送一個(gè)提議,接受者會(huì)接收到這個(gè)提議,并對(duì)其進(jìn)行處理,可能會(huì)拒絕提議,也可能會(huì)接受提議。如果有足夠多的節(jié)點(diǎn)接受了該提議,那么提議就會(huì)被確定下來,并且通知給所有學(xué)習(xí)者,最終所有節(jié)點(diǎn)都會(huì)達(dá)成共識(shí)。
2)柔性事務(wù):允許一定時(shí)間內(nèi)不同節(jié)點(diǎn)的數(shù)據(jù)不一致,但要求最終一致的機(jī)制。柔性事物有 TCC 補(bǔ)償事物、可靠消息事物(MQ 事物)等。比如阿里的支付寶XTS框架、TXC事務(wù)等。

二、柔性事務(wù)如何解決分布式事務(wù)問題

1.日志補(bǔ)償機(jī)制:類似于傳統(tǒng)的數(shù)據(jù)庫,原子性主要通過日志保證,事務(wù)日志記錄了參與者信息、開始和結(jié)束狀態(tài)等,參與者需要根據(jù)重做或回滾REDO/UNDO日志,實(shí)現(xiàn)數(shù)據(jù)恢復(fù)到一致狀態(tài),根據(jù)事務(wù)的當(dāng)前執(zhí)行狀態(tài),重試異常步驟或回滾前序步驟。
2.可靠消息傳遞:在分布式環(huán)境下,節(jié)點(diǎn)之間的消息傳遞有成功、失敗和不知道成功還是失敗三種狀態(tài),這種情況下一般采取消息至少投遞一次,但可能投遞多次,可能存在網(wǎng)絡(luò)通信危險(xiǎn)期(比如收不到回應(yīng)的原因是請(qǐng)求沒有成功發(fā)送到服務(wù)器,服務(wù)器處理完成后的回應(yīng)無法傳回請(qǐng)求方)。
3.實(shí)現(xiàn)無鎖機(jī)制:解決性能瓶頸和吞吐率問題是采取無鎖機(jī)制實(shí)現(xiàn)事務(wù)隔離,主要有避免事務(wù)進(jìn)入回滾、輔助業(yè)務(wù)變化明細(xì)表而不直接對(duì)原始數(shù)據(jù)庫進(jìn)行修改操作(只有用戶付款成功采取更新庫存數(shù)據(jù)等)和樂觀鎖(通過數(shù)據(jù)版本號(hào)方式實(shí)現(xiàn)數(shù)據(jù)更新操作,只有版本號(hào)一致才做更新操作等),樂觀鎖需要在應(yīng)用中實(shí)現(xiàn),需要所有應(yīng)用都實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)邏輯機(jī)制,一般的數(shù)據(jù)應(yīng)用的共享服務(wù)中心層統(tǒng)一實(shí)現(xiàn)。

三、阿里實(shí)現(xiàn)的柔性事務(wù)解決方案有哪些?

1.消息分布式事務(wù):通過異步消息隊(duì)列方式實(shí)現(xiàn)分布式事務(wù),大大提升了整個(gè)業(yè)務(wù)處理的吞吐率和響應(yīng)時(shí)間,這些異步消息同樣起到檢查點(diǎn)作用,比如互聯(lián)網(wǎng)訂單交易流程可以從下單開始拆分為庫存、支付寶、交易等,但這種方式只能讓開發(fā)人員全面了解業(yè)務(wù)并通過正向補(bǔ)償來實(shí)現(xiàn)。
2.支付寶XTS框架:基于BASE實(shí)現(xiàn)兩階段提交分布式事務(wù),保證分布式環(huán)境下的高可用和數(shù)據(jù)一致性要求,支持事務(wù)的正向和反向補(bǔ)償,這種方案需要開發(fā)人員根據(jù)該框架,負(fù)責(zé)實(shí)現(xiàn)XTS提供的接口,以實(shí)現(xiàn)XTS框架對(duì)事務(wù)參與者的事務(wù)協(xié)調(diào)和控制,包括TCC階段,具體如下。
Try:主要對(duì)系統(tǒng)進(jìn)行檢測(cè)及資源預(yù)留
Confirm:主要對(duì)業(yè)務(wù)系統(tǒng)做確認(rèn)提交,默認(rèn)Confirm階段不會(huì)出錯(cuò),只有Try成功,Confirm一定成功。
Cancel:主要在業(yè)務(wù)執(zhí)行錯(cuò)誤時(shí)需要回滾的狀態(tài)下,執(zhí)行業(yè)務(wù)取消,預(yù)留資源釋放等。
3.TXC架構(gòu)事務(wù)服務(wù):同樣基于BASE實(shí)現(xiàn)兩階段提交分布式事務(wù),全面支持分布式數(shù)據(jù)庫事務(wù)、多庫事務(wù)、消息事務(wù)、服務(wù)鏈路調(diào)用事務(wù)基各種組合場景下的事務(wù),包括事務(wù)協(xié)調(diào)者(TXC Server)、事務(wù)發(fā)起者(Client)、事務(wù)提供者()、資源管理器(Resource Manger)等。

四、緩存技術(shù)及應(yīng)用場景

緩存是另一項(xiàng)實(shí)現(xiàn)系統(tǒng)更好處理性能和更高吞吐率的技術(shù),我們知道內(nèi)存操作時(shí)間是納秒級(jí)、SSD硬盤操作時(shí)間是微妙級(jí),隨著業(yè)務(wù)范圍和用戶量的增大,緩存技術(shù)或平臺(tái)在業(yè)務(wù)場景中越來越重要的角色,核心緩存產(chǎn)品有阿里的Tair,開源的Redis等。
1.小庫存商品的秒殺場景:類似于雙11秒殺購物節(jié),這種場景需要實(shí)現(xiàn)商品的定時(shí)上架、商品色瞬時(shí)售空等,需要通過庫存的樂觀鎖實(shí)現(xiàn)庫存數(shù)量的更新操作,一般通過緩存服務(wù)器緩存商品的基本信息,只有在最終下單后才需要對(duì)數(shù)據(jù)庫進(jìn)行庫存更新訪問操作。
2.大庫存商品的大促場景:類似于小庫存商品描述場景,需要緩存商品的基本信息,同時(shí)將訂單交易創(chuàng)建環(huán)節(jié)中對(duì)原本商品數(shù)據(jù)庫的庫存信息操作替換為對(duì)緩存服務(wù)中運(yùn)行,實(shí)現(xiàn)納秒級(jí)的數(shù)據(jù)更新處理。

http://m.risenshineclean.com/news/63983.html

相關(guān)文章:

  • 建筑設(shè)計(jì)作品展示網(wǎng)站吉林seo管理平臺(tái)
  • 如何自己做直播網(wǎng)站網(wǎng)絡(luò)營銷措施有哪些
  • 受歡迎的廣州做網(wǎng)站搜狗搜索推廣
  • 門戶網(wǎng)站建設(shè)工作流程北京出大大事了
  • 成都室內(nèi)設(shè)計(jì)公司排名前十網(wǎng)站seo具體怎么做
  • 專業(yè)建站推廣平臺(tái)排行榜有哪些
  • asp網(wǎng)站500錯(cuò)誤iis7佛山網(wǎng)站快速排名提升
  • 網(wǎng)站建設(shè)pdf下載關(guān)鍵詞優(yōu)化精靈
  • php做網(wǎng)站模板網(wǎng)站建設(shè)詳細(xì)方案
  • 黨建網(wǎng)站安全建設(shè)alexa全球網(wǎng)站排名分析
  • 聯(lián)通專線做網(wǎng)站簡述如何優(yōu)化網(wǎng)站的方法
  • 聊城專業(yè)網(wǎng)站制作公司杭州seo中心
  • 備案網(wǎng)站可以做影視站一站式網(wǎng)站設(shè)計(jì)
  • tplink虛擬服務(wù)器做網(wǎng)站百度網(wǎng)盤網(wǎng)頁版登錄首頁
  • 59網(wǎng)站一起做網(wǎng)店網(wǎng)絡(luò)營銷模式
  • 免費(fèi)網(wǎng)絡(luò)推廣培訓(xùn)課程seo網(wǎng)站優(yōu)化外包
  • 中文游戲制作軟件常州百度關(guān)鍵詞優(yōu)化
  • 做網(wǎng)站設(shè)像素國內(nèi)廣告投放平臺(tái)
  • 網(wǎng)站域名登陸長沙seo優(yōu)化價(jià)格
  • 蘇州網(wǎng)站建設(shè)推廣服務(wù)百度電話怎么轉(zhuǎn)人工客服
  • 怎么做網(wǎng)站免費(fèi)的刷贊百度seo正規(guī)優(yōu)化
  • 廣州網(wǎng)站外貿(mào)推廣seo有哪些網(wǎng)站
  • 哪家手表網(wǎng)站鞏義網(wǎng)絡(luò)推廣
  • 大型網(wǎng)站開發(fā) 框架網(wǎng)絡(luò)搜索關(guān)鍵詞排名
  • 凡科做的網(wǎng)站為什么打不開十大跨界營銷案例
  • 做網(wǎng)站需要哪些素材網(wǎng)站優(yōu)化排名軟件
  • wordpress javascript廣告插件seo排名推廣
  • 網(wǎng)站做優(yōu)化多少錢牛推網(wǎng)
  • 汶上云速網(wǎng)站建設(shè)如何找做網(wǎng)站的公司
  • 北京微信網(wǎng)站建設(shè)費(fèi)用北京seo優(yōu)化公司