System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及微服務,具體涉及一種基于多注冊中心的服務發布方法、調用方法及系統。
技術介紹
1、在微服務治理的過程中,服務方系統需要將提供的服務發布到服務注冊中心,以便供調用方系統進行發現和調用。當前,服務注冊的機制通常支持將服務發布到某一個特定的注冊中心,或某一類注冊中心,隨著銀行系統的擴展以及與外部系統的對接需求的不斷擴增,存在以下兩種問題:(1)目前的微服務框架通常只支持將服務發布到一個注冊中心,無法滿足多個注冊中心的發布需求;(2)不同的服務無法發布到不同的注冊中心。
2、現有技術中銀行信息系統通常只支持對接一個注冊中心,或者某一類注冊中心的服務,無法靈活地根據服務的不同需求選擇不同的注冊中心進行尋址,在銀行與多個外部系統對接,或根據業務需求進行多注冊中心架構設計時,信息系統可維護性較差。
技術實現思路
1、有鑒于此,本專利技術提供了一種基于多注冊中心的服務發布方法、調用方法及系統,以解決如何提高服務發布/調用過程中的可維護性。
2、第一方面,本專利技術提供了一種基于多注冊中心的服務發布方法,應用于服務發布端,方法包括:
3、將各個類型的待發布服務所包含的方法進行注解操作,得到每一個方法對應的注解信息,所述注解信息中包括至少一個注冊中心的名稱;
4、基于第一預設攔截器攔截所述每一個方法對應的注解信息;同時,解析待發布服務對應的包并生成每一個方法對應的標識信息;
5、根據所述注解信息中至少一個注冊中心的名稱從預設的配
6、根據所述注冊中心的地址建立與注冊中心的鏈接,當鏈接建立成功后,利用所述每一個方法對應的標識信息,將待發布服務所包含的每一個方法發布至對應的一個或多個注冊中心,以使服務調用端獲取用戶發送的服務請求信息并從注冊中心已經注冊的服務中獲取用戶發送的服務請求信息所對應的待請求方法。
7、本專利技術實施例對待發布服務中的每個方法進行注解,注解又包含注冊中心名稱,可以使每個方法可以靈活地指定多個注冊中心。解決了現有技術中只能發布到單一注冊中心的問題,利用第一預設攔截器攔截每個方法的注解信息,集中處理服務發布的邏輯,提高了注冊服務的可維護性,解析待發布服務的包,生成每個方法對應的標識信息,使得服務在注冊中心中的識別更準確,也方便了后續調用服務的過程。根據注解信息讀取配置文件中對應的注冊中心地址,根據注冊中心地址建立鏈接,并發布每個方法至對應的一個或多個注冊中心,一旦鏈接建立成功,服務可以同時向多個注冊中心發布,解決了現有技術中無法將不同服務發布到不同注冊中心的問題。
8、在一種可選的實施方式中,所述每一個方法對應的標識信息包括方法所屬的服務包名稱、方法所屬的類名稱,以及方法名稱。
9、本專利技術實施例將方法所屬的服務包名稱、類名稱和方法名稱作為標識信息,可以保證每個方法在注冊中心中具有唯一且明確的標識,精確定位到某個具體方法,在多注冊中心的場景下,不同的服務可能發布到不同的注冊中心,明確的標識信息能夠保證即使在多個注冊中心中,服務方法依然可以準確地調用。
10、在一種可選的實施方式中,所述根據所述注冊中心的地址建立與注冊中心的鏈接,當鏈接建立成功后,利用所述每一個方法對應的標識信息,將待發布服務所包含的每一個方法發布至對應的一個或多個注冊中心,具體包括:
11、將待發布服務所包含的每一個方法、標識信息,以及注冊中心名稱封裝為服務實例,其中,一個所述服務實例對應一個所述方法;
12、根據所述服務實例中的注冊中心名稱獲取對應的注冊中心組件;
13、利用所述注冊中心組件,將所述服務實例注冊至對應的一個或多個注冊中心。
14、本專利技術實施例將每個方法及其相關信息封裝為服務實例,相當于進行模塊化的注冊,每個服務實例包含注冊中心名稱,通過獲取注冊中心組件并利用其注冊服務實例,若之后的系統維護需要修改或替換某個服務的注冊中心,只需調整對應的服務實例,而無需重構整個服務發布的流程,因此能有效提高服務注冊發布的可維護性。
15、第二方面,本專利技術提供了一種基于多注冊中心的服務調用方法,應用于服務調用端,方法包括:
16、獲取用戶發送的服務請求信息并解析得到請求實例;
17、基于第二預設攔截器攔截所述請求實例中待請求的標識信息以及至少一項注冊中心名稱;
18、根據所述至少一項注冊中心名稱從預設的配置文件中讀取與至少一個注冊中心的名稱分別對應的注冊中心的地址;
19、根據所述注冊中心的地址判斷是否已經與注冊中心建立鏈接;
20、若已經建立鏈接,則根據所述待請求的標識信息從注冊中心已經注冊的服務中獲取對應的待請求方法;其中,所述注冊中心中預先注冊如上述第一方面或其任一實施方式所述的方法發布的服務。
21、本專利技術實施例用戶發送服務請求信息并解析得到請求實例,通過解析請求實例,能夠靈活地識別出用戶的具體需求,基于第二預設攔截器攔截請求實例中的待請求的標識信息以及至少一項注冊中心名稱,從預設的配置文件中讀取與至少一個注冊中心的名稱對應的注冊中心的地址,能夠動態讀取注冊中心地址,通過檢查連接狀態,可以避免重復的連接請求,減少資源消耗,并提高服務調用的效率,當某個注冊中心出現故障時,仍然可以通過方法對應的其他注冊中心繼續提供服務,從而提高了服務調用的可維護性。
22、在一種可選的實施方式中,所述若已經建立鏈接,則根據所述待請求的標識信息從注冊中心已經注冊的服務中獲取對應的待請求方法,具體包括:
23、根據所述標識信息確定對應的至少一個注冊中心;
24、并根據所述標識信息分別從所述至少一個注冊中心中獲取對應的全部待請求方法;
25、根據預設服務選擇策略遍歷全部待請求方法,從中選取符合預設性能需求指標的方法,作為目標待請求方法。
26、本專利技術實施例根據待請求的標識信息確定對應的至少一個注冊中心,靈活的選擇服務提供者,通過從多個注冊中心獲取所有可能的服務方法,根據預設服務選擇策略遍歷全部待請求方法,選取符合預設性能需求指標的方法,基于性能的選擇機制可以保證所選服務方法在響應時間及負載能力等方面符合特定的業務需求,有效提升了服務調用的可維護性。
27、在一種可選的實施方式中,所述方法還包括:將已接收的標識信息和注冊中心地址以鍵值對的形式建立標識信息-注冊中心地址映射表,并保存為緩存信息;
28、所述根據所述注冊中心的地址判斷是否已經與注冊中心建立鏈接,具體包括:
29、從所述緩存信息中獲取標識信息-注冊中心地址映射表;
30、根據當前注冊中心的地址查找所述標識信息-注冊中心地址映射表,若當前注冊中心的地址不存在對應的標識信息,則確認并未與注冊中心建立鏈接,將當前注冊中心的地址以及對應的待請求的標識信息作為一條新的映射關系更新至所述標識信息-注冊中心地址本文檔來自技高網...
【技術保護點】
1.一種基于多注冊中心的服務發布方法,其特征在于,應用于服務發布端,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述每一個方法對應的標識信息包括方法所屬的服務包名稱、方法所屬的類名稱,以及方法名稱。
3.根據權利要求2所述的方法,其特征在于,所述根據所述注冊中心的地址建立與注冊中心的鏈接,當鏈接建立成功后,利用所述每一個方法對應的標識信息,將待發布服務所包含的每一個方法發布至對應的一個或多個注冊中心,具體包括:
4.一種基于多注冊中心的服務調用方法,其特征在于,應用于服務調用端,所述方法包括:
5.根據權利要求4所述的方法,其特征在于,所述若已經建立鏈接,則根據所述待請求的標識信息從注冊中心已經注冊的服務中獲取對應的待請求方法,具體包括:
6.根據權利要求4所述的方法,其特征在于,所述方法還包括:將已接收的標識信息和注冊中心地址以鍵值對的形式建立標識信息-注冊中心地址映射表,并保存為緩存信息;
7.一種基于多注冊中心的服務發布調用系統,其特征在于,所述系統包括服務發布端、服務調用端,以及至少一個
8.一種計算機設備,其特征在于,包括:
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機指令,所述計算機指令用于使計算機執行權利要求1-3中任一項所述的基于多注冊中心的服務發布方法或權利要求4-6中任一項所述的基于多注冊中心的服務調用方法。
10.一種計算機程序產品,其特征在于,包括計算機指令,所述計算機指令用于使計算機執行權利要求1-3中任一項所述的基于多注冊中心的服務發布方法或權利要求4-6中任一項所述的基于多注冊中心的服務調用方法。
...【技術特征摘要】
1.一種基于多注冊中心的服務發布方法,其特征在于,應用于服務發布端,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述每一個方法對應的標識信息包括方法所屬的服務包名稱、方法所屬的類名稱,以及方法名稱。
3.根據權利要求2所述的方法,其特征在于,所述根據所述注冊中心的地址建立與注冊中心的鏈接,當鏈接建立成功后,利用所述每一個方法對應的標識信息,將待發布服務所包含的每一個方法發布至對應的一個或多個注冊中心,具體包括:
4.一種基于多注冊中心的服務調用方法,其特征在于,應用于服務調用端,所述方法包括:
5.根據權利要求4所述的方法,其特征在于,所述若已經建立鏈接,則根據所述待請求的標識信息從注冊中心已經注冊的服務中獲取對應的待請求方法,具體包括:
6.根據權利要求4所述的方法,其特...
【專利技術屬性】
技術研發人員:賴振豪,楊成林,楊凱,王子航,
申請(專利權)人:湖南三湘銀行股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。