本技術(shù)涉及數(shù)據(jù)管理領(lǐng)域,并且更具體地,涉及數(shù)據(jù)管理領(lǐng)域中一種數(shù)據(jù)管理的方法、裝置、電子設(shè)備和存儲介質(zhì)。
背景技術(shù):
1、隨著車聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,其體系結(jié)構(gòu)正經(jīng)歷著從集中式向分布式微服務(wù)的重大轉(zhuǎn)變。這一轉(zhuǎn)變的核心驅(qū)動力在于提高系統(tǒng)的可擴(kuò)展性、靈活性和響應(yīng)速度,以適應(yīng)日益復(fù)雜的車輛互聯(lián)需求和不斷增長的用戶基數(shù)。
2、在分布式微服務(wù)架構(gòu)下,車聯(lián)網(wǎng)系統(tǒng)被拆解成一系列高度解耦、自包含的微服務(wù),每個服務(wù)負(fù)責(zé)特定的功能模塊,并擁有自己的獨立數(shù)據(jù)存儲。這種設(shè)計不僅簡化了單個服務(wù)的開發(fā)和維護(hù),還極大地提升了系統(tǒng)的整體性能和魯棒性。
3、然而,分布式微服務(wù)架構(gòu)也帶來了新的挑戰(zhàn),尤其是在數(shù)據(jù)一致性的保證上。例如在車聯(lián)網(wǎng)場景中,許多業(yè)務(wù)操作需要跨越多個微服務(wù)才能完成,涉及到不同服務(wù)間的數(shù)據(jù)交互和同步。由于分布式微服務(wù)架構(gòu)下的數(shù)據(jù)分布在不同的服務(wù)和數(shù)據(jù)庫中,因此如何在分布式環(huán)境下確??绶?wù)數(shù)據(jù)的一致性,避免數(shù)據(jù)沖突和不一致狀態(tài),成為了一個亟待解決的關(guān)鍵問題。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供了一種數(shù)據(jù)管理的方法、裝置、電子設(shè)備和存儲介質(zhì),該方法能夠保證跨服務(wù)的微服務(wù)之間的數(shù)據(jù)的一致性,避免數(shù)據(jù)沖突和不一致狀態(tài)。
2、第一方面,提供了一種數(shù)據(jù)管理的方法,該方法包括:響應(yīng)于監(jiān)測到目標(biāo)業(yè)務(wù)操作,創(chuàng)建與目標(biāo)業(yè)務(wù)操作對應(yīng)的消息隊列;其中,消息隊列用于接收和發(fā)送消息;確定與目標(biāo)業(yè)務(wù)操作關(guān)聯(lián)的多個微服務(wù);基于消息隊列,接收多個微服務(wù)執(zhí)行嘗試操作的操作結(jié)果;其中,嘗試操作為tcc分布式事務(wù)協(xié)議中的操作;基于操作結(jié)果,管理多個微服務(wù)的服務(wù)數(shù)據(jù)。
3、在上述技術(shù)方案中,業(yè)務(wù)管理模塊創(chuàng)建與目標(biāo)業(yè)務(wù)操作對應(yīng)的消息隊列,消息隊列用于接收和發(fā)送消息,從而便于建立目標(biāo)操作業(yè)務(wù)對應(yīng)的多個跨服務(wù)的服務(wù)數(shù)據(jù)之間的聯(lián)系,這一操作是分布式事務(wù)管理的基礎(chǔ),它確保了與目標(biāo)業(yè)務(wù)操作相關(guān)的多個微服務(wù)之間可以有序、可靠地傳遞消息。消息隊列作為消息的中轉(zhuǎn)站,不僅可以解耦微服務(wù),降低服務(wù)間的依賴性,還能保證消息的持久化和重試機(jī)制,從而提高系統(tǒng)的容錯能力和穩(wěn)定性。基于tcc分布式事務(wù)協(xié)議的嘗試操作的操作結(jié)果管理數(shù)據(jù),可以保證跨服務(wù)的微服務(wù)數(shù)據(jù)之間的一致性,避免數(shù)據(jù)沖突和不一致狀態(tài)。
4、結(jié)合第一方面,在某些可能的實現(xiàn)方式中,基于消息隊列,接收多個微服務(wù)執(zhí)行嘗試操作的操作結(jié)果,包括:調(diào)用多個微服務(wù)的嘗試操作接口,以使多個微服務(wù)對各自的服務(wù)數(shù)據(jù)進(jìn)行嘗試操作,并將嘗試操作的操作結(jié)果反饋至消息隊列;接收消息隊列接收到的多個微服務(wù)反饋的操作結(jié)果。
5、結(jié)合第一方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,基于操作結(jié)果,管理多個微服務(wù)的服務(wù)數(shù)據(jù),包括:在基于操作結(jié)果,確定多個微服務(wù)執(zhí)行嘗試操作均成功的情況下,基于消息隊列向多個微服務(wù)發(fā)送批準(zhǔn)操作請求,以使多個微服務(wù)基于批準(zhǔn)操作請求對各自的服務(wù)數(shù)據(jù)進(jìn)行批準(zhǔn)操作;其中,批準(zhǔn)操作為tcc分布式事務(wù)協(xié)議中的操作。
6、在上述技術(shù)方案中,在確定多個微服務(wù)執(zhí)行嘗試操作均成功的情況下,才會向多個微服務(wù)發(fā)送批準(zhǔn)操作請求,使多個微服務(wù)執(zhí)行批準(zhǔn)操作,保證了多個微服務(wù)之間服務(wù)數(shù)據(jù)的一致性,避免了部分微服務(wù)成功導(dǎo)致的多個微服務(wù)之間服務(wù)數(shù)據(jù)不一致問題。
7、結(jié)合第一方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,基于操作結(jié)果管理多個微服務(wù)的服務(wù)數(shù)據(jù),包括:在基于操作結(jié)果,確定多個微服務(wù)中的至少一個微服務(wù)執(zhí)行嘗試操作未成功的情況下,基于消息隊列向多個微服務(wù)發(fā)送取消操作請求,以使多個微服務(wù)基于取消操作請求對各自的服務(wù)數(shù)據(jù)進(jìn)行取消操作;其中,取消操作為tcc分布式事務(wù)協(xié)議中的操作。
8、結(jié)合第一方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,創(chuàng)建與目標(biāo)業(yè)務(wù)操作對應(yīng)的消息隊列,包括:生成目標(biāo)業(yè)務(wù)操作的業(yè)務(wù)識別碼;基于業(yè)務(wù)識別碼創(chuàng)建消息隊列。
9、在上述技術(shù)方案中,通過生成目標(biāo)業(yè)務(wù)操作的業(yè)務(wù)識別碼,基于業(yè)務(wù)識別碼可以建立專屬于目標(biāo)業(yè)務(wù)操作的消息隊列,便于進(jìn)行資源的精細(xì)化管理和優(yōu)化,避免其他業(yè)務(wù)對目標(biāo)業(yè)務(wù)操作的影響。
10、結(jié)合第一方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,基于業(yè)務(wù)識別碼創(chuàng)建消息隊列之后,調(diào)用多個微服務(wù)的嘗試操作接口之前,方法還包括:向多個微服務(wù)發(fā)送業(yè)務(wù)識別碼,以使多個微服務(wù)基于業(yè)務(wù)識別碼訂閱消息隊列的消息。
11、在上述技術(shù)方案中,通過業(yè)務(wù)識別碼指示微服務(wù)訂閱消息隊列的消息,確保了即使在高并發(fā)和分布式環(huán)境下,每個微服務(wù)也能準(zhǔn)確無誤地參與到正確的業(yè)務(wù)流程中,提高了系統(tǒng)的健壯性和事務(wù)處理能力。多個微服務(wù)基于業(yè)務(wù)識別碼訂閱同一個消息隊列,可以實現(xiàn)業(yè)務(wù)操作消息的并行處理。這顯著提升了系統(tǒng)的處理能力和響應(yīng)速度,尤其是在處理高并發(fā)或大量消息時。
12、結(jié)合第一方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,該方法還包括:接收消息隊列接收到的批準(zhǔn)操作的失敗消息;其中,失敗消息為多個微服務(wù)在批準(zhǔn)操作失敗時,向消息隊列反饋的;基于失敗消息,在預(yù)設(shè)時長內(nèi)持續(xù)向多個微服務(wù)發(fā)送批準(zhǔn)操作請求,直至多個微服務(wù)基于批準(zhǔn)操作請求對各自的服務(wù)數(shù)據(jù)成功進(jìn)行批準(zhǔn)操作。
13、在上述技術(shù)方案中,通過監(jiān)聽批準(zhǔn)操作是否執(zhí)行失敗,并在批準(zhǔn)操作執(zhí)行失敗的情況下在預(yù)設(shè)時長內(nèi)持續(xù)嘗試執(zhí)行批準(zhǔn)操作,可以減少因并發(fā)沖突或臨時故障導(dǎo)致的批準(zhǔn)操作執(zhí)行失敗的情況,有效提高批準(zhǔn)操作的最終成功率,確保業(yè)務(wù)流程的順利進(jìn)行。減少了因操作失敗導(dǎo)致用戶手動重啟整個業(yè)務(wù)流程需要的操作,提供了一個更加流暢和可靠的用戶體驗。并且通過設(shè)定預(yù)設(shè)時長,可以在一定程度上限制重試操作的持續(xù)時間,避免無限循環(huán)嘗試帶來的資源浪費或系統(tǒng)負(fù)擔(dān)加重。
14、綜上,本技術(shù)業(yè)務(wù)管理模塊通過生成目標(biāo)業(yè)務(wù)操作的業(yè)務(wù)識別碼,基于業(yè)務(wù)識別碼可以建立專屬于目標(biāo)業(yè)務(wù)操作的消息隊列,從而便于建立目標(biāo)操作業(yè)務(wù)對應(yīng)的多個跨服務(wù)的服務(wù)數(shù)據(jù)之間的聯(lián)系,通過業(yè)務(wù)識別碼指示微服務(wù)訂閱消息隊列的消息,確保了即使在高并發(fā)和分布式環(huán)境下,每個微服務(wù)也能準(zhǔn)確無誤地參與到正確的業(yè)務(wù)流程中;基于tcc分布式事務(wù)協(xié)議的嘗試操作的操作結(jié)果管理數(shù)據(jù),可以保證跨服務(wù)的微服務(wù)數(shù)據(jù)之間的一致性,避免數(shù)據(jù)沖突和不一致狀態(tài)。并且在批準(zhǔn)操作執(zhí)行失敗的情況下在預(yù)設(shè)時長內(nèi)持續(xù)嘗試執(zhí)行批準(zhǔn)操作,可以減少因并發(fā)沖突或臨時故障導(dǎo)致的批準(zhǔn)操作執(zhí)行失敗的情況,有效提高批準(zhǔn)操作的最終成功率,確保業(yè)務(wù)流程的順利進(jìn)行。
15、第二方面,提供了一種數(shù)據(jù)管理的裝置,該裝置包括:創(chuàng)建模塊,用于響應(yīng)于監(jiān)測到目標(biāo)業(yè)務(wù)操作,創(chuàng)建與目標(biāo)業(yè)務(wù)操作對應(yīng)的消息隊列;其中,消息隊列用于接收和發(fā)送消息;確定模塊,用于確定與目標(biāo)業(yè)務(wù)操作關(guān)聯(lián)的多個微服務(wù);接收模塊,用于基于消息隊列,接收多個微服務(wù)執(zhí)行嘗試操作的操作結(jié)果;其中,嘗試操作為tcc分布式事務(wù)協(xié)議中的操作;管理模塊,用于基于操作結(jié)果,管理多個微服務(wù)的服務(wù)數(shù)據(jù)。
16、結(jié)合第二方面,在某些可能的實現(xiàn)方式中,接收模塊具體用于,調(diào)用多個微服務(wù)的嘗試操作接口,以使多個微服務(wù)對各自的服務(wù)數(shù)據(jù)進(jìn)行嘗試操作,并將嘗試操作的操作結(jié)果反饋至消息隊列;接收消息隊列接收到的多個微服務(wù)反饋的操作結(jié)果。
17、結(jié)合第二方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,管理模塊具體用于,在基于操作結(jié)果,確定多個微服務(wù)執(zhí)行嘗試操作均成功的情況下,基于消息隊列向多個微服務(wù)發(fā)送批準(zhǔn)操作請求,以使多個微服務(wù)基于批準(zhǔn)操作請求對各自的服務(wù)數(shù)據(jù)進(jìn)行批準(zhǔn)操作;其中,批準(zhǔn)操作為tcc分布式事務(wù)協(xié)議中的操作。
18、結(jié)合第二方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,管理模塊具體用于,在基于操作結(jié)果,確定多個微服務(wù)中的至少一個微服務(wù)執(zhí)行嘗試操作未成功的情況下,基于消息隊列向多個微服務(wù)發(fā)送取消操作請求,以使多個微服務(wù)基于取消操作請求對各自的服務(wù)數(shù)據(jù)進(jìn)行取消操作;其中,取消操作為tcc分布式事務(wù)協(xié)議中的操作。
19、結(jié)合第二方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,創(chuàng)建模塊具體用于,生成目標(biāo)業(yè)務(wù)操作的業(yè)務(wù)識別碼;基于業(yè)務(wù)識別碼創(chuàng)建消息隊列。
20、結(jié)合第二方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,該裝置還包括:訂閱模塊,用于在基于業(yè)務(wù)識別碼創(chuàng)建消息隊列之后,調(diào)用多個微服務(wù)的嘗試操作接口之前,向多個微服務(wù)發(fā)送業(yè)務(wù)識別碼,以使多個微服務(wù)基于業(yè)務(wù)識別碼訂閱消息隊列的消息。
21、結(jié)合第二方面和上述實現(xiàn)方式,在某些可能的實現(xiàn)方式中,該裝置還包括發(fā)送模塊,用于接收消息隊列接收到的批準(zhǔn)操作的失敗消息;其中,失敗消息為多個微服務(wù)在批準(zhǔn)操作失敗時,向消息隊列反饋的;基于失敗消息,在預(yù)設(shè)時長內(nèi)持續(xù)向多個微服務(wù)發(fā)送批準(zhǔn)操作請求,直至多個微服務(wù)基于批準(zhǔn)操作請求對各自的服務(wù)數(shù)據(jù)成功進(jìn)行批準(zhǔn)操作。
22、第三方面,提供一種電子設(shè)備,包括存儲器和處理器。該存儲器用于存儲可執(zhí)行程序代碼,該處理器用于從存儲器中調(diào)用并運行該可執(zhí)行程序代碼,使得該電子設(shè)備執(zhí)行上述第一方面或第一方面任意一種可能的實現(xiàn)方式中的方法。
23、第四方面,提供了一種計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括:計算機(jī)程序代碼,當(dāng)該計算機(jī)程序代碼在計算機(jī)上運行時,使得該計算機(jī)執(zhí)行上述第一方面或第一方面任意一種可能的實現(xiàn)方式中的方法。
24、第五方面,提供了一種計算機(jī)可讀存儲介質(zhì),該計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)程序代碼,當(dāng)該計算機(jī)程序代碼在計算機(jī)上運行時,使得該計算機(jī)執(zhí)行上述第一方面或第一方面任意一種可能的實現(xiàn)方式中的方法。