本實用新型涉及通信技術(shù)領(lǐng)域,尤其涉及一種業(yè)務(wù)信息處理系統(tǒng)。
背景技術(shù):
傳統(tǒng)C/S架構(gòu)的RPC(Remote Procedure Call Protocol,遠程過程調(diào)用協(xié)議)框架,客戶端非常臃腫,它需要處理協(xié)議的序列化和反序列化,需要處理路由算法、隔離、熔斷等服務(wù)治理的功能,但服務(wù)治理功能會不斷的更新,使得客戶端的版本也需要不斷升級。
由于客戶端部署非常龐大,每次客戶端升級都會需要業(yè)務(wù)重新編譯打包,然后升級非常多臺機器,即使業(yè)務(wù)代碼沒有改變,這也需要對升級客戶端版本進行升級,導(dǎo)致工作量和風(fēng)險非常大。
技術(shù)實現(xiàn)要素:
本實用新型的主要目的在于提出一種業(yè)務(wù)信息處理系統(tǒng),旨在解決客戶端版本升級時,工作量和風(fēng)險非常大的技術(shù)問題。
為實現(xiàn)上述目的,本實用新型提供的一種業(yè)務(wù)信息處理系統(tǒng),所述業(yè)務(wù)信息處理系統(tǒng)包括:代理服務(wù)器和客戶端,
所述代理服務(wù)器包括連接模塊和服務(wù)治理模塊,所述客戶端與所述連接模塊連接,所述連接模塊還分別與注冊中心和目的服務(wù)器連接;
所述客戶端將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述連接模塊;
所述連接模塊與所述處理芯片連接,所述連接模塊將所述業(yè)務(wù)請求發(fā)送至所述處理芯片;
所述處理芯片根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器的實例;
所述處理芯片根據(jù)所述代理服務(wù)器中預(yù)設(shè)服務(wù)治理策略和所述實例通過所述連接模塊將所述業(yè)務(wù)請求發(fā)送至所述目的服務(wù)器。
可選地,所述系統(tǒng)還包括:與所述注冊中心連接的所述目的服務(wù)器,所述目的服務(wù)器還與配置中心連接;
所述目的服務(wù)器從所述配置中心獲取配置信息,并從所述安全中心獲取安全策略;
所述目的服務(wù)器根據(jù)所述配置信息和安全策略將自身的地址和端口注冊至所述注冊中心,并向所述注冊中心發(fā)送服務(wù)器的實例。
可選地,所述代理服務(wù)器包括本地代理服務(wù)器和備份代理服務(wù)器,所述本地代理服務(wù)器包括第一連接模塊和第一處理芯片,所述備份代理服務(wù)器包括第二連接模塊和第二處理芯片,
所述客戶端分別與所述第一連接模塊和所述第二連接模塊連接,所述第一連接模塊和第二連接模塊還分別與所述目的服務(wù)器連接;
在本地代理服務(wù)器正常運行時,所述客戶端發(fā)送將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述第一連接模塊,所述第一連接模塊與所述第一處理芯片連接,所述第一連接模塊將所述業(yè)務(wù)請求發(fā)送至所述第一處理芯片,所述第一處理芯片根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器的實例;
在本地代理服務(wù)器發(fā)生故障時,所述客戶端發(fā)送將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述第二連接模塊,所述第二連接模塊與所述第二處理芯片連接,所述第二連接模塊將所述業(yè)務(wù)請求發(fā)送至所述第二處理芯片,所述第二處理芯片根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器的實例。
可選地,在本地代理服務(wù)器正常運行時,所述第一處理芯片根據(jù)所述預(yù)設(shè)服務(wù)治理策略和所述實例通過所述第一連接模塊將所述業(yè)務(wù)請求發(fā)送至所述目的服務(wù)器;
在本地代理服務(wù)器發(fā)生故障時,所述第二處理芯片根據(jù)所述預(yù)設(shè)服務(wù)治理策略和所述實例通過所述第二連接模塊將所述業(yè)務(wù)請求發(fā)送至所述目的服務(wù)器。
可選地,所述代理服務(wù)器根據(jù)所述業(yè)務(wù)請求中目的服務(wù)器的標識從所述注冊中心獲取目的服務(wù)器的實例。
可選地,所述業(yè)務(wù)信息處理系統(tǒng)還包括:監(jiān)控報警服務(wù)器,所述監(jiān)控報警服務(wù)器分別與所述客戶端、代理服務(wù)器和目的服務(wù)器連接,所述客戶端、代理服務(wù)器和目的服務(wù)器將各自的監(jiān)控日志發(fā)送至所述監(jiān)控報警服務(wù)器。
可選地,所述注冊中心為基于分布式應(yīng)用程序協(xié)調(diào)服務(wù)的注冊中心。
本實用新型業(yè)務(wù)信息處理系統(tǒng)包括:代理服務(wù)器和客戶端,所述代理服務(wù)器包括連接模塊和處理芯片,所述客戶端與所述連接模塊連接,所述連接模塊還分別與注冊中心和目的服務(wù)器連接;所述客戶端將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述連接模塊;所述連接模塊與所述處理芯片連接,所述連接模塊將所述業(yè)務(wù)請求發(fā)送至所述處理芯片;所述處理芯片根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器的實例;所述處理芯片根據(jù)所述代理服務(wù)器中預(yù)設(shè)服務(wù)治理策略和所述實例通過所述連接模塊將所述業(yè)務(wù)請求發(fā)送至所述目的服務(wù)器。通過上述方式,本實用新型中在業(yè)務(wù)信息處理系統(tǒng)中添加代理服務(wù)器,將傳統(tǒng)客戶端中服務(wù)治理策略抽離,設(shè)置在代理服務(wù)器中,客戶端只產(chǎn)生對應(yīng)的業(yè)務(wù)請求,并發(fā)送至代理服務(wù)器,代理服務(wù)器根據(jù)業(yè)務(wù)請求獲取目的服務(wù)器的實例,并根據(jù)預(yù)設(shè)的服務(wù)治理策略對業(yè)務(wù)請求進行對應(yīng)的處理,采用本實用新型代理服務(wù)器能夠在軟件版本升級時,可以只需要對代理服務(wù)器進行升級,因此能夠減少升級過程中的工作量和風(fēng)險。
附圖說明
圖1為本實用新型業(yè)務(wù)信息處理系統(tǒng)第一實施例的系統(tǒng)架構(gòu)示意圖;
圖2為本實用新型實施例中業(yè)務(wù)信息處理方法的系統(tǒng)處理流程時序示意圖;
圖3為本實用新型業(yè)務(wù)信息處理系統(tǒng)第二實施例的系統(tǒng)架構(gòu)示意圖;
圖4為本實用新型實施例中業(yè)務(wù)信息處理系統(tǒng)的邏輯架構(gòu)示意圖;
圖5為本實用新型實施例中業(yè)務(wù)信息處理系統(tǒng)的物理部署示意圖;
圖6為本實用新型業(yè)務(wù)信息處理的流程示意圖。
本實用新型目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本實用新型,并不用于限定本實用新型。
本實用新型提供一種業(yè)務(wù)信息處理系統(tǒng)。
參照圖1,圖1為本實用新型業(yè)務(wù)信息處理系統(tǒng)第一實施例的系統(tǒng)架構(gòu)示意圖。
在本實施例中,該業(yè)務(wù)信息處理系統(tǒng)包括:代理服務(wù)器200和客戶端100,所述代理服務(wù)器200包括連接模塊201和處理芯片202,所述連接模塊201分別與所述客戶端100注冊中心、目的服務(wù)器連接;
所述客戶端100將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述連接模塊201;
所述連接模塊201與所述處理芯片202連接,所述連接模塊201將所述業(yè)務(wù)請求發(fā)送至所述處理芯片202;
所述處理芯片202根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器的實例;
所述處理芯片202根據(jù)所述代理服務(wù)器200中預(yù)設(shè)服務(wù)治理策略和所述實例通過所述連接模塊201將所述業(yè)務(wù)請求發(fā)送至所述目的服務(wù)器。
傳統(tǒng)C/S結(jié)構(gòu)中,即客戶端和目的服務(wù)器結(jié)構(gòu)中,客戶端非常臃腫,客戶端需要處理協(xié)議的序列化和反序列化,需要處理路由算法、隔離、熔斷等服務(wù)治理功能,即服務(wù)治理策略,本實用新型中將傳統(tǒng)客戶端中的服務(wù)治理策略抽離出來,設(shè)置至代理服務(wù)器中,客戶端則變成瘦客戶端。
本實施例中代理服務(wù)器200,即Proxy,完全跟業(yè)務(wù)代碼無關(guān),是單獨的Java進程,單獨升級,升級時無需客戶端100進行任何處理。
在用戶需要進行業(yè)務(wù)處理時,通過客戶端100觸發(fā)對應(yīng)的功能,客戶端100根據(jù)用戶操作產(chǎn)生對應(yīng)的業(yè)務(wù)請求,并將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至代理服務(wù)器200中連接模塊201,連接模塊201與所述處理芯片202連接,所述連接模塊201將所述業(yè)務(wù)請求發(fā)送至所述處理芯片202。處理芯片202接收到業(yè)務(wù)請求,則根據(jù)業(yè)務(wù)請求從注冊中心獲取目的服務(wù)器的實例,目的服務(wù)器即對應(yīng)的服務(wù)提供方,然后處理芯片202根據(jù)代理服務(wù)器200中預(yù)設(shè)服務(wù)治理策略和所述實例對所述業(yè)務(wù)請求通過連接模塊201將業(yè)務(wù)請求發(fā)送至目的服務(wù)器,即處理芯片202根據(jù)代理服務(wù)器200中預(yù)設(shè)服務(wù)治理策略和所述實例對所述業(yè)務(wù)請求進行對應(yīng)的處理,本實施例中獲取目的服務(wù)器的所有實例,以保證業(yè)務(wù)的進行。其中對所述業(yè)務(wù)請求進行對應(yīng)的處理包括對所述業(yè)務(wù)請求進行轉(zhuǎn)發(fā)、降級或拒絕。如將業(yè)務(wù)請求發(fā)送至目的服務(wù)器,則目的服務(wù)器根據(jù)接收到的業(yè)務(wù)請求反饋對應(yīng)的內(nèi)容至是代理服務(wù)器,由代理服務(wù)器發(fā)送至客戶端。
處理流程時序圖可以如圖2所示:
客戶端OSP Client進行序列化、監(jiān)控埋點、安全簽名、代理選擇和異步發(fā)送。其中序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內(nèi)容進行流化??梢詫α骰蟮膶ο筮M行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進行讀寫操作時所引發(fā)的問題。監(jiān)控埋點就是監(jiān)控用戶操作的每一步。安全簽名是對發(fā)送的信息進行加密。代理選擇是選擇代理服務(wù)器。異步發(fā)送是一種通訊方式,異步雙方不需要共同的時鐘,也就是接收方不知道發(fā)送方什么時候發(fā)送,所以在發(fā)送的信息中就要有提示接收方開始接收的信息,如開始位,同時在結(jié)束時有停止位。
代理服務(wù)器OSP Proxy進行反序列頭信息、降級熔斷、降級處理、服務(wù)路由、監(jiān)控埋點和異步發(fā)送。其中反序列頭信息就是將客戶端發(fā)送的信息中的序列頭進行解析。降級熔斷是由于某些原因使得服務(wù)出現(xiàn)了過載現(xiàn)象,為防止造成整個系統(tǒng)故障,從而采用的一種保護措施,所以熔斷亦稱為過載保護。降級處理整體資源快不夠了,先將某些服務(wù)先關(guān)掉,待整體資源足夠時,再開啟回來關(guān)掉的服務(wù)。服務(wù)路由就是可以自定義路由,通過定義路由將業(yè)務(wù)信息發(fā)送至指定的目的服務(wù)器。代理服務(wù)器向獲取服務(wù)實例列表及服務(wù)配置,然后根據(jù)接收到的業(yè)務(wù)信息、服務(wù)實例和服務(wù)配置進行對應(yīng)的處理。
目的服務(wù)器OSP應(yīng)用則先進行反序列頭信息、限流隔離、監(jiān)控埋點、安全校驗對接收到的業(yè)務(wù)信息進行驗證,然后調(diào)用服務(wù)對通過驗證的業(yè)務(wù)信息進行處理,然后進行返回數(shù)據(jù)、序列化返回數(shù)據(jù)和監(jiān)控埋點。
其中,所述注冊中心為基于分布式應(yīng)用程序協(xié)調(diào)服務(wù)的注冊中心。
基于Zookeeper的服務(wù)注冊中心,可以實現(xiàn)服務(wù)的地址感知,錯誤感知,平滑升級,高可伸縮性,多版本支持。
進一步地,代理服務(wù)器200根據(jù)所述業(yè)務(wù)請求中目的服務(wù)器的標識從注冊中心獲取目的服務(wù)器的實例。
具體地,代理服務(wù)器200在接收到業(yè)務(wù)請求時,對接收到的業(yè)務(wù)請求進行解析,獲得客戶端100所要訪問的目的服務(wù)器的標識,目的服務(wù)器的標識至少包括目的服務(wù)器的地址或者名稱。然后代理服務(wù)器200根據(jù)目的服務(wù)器的標識從注冊中心獲取目的服務(wù)器的實例,進一步地,保持實時更新目的服務(wù)器的實例。
需要特別說明的是,對比于傳統(tǒng)的負載平衡器LoadBalancer提供基本的負載均衡與HA(High Available,高可用性集群)能力,本實用新型Proxy提供了豐富的服務(wù)治理功能包括:
豐富的路由自定義功能:支持條件化的路由定義,負載均衡,權(quán)重調(diào)整,支持灰度發(fā)布,AB測試,黑白名單,跨機房路由等;
高可用與自我保護的機制:超時控制、重試、限流、熔斷、降級、隔離;
服務(wù)監(jiān)控,性能監(jiān)控,故障快速定位支持;
服務(wù)配置:支持服務(wù)配置集中管理,動態(tài)下發(fā);
服務(wù)安全:支持服務(wù)認證、授權(quán)、簽名、加密傳輸?shù)男枨蟆?/p>
本實用新型業(yè)務(wù)信息處理系統(tǒng)包括:代理服務(wù)器和客戶端,所述代理服務(wù)器包括連接模塊和處理芯片,所述客戶端與所述連接模塊連接,所述連接模塊還分別與注冊中心和目的服務(wù)器連接;所述客戶端將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述連接模塊;所述連接模塊與所述處理芯片連接,所述連接模塊將所述業(yè)務(wù)請求發(fā)送至所述處理芯片;所述處理芯片根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器的實例;所述處理芯片根據(jù)所述代理服務(wù)器中預(yù)設(shè)服務(wù)治理策略和所述實例通過所述連接模塊將所述業(yè)務(wù)請求發(fā)送至所述目的服務(wù)器。通過上述方式,本實用新型中在業(yè)務(wù)信息處理系統(tǒng)中添加代理服務(wù)器,將傳統(tǒng)客戶端中服務(wù)治理策略抽離,設(shè)置在代理服務(wù)器中,客戶端只產(chǎn)生對應(yīng)的業(yè)務(wù)請求,并發(fā)送至代理服務(wù)器,代理服務(wù)器根據(jù)業(yè)務(wù)請求獲取目的服務(wù)器的實例,并根據(jù)預(yù)設(shè)的服務(wù)治理策略對業(yè)務(wù)請求進行對應(yīng)的處理,采用本實用新型代理服務(wù)器能夠在軟件版本升級時,可以只需要對代理服務(wù)器進行升級,因此能夠減少升級過程中的工作量和風(fēng)險。
進一步地,參照圖3,圖3為本實用新型業(yè)務(wù)信息處理系統(tǒng)第二實施例的系統(tǒng)架構(gòu)示意圖。
基于本實用新型業(yè)務(wù)信息處理系統(tǒng)第一實施例,該系統(tǒng)還包括:與所述注冊中心連接的目的服務(wù)器300,目的服務(wù)器300還與配置中心連接;
所述目的服務(wù)器300用于從配置中心獲取配置信息,并從所述安全中心獲取安全策略;
所述目的服務(wù)器300還用于根據(jù)所述配置信息和安全策略將自身的地址和端口注冊至所述注冊中心,并向所述注冊中心發(fā)送目的服務(wù)器的實例。
為使得業(yè)務(wù)信息處理系統(tǒng)能夠執(zhí)行,在系統(tǒng)運行時,目的服務(wù)器300需要從配置中心獲取配置信息,并從所述安全中心獲取安全策略,然后根據(jù)獲取到的配置信息和安全策略將自己的地址和端口注冊至所述注冊中心,然后將目的服務(wù)器自身的實例發(fā)送至注冊中心。其中,配置中心也可以設(shè)置在代理服務(wù)器中,當(dāng)然也可以設(shè)置在其他終端/網(wǎng)絡(luò)中。
具體地,該業(yè)務(wù)信息處理系統(tǒng)的邏輯架構(gòu)可以如圖4所示。
OSP服務(wù)端,即目的服務(wù)器,服務(wù)端包含服務(wù)容器和服務(wù)本身。服務(wù)容器提供服務(wù)本身基本以業(yè)務(wù)邏輯為主,由業(yè)務(wù)團隊實現(xiàn)。
在服務(wù)啟動時,每個服務(wù)首先從配置中心獲取配置,從安全中心獲取安全策略,然后將自己的地址和端口注冊到服務(wù)注冊中心。
OSP Proxy,即代理服務(wù)器,服務(wù)客戶端將請求發(fā)送至代理服務(wù)器中OSP代理進程,服務(wù)代理層從注冊中心獲取當(dāng)前服務(wù)提供方的實例(并保持實時更新),根據(jù)服務(wù)治理邏輯對請求進行處理(轉(zhuǎn)發(fā)、降級或拒絕),服務(wù)治理的實現(xiàn)保持對客戶端和服務(wù)端完全透明。
OSP Client,即客戶端,由于客戶端是業(yè)務(wù)應(yīng)用的一部分,為避免框架代碼改動對業(yè)務(wù)方的影響,服務(wù)客戶端遵循的首要設(shè)計原則是單純簡單。除了必須的功能如通信協(xié)議、序列化、代理層容錯以及監(jiān)控埋點外,其他高級功能全部在代理層實現(xiàn)。從服務(wù)開發(fā)者的角度,客戶端SDK由osp-idlc自動生成,無額外工作;從服務(wù)使用者的角度,只需將服務(wù)客戶端SDK作為依賴引入,即可對服務(wù)進行調(diào)用,極少額外的工作。
進一步地,代理服務(wù)器200包括本地代理服務(wù)器210和備份代理服務(wù)器220,所述本地代理服務(wù)器210包括第一連接模塊和第一處理芯片,所述備份代理服務(wù)器220包括第二連接模塊和第二處理芯片,
所述客戶端100分別與所述第一連接模塊和所述第二連接模塊連接,所述第一連接模塊和第二連接模塊還分別與所述目的服務(wù)器300連接;
在本地代理服務(wù)器210正常運行時,所述客戶端100發(fā)送將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述第一連接模塊,所述第一連接模塊與所述第一處理芯片連接,所述第一連接模塊將所述業(yè)務(wù)請求發(fā)送至所述第一處理芯片,所述第一處理芯片根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器的實例;
在本地代理服務(wù)器210發(fā)生故障時,所述客戶端100發(fā)送將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至所述第二連接模塊,所述第二連接模塊與所述第二處理芯片連接,所述第二連接模塊將所述業(yè)務(wù)請求發(fā)送至所述第二處理芯片,所述第二處理芯片根據(jù)所述業(yè)務(wù)請求從所述注冊中心獲取目的服務(wù)器300的實例。本實施例中,代理服務(wù)器200包括兩種類型的代理服務(wù)器:本地代理服務(wù)器210和備份代理服務(wù)器220,服務(wù)器300從配置中心獲取配置信息,并本地代理服務(wù)器210和備份代理服務(wù)器220從安全中心獲取安全策略,在本地代理服務(wù)器210正常運行時,所述本地代理服務(wù)器210根據(jù)所述業(yè)務(wù)請求和獲得的所述實例進行對應(yīng)的處理;在本地代理服務(wù)器210發(fā)生故障時,所述備份代理服務(wù)器220根據(jù)所述業(yè)務(wù)請求和獲得的所述實例進行對應(yīng)的處理。
具體地,該系統(tǒng)物理部署圖可以如圖5所示。
OSP服務(wù)端,即目的服務(wù)器,基于無狀態(tài)服務(wù)的理念,可以無限擴展,也可以通過代理層的錯誤感知和負載均衡等功能自動摘出有問題的目的服務(wù)器;開發(fā)團隊無需做特殊處理,也不必部署負載均衡器。
OSP Proxy,即代理服務(wù)器,代理層由本地Local Proxy和集中式備份集群Remote Proxy組成,本地代理以獨立進程方式部署在每一臺調(diào)用者服務(wù)器上,只為本機調(diào)用者服務(wù);集中式備份集群每個機房部署一個,由集群技術(shù)LVS提供負載均衡,為本地代理提供容錯能力。在本地代理發(fā)生故障時,調(diào)用方切換到使用集中式備份集群完成服務(wù)調(diào)用。代理層從注冊中心獲取各機房的服務(wù)實例信息,并優(yōu)先選擇使用本機房服務(wù)實例,在本機房無可用實例時選擇使用其他機房實例。
OSP Client,即客戶端,客戶端內(nèi)嵌在業(yè)務(wù)應(yīng)用里,通過SDK向使用者提供調(diào)用接口和對象模型;從使用者的角度,只需進行調(diào)用??蛻舳瞬慌c配置中心產(chǎn)生聯(lián)系,但會與Salus連接,并將監(jiān)控信息上報到監(jiān)控報警系統(tǒng)Mercury。配置中心集中部署在一個機房內(nèi),在遠程機房可用選擇部署ZK觀察集群,以提高性能和降低網(wǎng)絡(luò)影響。Mercury集中部署在一個機房內(nèi)。
參照圖6,圖6為本實用新型業(yè)務(wù)信息處理的流程示意圖。
在本實施例中,該業(yè)務(wù)信息處理方法包括:
步驟S10,客戶端發(fā)送用戶觸發(fā)的業(yè)務(wù)請求至代理服務(wù)器;
步驟S20,所述代理服務(wù)器根據(jù)所述業(yè)務(wù)請求從注冊中心獲取目的服務(wù)器的實例;
步驟S30,所述代理服務(wù)器根據(jù)所述代理服務(wù)器中預(yù)設(shè)服務(wù)治理策略和所述實例對所述業(yè)務(wù)請求進行對應(yīng)的處理。
傳統(tǒng)C/S結(jié)構(gòu)中,即客戶端和目的服務(wù)器結(jié)構(gòu)中,客戶端非常臃腫,客戶端需要處理協(xié)議的序列化和反序列化,需要處理路由算法、隔離、熔斷等服務(wù)治理功能,即服務(wù)治理策略,本實用新型中將傳統(tǒng)客戶端中的服務(wù)治理策略抽離出來,設(shè)置至代理服務(wù)器中,客戶端則變成瘦客戶端。
本實施例中代理服務(wù)器,即Proxy,完全跟業(yè)務(wù)代碼無關(guān),是單獨的Java進程,單獨升級,升級時無需客戶端進行任何處理。
在用戶需要進行業(yè)務(wù)處理時,通過客戶端觸發(fā)對應(yīng)的功能,客戶端根據(jù)用戶操作產(chǎn)生對應(yīng)的業(yè)務(wù)請求,并將用戶觸發(fā)的業(yè)務(wù)請求發(fā)送至代理服務(wù)器。代理服務(wù)器接收到業(yè)務(wù)請求,則根據(jù)業(yè)務(wù)請求從注冊中心獲取目的服務(wù)器的實例,目的服務(wù)器即對應(yīng)的服務(wù)提供方,然后代理服務(wù)器根據(jù)代理服務(wù)器中預(yù)設(shè)服務(wù)治理策略和所述實例對所述業(yè)務(wù)請求進行對應(yīng)的處理,本實施例中獲取目的服務(wù)器的所有實例,以保證業(yè)務(wù)的進行。其中對所述業(yè)務(wù)請求進行對應(yīng)的處理包括對所述業(yè)務(wù)請求進行轉(zhuǎn)發(fā)、降級或拒絕。如將業(yè)務(wù)請求發(fā)送至目的服務(wù)器,則目的服務(wù)器根據(jù)接收到的業(yè)務(wù)請求反饋對應(yīng)的內(nèi)容至是代理服務(wù)器,由代理服務(wù)器發(fā)送至客戶端。
處理流程時序圖可以如圖2所示:
客戶端OSP Client進行序列化、監(jiān)控埋點、安全簽名、代理選擇和異步發(fā)送。其中序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內(nèi)容進行流化??梢詫α骰蟮膶ο筮M行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進行讀寫操作時所引發(fā)的問題。監(jiān)控埋點就是監(jiān)控用戶操作的每一步。安全簽名是對發(fā)送的信息進行加密。代理選擇是選擇代理服務(wù)器。異步發(fā)送是一種通訊方式,異步雙方不需要共同的時鐘,也就是接收方不知道發(fā)送方什么時候發(fā)送,所以在發(fā)送的信息中就要有提示接收方開始接收的信息,如開始位,同時在結(jié)束時有停止位。
代理服務(wù)器OSP Proxy進行反序列頭信息、降級熔斷、降級處理、服務(wù)路由、監(jiān)控埋點和異步發(fā)送。其中反序列頭信息就是將客戶端發(fā)送的信息中的序列頭進行解析。降級熔斷是由于某些原因使得服務(wù)出現(xiàn)了過載現(xiàn)象,為防止造成整個系統(tǒng)故障,從而采用的一種保護措施,所以熔斷亦稱為過載保護。降級處理整體資源快不夠了,先將某些服務(wù)先關(guān)掉,待整體資源足夠時,再開啟回來關(guān)掉的服務(wù)。服務(wù)路由就是可以自定義路由,通過定義路由將業(yè)務(wù)信息發(fā)送至指定的目的服務(wù)器。代理服務(wù)器向獲取服務(wù)實例列表及服務(wù)配置,然后根據(jù)接收到的業(yè)務(wù)信息、服務(wù)實例和服務(wù)配置進行對應(yīng)的處理。
目的服務(wù)器OSP應(yīng)用則先進行反序列頭信息、限流隔離、監(jiān)控埋點、安全校驗對接收到的業(yè)務(wù)信息進行驗證,然后調(diào)用服務(wù)對通過驗證的業(yè)務(wù)信息進行處理,然后進行返回數(shù)據(jù)、序列化返回數(shù)據(jù)和監(jiān)控埋點。
其中,所述注冊中心為基于分布式應(yīng)用程序協(xié)調(diào)服務(wù)的注冊中心。
基于Zookeeper的服務(wù)注冊中心,可以實現(xiàn)服務(wù)的地址感知,錯誤感知,平滑升級,高可伸縮性,多版本支持。
進一步地,代理服務(wù)器根據(jù)所述業(yè)務(wù)請求從注冊中心獲取目的服務(wù)器的實例的步驟包括:
代理服務(wù)器對所述業(yè)務(wù)請求進行解析,獲得目的服務(wù)器的標識;
代理服務(wù)器根據(jù)目的服務(wù)器的標識從注冊中心獲取目的服務(wù)器的實例。
具體地,代理服務(wù)器在接收到業(yè)務(wù)請求時,對接收到的業(yè)務(wù)請求進行解析,獲得客戶端所要訪問的目的服務(wù)器的標識,目的服務(wù)器的標識至少包括目的服務(wù)器的地址或者名稱。然后代理服務(wù)器根據(jù)目的服務(wù)器的標識從注冊中心獲取目的服務(wù)器的實例,進一步地,保持實時更新目的服務(wù)器的實例。
需要特別說明的是,對比于傳統(tǒng)的負載平衡器LoadBalancer提供基本的負載均衡與HA(High Available,高可用性集群)能力,本實用新型Proxy提供了豐富的服務(wù)治理功能包括:
豐富的路由自定義功能:支持條件化的路由定義,負載均衡,權(quán)重調(diào)整,支持灰度發(fā)布,AB測試,黑白名單,跨機房路由等;
高可用與自我保護的機制:超時控制、重試、限流、熔斷、降級、隔離;
服務(wù)監(jiān)控,性能監(jiān)控,故障快速定位支持;
服務(wù)配置:支持服務(wù)配置集中管理,動態(tài)下發(fā);
服務(wù)安全:支持服務(wù)認證、授權(quán)、簽名、加密傳輸?shù)男枨蟆?/p>
本實用新型業(yè)務(wù)信息處理系統(tǒng)包括:代理服務(wù)器,以及與所述代理服務(wù)器連接的客戶端,所述客戶端用于發(fā)送的業(yè)務(wù)請求至代理服務(wù)器;所述代理服務(wù)器用于根據(jù)所述業(yè)務(wù)請求從注冊中心獲取目的服務(wù)器的實例;所述代理服務(wù)器還用于根據(jù)所述代理服務(wù)器中預(yù)設(shè)服務(wù)治理策略和所述實例對所述業(yè)務(wù)請求進行對應(yīng)的處理。通過上述方式,本實用新型中在業(yè)務(wù)信息處理系統(tǒng)中添加代理服務(wù)器,將傳統(tǒng)客戶端中服務(wù)治理策略抽離,設(shè)置在代理服務(wù)器中,客戶端只產(chǎn)生對應(yīng)的業(yè)務(wù)請求,并發(fā)送至代理服務(wù)器,代理服務(wù)器根據(jù)業(yè)務(wù)請求獲取目的服務(wù)器的實例,并根據(jù)預(yù)設(shè)的服務(wù)治理策略對業(yè)務(wù)請求進行對應(yīng)的處理,采用本實用新型代理服務(wù)器能夠在軟件版本升級時,可以只需要對代理服務(wù)器進行升級,因此能夠減少升級過程中的工作量和風(fēng)險。
進一步地,基于本實用新型上述實施例,業(yè)務(wù)信息處理流程還包括:
所述目的服務(wù)器從配置中心獲取配置信息,并從所述安全中心獲取安全策略;
所述目的服務(wù)器根據(jù)所述配置信息和安全策略將自己的地址和端口注冊至所述注冊中心,并向所述注冊中心發(fā)送目的服務(wù)器的實例。
為使得業(yè)務(wù)信息處理系統(tǒng)能夠執(zhí)行,在系統(tǒng)運行時,目的服務(wù)器需要從配置中心獲取配置信息,并從所述安全中心獲取安全策略,然后根據(jù)獲取到的配置信息和安全策略將自己的地址和端口注冊至所述注冊中心,然后將目的服務(wù)器自身的實例發(fā)送至注冊中心。其中,配置中心也可以設(shè)置在代理服務(wù)器中,當(dāng)然也可以設(shè)置在其他終端/網(wǎng)絡(luò)中。
具體地,該業(yè)務(wù)信息處理系統(tǒng)的邏輯架構(gòu)可以如圖4所示。
OSP服務(wù)端,即目的服務(wù)器,服務(wù)端包含服務(wù)容器和服務(wù)本身。服務(wù)容器提供服務(wù)本身基本以業(yè)務(wù)邏輯為主,由業(yè)務(wù)團隊實現(xiàn)。
在服務(wù)啟動時,每個服務(wù)首先從配置中心獲取配置,從安全中心獲取安全策略,然后將自己的地址和端口注冊到服務(wù)注冊中心。
OSP Proxy,即代理服務(wù)器,服務(wù)客戶端將請求發(fā)送至代理服務(wù)器中OSP代理進程,服務(wù)代理層從注冊中心獲取當(dāng)前服務(wù)提供方的實例(并保持實時更新),根據(jù)服務(wù)治理邏輯對請求進行處理(轉(zhuǎn)發(fā)、降級或拒絕),服務(wù)治理的實現(xiàn)保持對客戶端和服務(wù)端完全透明。
OSP Client,即客戶端,由于客戶端是業(yè)務(wù)應(yīng)用的一部分,為避免框架代碼改動對業(yè)務(wù)方的影響,服務(wù)客戶端遵循的首要設(shè)計原則是單純簡單。除了必須的功能如通信協(xié)議、序列化、代理層容錯以及監(jiān)控埋點外,其他高級功能全部在代理層實現(xiàn)。從服務(wù)開發(fā)者的角度,客戶端SDK由osp-idlc自動生成,無額外工作;從服務(wù)使用者的角度,只需將服務(wù)客戶端SDK作為依賴引入,即可對服務(wù)進行調(diào)用,極少額外的工作。
進一步地,代理服務(wù)器包括本地代理服務(wù)器和備份代理服務(wù)器,所述客戶端分別與所述本地代理服務(wù)器和備份代理服務(wù)器連接,所述本地代理服務(wù)器和備份代理服務(wù)器分別與所述目的服務(wù)器連接;在本地代理服務(wù)器正常運行時,所述本地代理服務(wù)器根據(jù)所述業(yè)務(wù)請求和獲得的所述實例進行對應(yīng)的處理;在本地代理服務(wù)器發(fā)生故障時,所述備份代理服務(wù)器根據(jù)所述業(yè)務(wù)請求和獲得的所述實例進行對應(yīng)的處理。
本實施例中,代理服務(wù)器包括兩種類型的代理服務(wù)器:本地代理服務(wù)器和備份代理服務(wù)器,目的服務(wù)器從配置中心獲取配置信息,并本地代理服務(wù)器和備份代理服務(wù)器從安全中心獲取安全策略,在本地代理服務(wù)器正常運行時,所述本地代理服務(wù)器根據(jù)所述業(yè)務(wù)請求和獲得的所述實例進行對應(yīng)的處理;在本地代理服務(wù)器發(fā)生故障時,所述備份代理服務(wù)器根據(jù)所述業(yè)務(wù)請求和獲得的所述實例進行對應(yīng)的處理。
具體地,該系統(tǒng)物理部署圖可以如圖5所示。
OSP服務(wù)端,即目的服務(wù)器,基于無狀態(tài)服務(wù)的理念,可以無限擴展,也可以通過代理層的錯誤感知和負載均衡等功能自動摘出有問題的目的服務(wù)器;開發(fā)團隊無需做特殊處理,也不必部署負載均衡器。
OSP Proxy,即代理服務(wù)器,代理層由本地Local Proxy和集中式備份集群Remote Proxy組成,本地代理以獨立進程方式部署在每一臺調(diào)用者服務(wù)器上,只為本機調(diào)用者服務(wù);集中式備份集群每個機房部署一個,由集群技術(shù)LVS提供負載均衡,為本地代理提供容錯能力。在本地代理發(fā)生故障時,調(diào)用方切換到使用集中式備份集群完成服務(wù)調(diào)用。代理層從注冊中心獲取各機房的服務(wù)實例信息,并優(yōu)先選擇使用本機房服務(wù)實例,在本機房無可用實例時選擇使用其他機房實例。
OSP Client,即客戶端,客戶端內(nèi)嵌在業(yè)務(wù)應(yīng)用里,通過SDK向使用者提供調(diào)用接口和對象模型;從使用者的角度,只需進行調(diào)用。客戶端不與配置中心產(chǎn)生聯(lián)系,但會與Salus連接,并將監(jiān)控信息上報到監(jiān)控報警系統(tǒng)Mercury。配置中心集中部署在一個機房內(nèi),在遠程機房可用選擇部署ZK觀察集群,以提高性能和降低網(wǎng)絡(luò)影響。Mercury集中部署在一個機房內(nèi)。
以上僅為本實用新型的優(yōu)選實施例,并非因此限制本實用新型的專利范圍,凡是利用本實用新型說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本實用新型的專利保護范圍內(nèi)。