System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)屬于計算機軟件,特別是涉及不同web應(yīng)用之間實現(xiàn)本地函數(shù)調(diào)用的方法和系統(tǒng)。
技術(shù)介紹
1、在微服務(wù)架構(gòu)中,不同服務(wù)之間的通信通常依賴于遠程過程調(diào)用(rpc),如果將某些共享服務(wù)組件(如i18n-client)部署為一個獨立的web應(yīng)用,并與其他業(yè)務(wù)服務(wù)部署在同一tomcat實例中,由于tomcat中不同web應(yīng)用由獨立的類加載器管理,這些類加載器之間沒有任何繼承關(guān)系,因此無法直接進行本地函數(shù)調(diào)用,只能依賴rpc。但rpc帶來的網(wǎng)絡(luò)延遲和性能開銷,尤其是在高頻多語言查詢的場景中,嚴重影響了系統(tǒng)的性能。
技術(shù)實現(xiàn)思路
1、為此,本專利技術(shù)所要解決的技術(shù)問題在于提供一種在同一tomcat實例下不同web應(yīng)用之間本地函數(shù)調(diào)用的方法和系統(tǒng),以提高web應(yīng)用間的調(diào)用效率。
2、第一方面,本專利技術(shù)提供了一種同一tomcat實例下不同web應(yīng)用之間本地函數(shù)調(diào)用的方法,包括:
3、部署web應(yīng)用步驟,主web應(yīng)用與從web應(yīng)用部署在同一個tomcat實例下,將從web應(yīng)用設(shè)置為優(yōu)先啟動;所述從web應(yīng)用用于提供被調(diào)用類對象,所述主web應(yīng)用用于直接調(diào)用所述從web應(yīng)用提供的被調(diào)用類對象;
4、動態(tài)創(chuàng)建類與實例步驟,所述從web應(yīng)用啟動時,動態(tài)生成一個所述被調(diào)用類,并創(chuàng)建一個被調(diào)用類對象實例;
5、注冊被調(diào)用類對象實例步驟,將所述被調(diào)用類對象加載到系統(tǒng)類加載器;
6、啟動主web應(yīng)用步驟,當(dāng)所述從web應(yīng)用成功啟動后,啟動所述to
7、獲取注冊的被調(diào)用類對象實例步驟,所述主web應(yīng)用啟動后,從所述系統(tǒng)類加載器中獲取已注冊的所述被調(diào)用類對象實例,創(chuàng)建所述被調(diào)用類的代理類,并將所述被調(diào)用類對象實例分配給所述被調(diào)用類的代理類中的目標實例變量,所述目標實例變量為靜態(tài)變量;
8、本地函數(shù)調(diào)用步驟,所述主web應(yīng)用通過所述被調(diào)用類的代理類調(diào)用所述被調(diào)用類對象;被調(diào)用類的代理類獲取所述被調(diào)用類對象實例中的方法,并通過所述目標實例變量執(zhí)行該方法;
9、返回結(jié)果步驟,所述被調(diào)用類的代理類將所述目標實例變量執(zhí)行結(jié)果返回給所述主web應(yīng)用。
10、進一步地,所述動態(tài)創(chuàng)建類與實例步驟中,所述被調(diào)用類通過字節(jié)碼增強動態(tài)生成。
11、進一步地,所述注冊被調(diào)用類對象實例步驟中,所述系統(tǒng)類加載器采用jvm類加載器和雙親委派機制。
12、進一步地,所述動態(tài)創(chuàng)建類與實例步驟中,被調(diào)用類對象實例被賦值給所述被調(diào)用類中的靜態(tài)變量。
13、進一步地,所述本地函數(shù)調(diào)用步驟中,所述被調(diào)用類的代理類通過反射機制獲取所述被調(diào)用類對象實例中的方法。
14、進一步地,所述獲取注冊的被調(diào)用類對象實例步驟中,被調(diào)用類的代理類對所述被調(diào)用類對象實例的每個公開方法進行封裝,并提供等同簽名的函數(shù)。
15、進一步地,所述主web應(yīng)用為多個,當(dāng)所述從web應(yīng)用成功啟動后,依次啟動各個主web應(yīng)用。
16、另一方面,本專利技術(shù)還提供了一種同一tomcat實例下不同web應(yīng)用之間本地函數(shù)調(diào)用的系統(tǒng),包括:
17、部署web應(yīng)用模塊,主web應(yīng)用與從web應(yīng)用部署在同一個tomcat實例下,將從web應(yīng)用設(shè)置為優(yōu)先啟動;所述從web應(yīng)用用于提供被調(diào)用類對象,所述主web應(yīng)用用于直接調(diào)用所述從web應(yīng)用提供的被調(diào)用類對象;
18、動態(tài)創(chuàng)建類與實例模塊,所述從web應(yīng)用啟動時,動態(tài)生成一個所述被調(diào)用類,并創(chuàng)建一個被調(diào)用類對象實例;
19、注冊被調(diào)用類對象實例模塊,將所述被調(diào)用類對象加載到系統(tǒng)類加載器;
20、啟動主web應(yīng)用模塊,當(dāng)所述從web應(yīng)用成功啟動后,啟動所述tomcat中的所述主web應(yīng)用;
21、獲取注冊的被調(diào)用類對象實例模塊,所述主web應(yīng)用啟動后,從所述系統(tǒng)類加載器中獲取已注冊的所述被調(diào)用類對象實例,創(chuàng)建所述被調(diào)用類的代理類,并將所述被調(diào)用類對象實例分配給所述被調(diào)用類的代理類中的目標實例變量,所述目標實例變量為靜態(tài)變量;
22、本地函數(shù)調(diào)用模塊,所述主web應(yīng)用通過所述被調(diào)用類的代理類調(diào)用所述被調(diào)用類對象;被調(diào)用類的代理類獲取所述被調(diào)用類對象實例中的方法,并通過所述目標實例變量執(zhí)行該方法;
23、返回結(jié)果模塊,所述被調(diào)用類的代理類將所述目標實例變量執(zhí)行結(jié)果返回給所述主web應(yīng)用。
24、有益效果:
25、本專利技術(shù)公開的同一tomcat實例下不同web應(yīng)用之間本地函數(shù)調(diào)用的方法,通過將共享服務(wù)組件部署為一個獨立的web應(yīng)用,并與其他業(yè)務(wù)服務(wù)共享同一個實例,實現(xiàn)了本地函數(shù)調(diào)用,獲得了以下技術(shù)效果:
26、?性能提升?:通過本地函數(shù)調(diào)用,避免了rpc帶來的網(wǎng)絡(luò)延遲和性能開銷,顯著提升了應(yīng)用間的調(diào)用效率。
27、?內(nèi)存優(yōu)化?:將共享服務(wù)組件部署為一個獨立的web應(yīng)用,并與其他業(yè)務(wù)服務(wù)共享同一個實例,顯著減少了內(nèi)存消耗。
28、?易于部署和維護?:所有web應(yīng)用部署在同一tomcat實例下,簡化了部署和維護流程。
29、本專利技術(shù)提供的同一tomcat實例下不同web應(yīng)用之間本地函數(shù)調(diào)用的系統(tǒng),具有與上述方法同樣的有益效果。
本文檔來自技高網(wǎng)...【技術(shù)保護點】
1.同一Tomcat實例下不同Web應(yīng)用之間本地函數(shù)調(diào)用的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動態(tài)創(chuàng)建類與實例步驟中,所述被調(diào)用類通過字節(jié)碼增強動態(tài)生成。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述注冊被調(diào)用類對象實例步驟中,所述系統(tǒng)類加載器采用JVM類加載器和雙親委派機制。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動態(tài)創(chuàng)建類與實例步驟中,被調(diào)用類對象實例被賦值給所述被調(diào)用類中的靜態(tài)變量。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述本地函數(shù)調(diào)用步驟中,所述被調(diào)用類的代理類通過反射機制獲取所述被調(diào)用類對象實例中的方法。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取注冊的被調(diào)用類對象實例步驟中,被調(diào)用類的代理類對所述被調(diào)用類對象實例的每個公開方法進行封裝,并提供等同簽名的函數(shù)。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主Web應(yīng)用為多個,當(dāng)所述從Web應(yīng)用成功啟動后,依次啟動各個主Web應(yīng)用。
8.同一Tomcat實例下不同Web應(yīng)用之間本
...【技術(shù)特征摘要】
1.同一tomcat實例下不同web應(yīng)用之間本地函數(shù)調(diào)用的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動態(tài)創(chuàng)建類與實例步驟中,所述被調(diào)用類通過字節(jié)碼增強動態(tài)生成。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述注冊被調(diào)用類對象實例步驟中,所述系統(tǒng)類加載器采用jvm類加載器和雙親委派機制。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動態(tài)創(chuàng)建類與實例步驟中,被調(diào)用類對象實例被賦值給所述被調(diào)用類中的靜態(tài)變量。
5.根據(jù)權(quán)利要求1所述的方法...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:吳志輝,
申請(專利權(quán))人:北京紛揚科技有限責(zé)任公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。