欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種功能模塊解耦實現(xiàn)方法及系統(tǒng)與流程

文檔序號:40454189發(fā)布日期:2024-12-27 09:19閱讀:17來源:國知局
一種功能模塊解耦實現(xiàn)方法及系統(tǒng)與流程

本發(fā)明涉及軟件架構(gòu),具體地說是一種功能模塊解耦實現(xiàn)方法及系統(tǒng)。


背景技術(shù):

1、隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與技術(shù)創(chuàng)新的全面開花,系統(tǒng)功能的實現(xiàn)能被多種類型的組件所滿足,如消息中間件rocketmq、kafka;日志記錄工具rsyslog、logback、kafka;同一系統(tǒng)在不同項目部署使用時會結(jié)合項目實際情況選擇相應(yīng)中間件,傳統(tǒng)方式編碼方式存在以下問題:

2、(1)系統(tǒng)在不同項目上要修改代碼適配各項目使用的中間件。不同實現(xiàn)的編碼多項目組形成差異,代碼不好維護(hù),拉取分支也會造成代碼提交合并的不便。多種類型中間件更使得代碼分支成笛卡爾積倍數(shù)增加,增加維護(hù)成本。

3、(2)日志記錄、消息發(fā)送之類系統(tǒng)輔助功能失敗會阻塞主業(yè)務(wù)流程。像日志記錄、消息發(fā)送這類系統(tǒng)記錄分析類功能,應(yīng)盡量減少對業(yè)務(wù)主流程的影響。


技術(shù)實現(xiàn)思路

1、本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種功能模塊解耦實現(xiàn)方法及系統(tǒng),能夠?qū)崿F(xiàn)非主流程業(yè)務(wù)功能異步處理,并實現(xiàn)同類型功能組件可插拔性,不同項目選擇不同實現(xiàn)技術(shù)時無需修改代碼即可做到快速切換。

2、本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:

3、一種功能模塊解耦實現(xiàn)方法,同系統(tǒng)在不同項目上快速適配不同中間件,調(diào)用不同中間件的功能實現(xiàn)以單獨模塊的形式存在;

4、通過springbootapplicationevent方式解耦非主流程業(yè)務(wù)(如:日志記錄);實現(xiàn)后續(xù)非主要流程失敗不阻斷主流程業(yè)務(wù);

5、通過接口定義的方式解耦主流程業(yè)務(wù)不同組件實現(xiàn)(如:消息發(fā)送組件);主業(yè)務(wù)流程功能調(diào)用只面向接口,無需關(guān)心功能模塊具體實現(xiàn);不同項目選擇不同實現(xiàn)技術(shù)時無需修改代碼即可做到通過接口快速切換。

6、本方法基于springbootapplicationevent和接口定義實現(xiàn)功能模塊解耦與插拔,可實現(xiàn)通過切換引入模塊快速切換中間件對接,功能實現(xiàn)模塊與主業(yè)務(wù)流程分開獨立。增加了系統(tǒng)的適配性與可用性,增強了系統(tǒng)的可用性同時也提升了系統(tǒng)的性能。

7、進(jìn)一步的,springbootapplicationevent解耦非主流程,實現(xiàn)方式如下:

8、1)創(chuàng)建自定義事件:

9、創(chuàng)建一個自定義事件類,該類繼承自applicationevent,在該類中聲明后續(xù)業(yè)務(wù)流程需要用到的業(yè)務(wù)數(shù)據(jù),作為后續(xù)流程的業(yè)務(wù)數(shù)據(jù)來源;

10、2)創(chuàng)建事件監(jiān)聽器:

11、創(chuàng)建監(jiān)聽器類,該類實現(xiàn)applicationlistene接口,并重寫onapplicationevent方法;監(jiān)聽器類需要放到不同實現(xiàn)模塊去實現(xiàn),這樣業(yè)務(wù)系統(tǒng)只須關(guān)注實現(xiàn)自己業(yè)務(wù)邏輯與調(diào)用相應(yīng)的接口聲明,具體聲明是由誰實現(xiàn)取決于打包時引入的具體實現(xiàn)模塊;

12、3)發(fā)布事件:

13、業(yè)務(wù)系統(tǒng)通過applicationeventpublisher來發(fā)布事件,業(yè)務(wù)實現(xiàn)類實現(xiàn)applicationeventpublisheraware接口,eventpublisher通過publishevent方法發(fā)布event事件,項目引入的相應(yīng)監(jiān)聽實現(xiàn)模塊監(jiān)聽到事件后執(zhí)行后續(xù)操作。

14、以日志記錄為例,定義日志事件event,里面包含要記錄日志屬性字段,業(yè)務(wù)實現(xiàn)模塊繼承applicationeventpublisheraware接口,業(yè)務(wù)主模塊在需要記錄的地方組裝日志并通過eventpublisher的publishevent方法發(fā)送事件,新建模塊以相應(yīng)實現(xiàn)命名,如rsyslog、logback,在這些模塊監(jiān)聽相應(yīng)事件并完成日志的記錄工作。后續(xù)日志記錄功能通過監(jiān)聽springapplicationevent實現(xiàn),在工程打包部署時確定引入的具體實現(xiàn)包來確定功能的具體實現(xiàn)方式。消息監(jiān)聽后的處理流程即可為同步也可為異步,減少非主流程對主業(yè)務(wù)流程的影響。

