System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及計(jì)算機(jī)數(shù)據(jù)處理,具體涉及基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法及系統(tǒng)。
技術(shù)介紹
1、在現(xiàn)代應(yīng)用開發(fā)中,配置管理是確保系統(tǒng)靈活性和可維護(hù)性的關(guān)鍵因素。通常,配置可以分為兩類:系統(tǒng)配置與業(yè)務(wù)配置。系統(tǒng)配置一般存儲于配置中心或靜態(tài)配置文件之中,其變更頻率較低,且往往需要服務(wù)重啟才能生效。因此,這類配置會在服務(wù)啟動時被加載到內(nèi)存,并保持有效直至服務(wù)終止。相比之下,業(yè)務(wù)配置則具有更高的變更頻率,且要求在不停止服務(wù)的情況下實(shí)時生效。這些配置通常保存在數(shù)據(jù)庫中,以便于動態(tài)調(diào)整。
2、然而,在處理每個業(yè)務(wù)請求時直接查詢數(shù)據(jù)庫以獲取最新配置的做法存在顯著的性能瓶頸,頻繁的數(shù)據(jù)庫訪問不僅會消耗大量資源,還可能在高并發(fā)場景下對數(shù)據(jù)庫造成巨大壓力。為緩解這一問題,現(xiàn)有技術(shù)采用了緩存機(jī)制來優(yōu)化配置數(shù)據(jù)的訪問效率。具體而言,從數(shù)據(jù)庫讀取的配置信息會被臨時保存至應(yīng)用程序的內(nèi)存中,并設(shè)定一定的緩存有效期(如1分鐘)。在此期間內(nèi),所有對于該配置項(xiàng)的訪問都將直接使用緩存中的副本,從而避免了不必要的數(shù)據(jù)庫交互;一旦超過設(shè)定的有效期,將重新從數(shù)據(jù)庫中拉取最新的配置數(shù)據(jù)并更新緩存。
3、盡管上述方法能夠在一定程度上改善系統(tǒng)的響應(yīng)速度并減輕數(shù)據(jù)庫負(fù)擔(dān),但即使實(shí)際配置并未發(fā)生任何更改,每隔一個緩存周期仍需執(zhí)行一次數(shù)據(jù)庫查詢操作,當(dāng)同一應(yīng)用部署多實(shí)例時,會導(dǎo)致數(shù)據(jù)庫訪問量成倍增長;同時,保證緩存與數(shù)據(jù)庫之間的一致性是一項(xiàng)復(fù)雜任務(wù),需要引入復(fù)雜的同步處理邏輯;另一方面,由于采用了定時刷新的方式,配置的實(shí)際生效時間可能會有所滯后
技術(shù)實(shí)現(xiàn)思路
1、為了解決主動輪詢數(shù)據(jù)庫產(chǎn)生大量無效查詢請求的技術(shù)問題,本專利技術(shù)提供一種基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法及系統(tǒng),所采用的技術(shù)方案具體如下:
2、本專利技術(shù)第一方面的技術(shù)方案提供了基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,所述方法包括:
3、目標(biāo)業(yè)務(wù)首次讀取目標(biāo)應(yīng)用配置并向訂閱注冊中心訂閱注冊信息;
4、獲取數(shù)據(jù)庫變更記錄信息,根據(jù)變更記錄信息提取目標(biāo)應(yīng)用配置的更新信息;
5、根據(jù)目標(biāo)應(yīng)用配置的更新信息提取與目標(biāo)應(yīng)用配置相關(guān)的配置標(biāo)志及操作類型;
6、根據(jù)目標(biāo)應(yīng)用配置的訂閱注冊信息以及配置標(biāo)志匹配目標(biāo)業(yè)務(wù)的應(yīng)用服務(wù),并根據(jù)操作類型將更新信息同步至應(yīng)用服務(wù)緩存。
7、進(jìn)一步地,目標(biāo)業(yè)務(wù)首次讀取目標(biāo)應(yīng)用配置并向訂閱注冊中心訂閱注冊信息包括:
8、目標(biāo)業(yè)務(wù)首次讀取目標(biāo)應(yīng)用配置時,檢查緩存中是否存在該目標(biāo)應(yīng)用配置,若不存在,則從數(shù)據(jù)庫中查詢該目標(biāo)應(yīng)用配置并緩存,同時啟動異步線程向配置訂閱注冊中心訂閱注冊信息。
9、進(jìn)一步地,所述訂閱注冊信息至少包括:
10、服務(wù)名,用于訂閱注冊中心識別不同的服務(wù);
11、配置更新回調(diào)地址,用于發(fā)生變更時將變更通知發(fā)送至對應(yīng)的應(yīng)用服務(wù);
12、數(shù)據(jù)庫名、表名以及字段名,用于匹配應(yīng)用服務(wù)關(guān)注的配置范圍。
13、進(jìn)一步地,所述應(yīng)用服務(wù)的緩存為內(nèi)存緩存,用于存儲應(yīng)用配置數(shù)據(jù),且緩存中的配置數(shù)據(jù)在接收訂閱注冊中心的更新通知之前保持不變。
14、進(jìn)一步地,該方法還包括:
15、首次讀取后再次讀取目標(biāo)應(yīng)用配置時,檢查該目標(biāo)應(yīng)用配置向訂閱注冊中心的訂閱是否成功,若成功,則直接使用內(nèi)存緩存中的配置;若訂閱失敗,應(yīng)用服務(wù)記錄訂閱失敗信息,并重新執(zhí)行首次讀取時的查詢配置和訂閱操作。
16、進(jìn)一步地,所述訂閱注冊中心與數(shù)據(jù)庫之間通信連接,訂閱注冊中心從數(shù)據(jù)庫的日志文件中獲取變更記錄信息,并提取出與目標(biāo)應(yīng)用配置相關(guān)的更新信息。
17、進(jìn)一步地,根據(jù)目標(biāo)應(yīng)用配置的更新信息提取與目標(biāo)應(yīng)用配置相關(guān)的配置標(biāo)志及操作類型包括:
18、訂閱注冊中心根據(jù)目標(biāo)應(yīng)用配置的更新信息提取變更相關(guān)的數(shù)據(jù)庫名、表名以及字段名作為配置標(biāo)志,并確定操作類型。
19、進(jìn)一步地,根據(jù)目標(biāo)應(yīng)用配置的訂閱注冊信息以及配置標(biāo)志匹配目標(biāo)業(yè)務(wù)的應(yīng)用服務(wù),并根據(jù)操作類型將更新信息同步至應(yīng)用服務(wù)緩存包括:
20、基于訂閱注冊信息中應(yīng)用服務(wù)感興趣的配置范圍,結(jié)合提取的變更相關(guān)的數(shù)據(jù)庫名、表名以及字段名進(jìn)行匹配,提取變更需要推送的目標(biāo)應(yīng)用服務(wù);
21、目標(biāo)應(yīng)用服務(wù)收到變更通知后,根據(jù)變更操作類型將變更同步至緩存中。
22、進(jìn)一步地,根據(jù)變更操作類型將變更同步至緩存中包括:
23、當(dāng)變更操作類型為更新時,將緩存中對應(yīng)配置項(xiàng)的值更新為新值;
24、當(dāng)變更操作類型為新增時,在緩存中添加新的配置內(nèi)容;
25、當(dāng)變更操作類型為刪除時,從緩存中刪除相應(yīng)的配置項(xiàng)。
26、本專利技術(shù)第二方面的技術(shù)方案提供了基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新系統(tǒng),所述系統(tǒng)采用本專利技術(shù)第一方面技術(shù)方案所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,所述系統(tǒng)包括:
27、應(yīng)用服務(wù)模塊,包括緩存單元和業(yè)務(wù)處理單元,所述緩存單元用于存儲應(yīng)用配置,所述業(yè)務(wù)處理單元用于處理業(yè)務(wù)并在需要時讀取和更新緩存中的配置;
28、訂閱注冊中心模塊,用于接收應(yīng)用服務(wù)的訂閱信息,接收數(shù)據(jù)庫的日志文件并提取變更信息,根據(jù)訂閱信息匹配需要推送變更的應(yīng)用服務(wù),并向應(yīng)用服務(wù)推送配置變更通知;
29、數(shù)據(jù)庫模塊,用于存儲應(yīng)用配置數(shù)據(jù),在數(shù)據(jù)更新時生成日志文件記錄變更。
30、本專利技術(shù)具有如下有益效果:
31、本專利技術(shù)提供的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,應(yīng)用服務(wù)僅在首次讀取配置時從數(shù)據(jù)庫獲取目標(biāo)應(yīng)用配置,并同時完成訂閱注冊。此后,除了發(fā)生訂閱失敗的情況,應(yīng)用服務(wù)無需主動查詢數(shù)據(jù)庫;通過獲取數(shù)據(jù)庫變更記錄信息,根據(jù)變更記錄信息提取目標(biāo)應(yīng)用配置的更新信息,提取與目標(biāo)應(yīng)用配置相關(guān)的配置標(biāo)志及操作類型,應(yīng)用服務(wù)依靠訂閱注冊中心推送的更新信息來更新緩存,避免了不必要的數(shù)據(jù)庫輪詢,從而大幅減少了無效檢查;另一方面,相較于現(xiàn)有技術(shù)主動輪詢數(shù)據(jù)庫的方式存在時間間隔的問題,本方法能夠及時獲取數(shù)據(jù)庫的變更記錄信息,并將更新信息同步到目標(biāo)應(yīng)用服務(wù)的緩存中,應(yīng)用服務(wù)的緩存能夠快速更新,大大縮短了配置變更后的生效時間,使得應(yīng)用服務(wù)能夠及時基于新配置處理業(yè)務(wù),提高了整個系統(tǒng)對配置變化的響應(yīng)速度。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述方法包括:
2.如權(quán)利要求1所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,目標(biāo)業(yè)務(wù)首次讀取目標(biāo)應(yīng)用配置并向訂閱注冊中心訂閱注冊信息包括:
3.如權(quán)利要求2所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述訂閱注冊信息至少包括:
4.如權(quán)利要求2所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述應(yīng)用服務(wù)的緩存為內(nèi)存緩存,用于存儲應(yīng)用配置數(shù)據(jù),且緩存中的配置數(shù)據(jù)在接收訂閱注冊中心的更新通知之前保持不變。
5.如權(quán)利要求1所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,該方法還包括:
6.如權(quán)利要求1所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述訂閱注冊中心與數(shù)據(jù)庫之間通信連接,訂閱注冊中心從數(shù)據(jù)庫的日志文件中獲取變更記錄信息,并提取出與目標(biāo)應(yīng)用配置相關(guān)的更新信息。
7.如權(quán)利要求1至6任一項(xiàng)所述的基于配置訂閱與增量解析的應(yīng)
8.如權(quán)利要求7所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,根據(jù)目標(biāo)應(yīng)用配置的訂閱注冊信息以及配置標(biāo)志匹配目標(biāo)業(yè)務(wù)的應(yīng)用服務(wù),并根據(jù)操作類型將更新信息同步至應(yīng)用服務(wù)緩存包括:
9.如權(quán)利要求8所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,根據(jù)變更操作類型將變更同步至緩存中包括:
10.基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新系統(tǒng),其特征在于,所述系統(tǒng)采用權(quán)利要求1至9任一項(xiàng)所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,所述系統(tǒng)包括:
...【技術(shù)特征摘要】
1.基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述方法包括:
2.如權(quán)利要求1所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,目標(biāo)業(yè)務(wù)首次讀取目標(biāo)應(yīng)用配置并向訂閱注冊中心訂閱注冊信息包括:
3.如權(quán)利要求2所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述訂閱注冊信息至少包括:
4.如權(quán)利要求2所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述應(yīng)用服務(wù)的緩存為內(nèi)存緩存,用于存儲應(yīng)用配置數(shù)據(jù),且緩存中的配置數(shù)據(jù)在接收訂閱注冊中心的更新通知之前保持不變。
5.如權(quán)利要求1所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,該方法還包括:
6.如權(quán)利要求1所述的基于配置訂閱與增量解析的應(yīng)用配置緩存自適應(yīng)更新方法,其特征在于,所述訂閱注冊中心與數(shù)據(jù)庫之間...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:李達(dá),陳星燚,楊健,何琦,王發(fā)修,
申請(專利權(quán))人:成都新希望金融信息有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。