第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

我們可以編寫(xiě)自定義 Spring 事務(wù)管理器嗎?

我們可以編寫(xiě)自定義 Spring 事務(wù)管理器嗎?

心有法竹 2023-06-14 15:58:03
假設(shè)我們有一個(gè)businessLogic()方法做兩件事:在本地緩存中寫(xiě)入一些信息并將相同的信息保存在使用的數(shù)據(jù)庫(kù)中,JDBC以便緩存和數(shù)據(jù)庫(kù)的內(nèi)容始終相同。我知道我們可以使用 Spring 的JDBC數(shù)據(jù)源事務(wù)管理器在出現(xiàn)異常時(shí)自動(dòng)回滾數(shù)據(jù)庫(kù)。但是,在這種情況下,我們?nèi)绾味x一個(gè)自定義的事務(wù)管理器,它也回滾緩存的內(nèi)容,以便緩存和 DB 的內(nèi)容始終保持同步?謝謝大家。
查看完整描述

3 回答

?
慕尼黑的夜晚無(wú)繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

Gab 的回答是正確的,除了不正確的部分。

XA 確實(shí)是協(xié)調(diào)多個(gè)資源更新的標(biāo)準(zhǔn)方法...除了緩存是本地的,即進(jìn)程內(nèi)緩存,它不一定是資源。

緩存并不完全“實(shí)現(xiàn) JTA”,它根據(jù)其部署方式充當(dāng) XA 協(xié)議中的兩個(gè)角色之一。它可以是 XAResource,但通常只有在其生命周期不同于客戶(hù)端進(jìn)程的情況下才需要。對(duì)于進(jìn)程內(nèi)使用,它更有可能是同步。

這些角色之間的主要區(qū)別在于:XAResource 是容錯(cuò)的,但 Synchronization 不是。對(duì)于客戶(hù)端進(jìn)程內(nèi)存中的易失性緩存,在崩潰后通過(guò)查詢(xún)數(shù)據(jù)庫(kù)重建緩存就足夠了。對(duì)于進(jìn)程外的緩存,客戶(hù)端在 db tx 提交之后但在緩存更新之前崩潰將使緩存不同步,至少直到它過(guò)期或被手動(dòng)刷新。

根據(jù)緩存實(shí)現(xiàn),不能保證它會(huì)自動(dòng)選擇正確的模式。

Spring 實(shí)際上也不是 JTA XA 事務(wù)管理器,盡管它確實(shí)在它們之上提供了一個(gè)抽象層??梢允褂?Spring 在非 XA 模式下驅(qū)動(dòng)數(shù)據(jù)庫(kù),但是你沒(méi)有用于緩存同步的標(biāo)準(zhǔn)掛鉤,你需要一個(gè)專(zhuān)有接口?;蛘吣梢宰寯?shù)據(jù)庫(kù)通過(guò)單階段資源適配器執(zhí)行偽 XA。Full-on 2PC 對(duì)于您的用例來(lái)說(shuō)可能有點(diǎn)矯枉過(guò)正。


查看完整回答
反對(duì) 回復(fù) 2023-06-14
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

首先我認(rèn)為緩存的事務(wù)管理任務(wù)是多余的。我建議您僅在成功提交數(shù)據(jù)庫(kù)級(jí)事務(wù)后才更新緩存。

如果數(shù)據(jù)庫(kù)中實(shí)體的更新與其緩存狀態(tài)之間的窗口很小,那么大多數(shù)使用緩存的場(chǎng)景都是完全可以接受的。

如果您的案例拒絕任何緩存過(guò)時(shí)的可能性,那么您可能必須避免使用緩存或使用一些特殊的緩存,可能是與支持事務(wù)的原始數(shù)據(jù)相同的數(shù)據(jù)庫(kù)。否則,您在嘗試保持兩個(gè)不同系統(tǒng)之間的一致性時(shí)遇到問(wèn)題:數(shù)據(jù)庫(kù)級(jí)別和緩存級(jí)別。大多數(shù)時(shí)候,你能達(dá)到的最好結(jié)果是最終一致性——這意味著無(wú)論如何你都會(huì)有不一致?tīng)顟B(tài)的窗口,只有到那時(shí)(最終)數(shù)據(jù)才會(huì)變得一致。


查看完整回答
反對(duì) 回復(fù) 2023-06-14
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

處理分布在多個(gè)資源之間的事務(wù)的標(biāo)準(zhǔn)方法是使用XA

然后,您必須使用 xa-datasource 訪問(wèn)您的數(shù)據(jù)庫(kù)并使用實(shí)現(xiàn)JTA 的緩存實(shí)現(xiàn),例如。緩存。

我對(duì) spring boot 不是很熟悉,但是事務(wù)管理器應(yīng)該通過(guò)適當(dāng)?shù)呐渲茫ú恍枰貙?xiě)任何東西)開(kāi)箱即用地管理跨兩個(gè)資源的事務(wù)同步


查看完整回答
反對(duì) 回復(fù) 2023-06-14
  • 3 回答
  • 0 關(guān)注
  • 188 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)