15、進(jìn)一步的,所述創(chuàng)建自定義事件,事件創(chuàng)建時根據(jù)具體業(yè)務(wù)要求創(chuàng)建beforeevent、afterevent事件滿足不同時機觸發(fā)操作。

16、進(jìn)一步的,所述接口定義,在主業(yè)務(wù)流程中聲明接口并定義入?yún)⒎祬⒏袷?,再?chuàng)建獨立的實現(xiàn)模塊去實現(xiàn)這些接口定義的方法。

17、當(dāng)某一功能有多種常用實現(xiàn)方式或需要對接不同中間件時,為解耦這些功能,可以通過預(yù)定義接口的方式實現(xiàn)。

18、進(jìn)一步的,項目需要分別使用rocketmq與kafka發(fā)送消息時,在主業(yè)務(wù)模塊定義imsgsender接口聲明send方法,分別創(chuàng)建rocketmq與kafka模塊繼承主業(yè)務(wù)模塊實現(xiàn)send方法;主業(yè)務(wù)模塊在調(diào)用時無需關(guān)心具體業(yè)務(wù)實現(xiàn),通過imsgsender直接調(diào)用send方法即可;具體實現(xiàn)通過打包部署工程時引入的模塊確定。

19、進(jìn)一步的,配置輔助業(yè)務(wù)流程為異步執(zhí)行,以對主業(yè)務(wù)流程影響降到最低。

20、進(jìn)一步的,通過事件監(jiān)聽的方式實現(xiàn)輔助業(yè)務(wù)流程引入,可同時引入多個實現(xiàn),多個實現(xiàn)可同時生效使用。

21、本發(fā)明還要求保護(hù)一種功能模塊解耦實現(xiàn)系統(tǒng),包括:

22、非主流程業(yè)務(wù)解耦模塊,用于實現(xiàn)非主流程業(yè)務(wù)功能異步處理,主流程業(yè)務(wù)完成時發(fā)送相應(yīng)event事件,攜帶后續(xù)流程所需數(shù)據(jù),相應(yīng)事件監(jiān)聽被觸發(fā),在相應(yīng)監(jiān)聽實現(xiàn)層增加異步注解@async()實現(xiàn)獨立線程執(zhí)行后續(xù)流程;

23、接口定義模塊,用于實現(xiàn)同類型功能組件可插拔性;在主流程業(yè)務(wù)實現(xiàn)中將中間件相應(yīng)功能提取成接口,將這些接口的實現(xiàn)單獨拆分成獨立模塊,這些模塊繼承業(yè)務(wù)模塊,并對接各種中間件實現(xiàn)接口功能,以消息隊列發(fā)送為例,當(dāng)業(yè)務(wù)系統(tǒng)需要發(fā)送消息時,主業(yè)務(wù)流程只需調(diào)用自己模塊中定義的send方法,具體由rocketmq發(fā)送還是kafka發(fā)送取決于打包時引入的實現(xiàn)send方法的模塊;當(dāng)切換實現(xiàn)中間件時只需在運行工程中引入需要的實現(xiàn)模塊即可;

24、該系統(tǒng)具體通過上述的功能模塊解耦實現(xiàn)方法實現(xiàn)業(yè)務(wù)處理。

25、本發(fā)明還要求保護(hù)一種功能模塊解耦實現(xiàn)裝置,包括:至少一個存儲器和至少一個處理器;

26、所述至少一個存儲器,用于存儲機器可讀程序;

27、所述至少一個處理器,用于調(diào)用所述機器可讀程序,實現(xiàn)上述的方法。

28、本發(fā)明還要求保護(hù)一種計算機可讀介質(zhì),所述計算機可讀介質(zhì)上存儲有計算機指令,所述計算機指令在被處理器執(zhí)行時,實現(xiàn)上述的方法。

29、本發(fā)明的一種功能模塊解耦實現(xiàn)方法及系統(tǒng)與現(xiàn)有技術(shù)相比,具有以下有益效果:

30、1、功能接口化,功能實現(xiàn)模塊與主業(yè)務(wù)模塊解耦:功能接口化,實現(xiàn)了主業(yè)務(wù)流程與后續(xù)輔助功能實現(xiàn)的解耦合。后續(xù)功能可按需引入實現(xiàn)模塊,做到快速切換中間件的目的。增加了系統(tǒng)的適配性與可用性。

31、2、輔助流程可異步,減少輔助流程報錯對主業(yè)務(wù)流程的影響;如日志記錄這類的輔助流程有時失敗無需阻塞主業(yè)務(wù)流程,事件監(jiān)聽方式可配置為異步,輔助流程報錯時不影響系統(tǒng)的正常使用,增強了系統(tǒng)的可用性同時也提升了系統(tǒng)的性能。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
罗平县| 宜城市| 霍林郭勒市| 通许县| 增城市| 张家口市| 师宗县| 明水县| 海门市| 延安市| 伊川县| 英德市| 横山县| 三亚市| 大洼县| 敦化市| 平顶山市| 西宁市| 湛江市| 绥化市| 中阳县| 麻栗坡县| 铜鼓县| 沐川县| 农安县| 华池县| 兴安盟| 香河县| 准格尔旗| 华宁县| 鱼台县| 美姑县| 陆丰市| 平度市| 马龙县| 富宁县| 涿鹿县| 博客| 双桥区| 平顺县| 板桥市|