System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機,尤其涉及一種業務數據訪問請求的路由方法和裝置。
技術介紹
1、通常情況下,一個應用產品會包括多個業務模塊以實現不同的業務功能,且會設置多個數據源以支持用戶進行業務訪問。當用戶通過業務模塊請求訪問數據時,會通過業務模塊的業務代碼來進行多數據源設置以確定用戶該訪問哪個數據源。如果有動態數據源切換的需求,也需要根據需求對業務模塊的業務代碼進行改動以進行適配。
2、在實現本專利技術過程中,專利技術人發現現有技術中至少存在如下問題:當需要動態切換用戶訪問的數據源時,需要通過對各個業務模塊的業務代碼進行改動來實現,代碼改動大,實現方式不靈活,當應用產品包括的業務模塊多時,代碼開發成本高,周期長。
技術實現思路
1、有鑒于此,本專利技術實施例提供一種業務數據訪問請求的路由方法和裝置,能夠基于遠程過程調用框架的過濾器進行隱式傳參,并根據數據源路由算法來靈活進行業務數據訪問請求的路由,此過程與業務模塊的業務代碼完全無關,實現了將業務數據訪問請求的路由功能從業務模塊的業務代碼中提取出來,作為單獨的路由組件存在,各個業務模塊可以通過調用該路由組件來實現業務數據訪問請求的路由功能,從而實現了業務代碼與路由功能的隔離,無需各個業務模塊內部分別實現業務數據訪問請求的路由功能。當需要動態切換用戶訪問的數據源時,無需通過對各個業務模塊的業務代碼進行改動來實現,僅修改路由組件的功能實現即可,實現方式更靈活,減少了代碼開發成本,縮短了代碼開發周期。
2、為實現上述目的,根
3、接收客戶端發來的請求報文,所述請求報文包括業務數據訪問請求和租戶標識,所述租戶標識是通過遠程過程調用框架的客戶端過濾器獲取的;
4、通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,獲取所述租戶標識;
5、根據數據源路由算法確定所述租戶標識對應的數據源,并將所述數據源作為所述業務數據訪問請求的路由數據源。
6、可選地,所述租戶標識是被添加到臨時狀態記錄器中以隱式傳參的方式發送的;通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,獲取所述租戶標識,包括:通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,以獲取臨時狀態記錄器,并從所述臨時狀態記錄器中獲取所述租戶標識。
7、可選地,通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,獲取所述租戶標識之后,還包括:將所述租戶標識存儲到線程本地存儲中以進行租戶隔離。
8、可選地,根據數據源路由算法確定所述租戶標識對應的數據源,包括:根據所述數據源路由算法,基于所述租戶標識拼接租戶對應的數據庫連接信息,并生成數據源對象,根據所述數據源對象確定所述租戶標識對應的數據源。
9、可選地,在將所述數據源作為所述業務數據訪問請求的路由數據源之后,還包括:將所述數據源發送給數據庫訪問中間件,以用于通過所述數據庫訪問中間件從業務系統的可用數據源集合中查找到所述數據源,根據所述租戶對應的數據庫連接信息建立與所述數據源的數據庫連接,以根據所述業務數據訪問請求訪問所述數據源。
10、根據本專利技術實施例的另一方面,提供了一種業務數據訪問請求的路由裝置,包括:
11、請求報文接收模塊,用于接收客戶端發來的請求報文,所述請求報文包括業務數據訪問請求和租戶標識,所述租戶標識是通過遠程過程調用框架的客戶端過濾器獲取的;
12、租戶標識獲取模塊,用于通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,獲取所述租戶標識;
13、訪問請求路由模塊,用于根據數據源路由算法確定所述租戶標識對應的數據源,并將所述數據源作為所述業務數據訪問請求的路由數據源。
14、可選地,所述租戶標識是被添加到臨時狀態記錄器中以隱式傳參的方式發送的;所述租戶標識獲取模塊還用于:通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,以獲取臨時狀態記錄器,并從所述臨時狀態記錄器中獲取所述租戶標識。
15、可選地,所述訪問請求路由模塊還用于:根據所述數據源路由算法,基于所述租戶標識拼接租戶對應的數據庫連接信息,并生成數據源對象,根據所述數據源對象確定所述租戶標識對應的數據源。
16、根據本專利技術實施例的又一方面,提供了一種電子設備,包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當所述一個或多個程序被所述一個或多個處理器執行,使得所述一個或多個處理器實現本專利技術實施例所提供的業務數據訪問請求的路由方法。
17、根據本專利技術實施例的再一方面,提供了一種計算機可讀介質,其上存儲有計算機程序,所述程序被處理器執行時實現本專利技術實施例所提供的業務數據訪問請求的路由方法。
18、上述專利技術中的一個實施例具有如下優點或有益效果:通過接收客戶端發來的請求報文,請求報文包括業務數據訪問請求和租戶標識,租戶標識是通過遠程過程調用框架的客戶端過濾器獲取的;通過遠程過程調用框架的服務端過濾器對請求報文進行過濾,獲取租戶標識;根據數據源路由算法確定租戶標識對應的數據源,并將數據源作為業務數據訪問請求的路由數據源的技術方案,可以基于遠程過程調用框架的過濾器進行隱式傳參,并根據數據源路由算法來靈活進行業務數據訪問請求的路由,此過程與業務模塊的業務代碼完全無關,實現了將業務數據訪問請求的路由功能從業務模塊的業務代碼中提取出來,作為單獨的路由組件存在,各個業務模塊可以通過調用該路由組件來實現業務數據訪問請求的路由功能,從而實現了業務代碼與路由功能的隔離,無需各個業務模塊內部分別實現業務數據訪問請求的路由功能。當需要動態切換用戶訪問的數據源時,無需通過對各個業務模塊的業務代碼進行改動來實現,僅修改路由組件的功能實現即可,實現方式更靈活,減少了代碼開發成本,縮短了代碼開發周期。
19、上述的非慣用的可選方式所具有的進一步效果將在下文中結合具體實施方式加以說明。
本文檔來自技高網...【技術保護點】
1.一種業務數據訪問請求的路由方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述租戶標識是被添加到臨時狀態記錄器中以隱式傳參的方式發送的;
3.根據權利要求1所述的方法,其特征在于,通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,獲取所述租戶標識之后,還包括:
4.根據權利要求1所述的方法,其特征在于,根據數據源路由算法確定所述租戶標識對應的數據源,包括:
5.根據權利要求4所述的方法,其特征在于,在將所述數據源作為所述業務數據訪問請求的路由數據源之后,還包括:
6.一種業務數據訪問請求的路由裝置,其特征在于,包括:
7.根據權利要求6所述的裝置,其特征在于,所述租戶標識是被添加到臨時狀態記錄器中以隱式傳參的方式發送的;
8.根據權利要求6所述的裝置,其特征在于,所述訪問請求路由模塊還用于:
9.一種電子設備,其特征在于,包括:
10.一種計算機可讀介質,其上存儲有計算機程序,其特征在于,所述程序被處理器執行時實現如權利要求1-5中任一所述的
...【技術特征摘要】
1.一種業務數據訪問請求的路由方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述租戶標識是被添加到臨時狀態記錄器中以隱式傳參的方式發送的;
3.根據權利要求1所述的方法,其特征在于,通過遠程過程調用框架的服務端過濾器對所述請求報文進行過濾,獲取所述租戶標識之后,還包括:
4.根據權利要求1所述的方法,其特征在于,根據數據源路由算法確定所述租戶標識對應的數據源,包括:
5.根據權利要求4所述的方法,其特征在于,在將所述數據源作為...
【專利技術屬性】
技術研發人員:李鐵柱,王歡,
申請(專利權)人:北京京東遠升科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。