xPort V1.0 - 基于“Service Mesh”下一代分布式微服務框架
繼發(fā)布面向量化金融的C++分布式xRPC通訊框架后,數(shù)字動能再發(fā)布用于分布式服務框架的智能代理xPort v1.0。xPort智能代理完全由C++編寫,支持數(shù)字動能的xRPC通訊協(xié)議,主要用于實現(xiàn)多應用服務在分布式服務框架(如Service Mesh服務網(wǎng)格)的智能調(diào)度和管理功能。xPort v1.0智能代理的發(fā)布,標志著數(shù)字動能將掌握下一代分布式微服務架構-Service Mesh的核心開發(fā)技術。利用最新的分布式微服務架構,數(shù)字動能可具備搭建多元異構業(yè)務中臺、實現(xiàn)復雜業(yè)務解耦和跨業(yè)務間通訊、滿足多業(yè)務場景交付的能力。
一、xPort是什么?
智能代理,也叫Side Car,既是新一代分布式微服務框架-Service Mesh服務網(wǎng)格架構的基石構件,也是Service Mesh數(shù)據(jù)平面和控制平面的核心管理組件。
ISTO的Service Mesh通用模型
xPort是數(shù)字動能的Service Mesh核心組件“智能代理”(也叫Side Car)。xPort以分布式通訊框架xRPC為主要通訊協(xié)議,它主要負責Service Mesh服務網(wǎng)格節(jié)點間的數(shù)據(jù)平臺與控制平面的管理。服務網(wǎng)格-Service Mesh被視為下一代基于分布式思路的微服務架構,它提出了利用全新的分布式、輕量級設計的Sidecar(以下稱智能代理)部署模式替代原來龐大的層級式、堆疊式的集中服務框架。應用服務間的數(shù)據(jù)通訊將由智能代理接管,不再需要關注通信和控制細節(jié),信息可在服務網(wǎng)格間高速通訊。而對于系統(tǒng)級別的功能調(diào)用,應用服務單元也無需再去關心如何調(diào)度,完全由智能代理負責數(shù)據(jù)平臺和控制平面的協(xié)調(diào)。這種改進將把業(yè)務代碼和技術實現(xiàn)進一步解耦,技術架構的變動對業(yè)務代碼的影響也進一步減少。利用智能代理進行應用服務間信息通訊的方式是Service mesh服務網(wǎng)格設計的核心思路,數(shù)字動能提出的Direct Exchange Mesh服務網(wǎng)格架構對比ISTO經(jīng)典Service Mesh模型更輕量級,主要針對金融行業(yè)的大數(shù)據(jù)傳輸、復雜計算和高速傳輸需求進行了場景針對設計。其智能代理xPort完全自主研發(fā),采用大量創(chuàng)新設計。
數(shù)字動能的Service Mesh 改進模型
二、智能代理xPort v1.0有什么特點?
1、智能代理通訊不再經(jīng)過通用模型的控制面板而是直接數(shù)據(jù)交換模式
Service Mesh通用模型中,智能節(jié)點(Side Car)區(qū)分了數(shù)據(jù)平面和控制平面。但在面向應用服務,以松耦合和高速通訊為首要目標的Direct Exchange Mesh服務網(wǎng)格設計中,數(shù)字動能利用xPort智能代理大膽把控制平面的部分功能下沉至智能代理內(nèi)部,同時把硬件資源的調(diào)度權交回給IaaS層,讓整個分布式架構設計更輕量級,以智能節(jié)點直接點對點方式進行數(shù)據(jù)交換(Direct Exchange Model)。在原Service Mesh通用模型中,應用服務的微服務化看似松耦合,實際上由于控制面板的集中通訊設計,反而加重了網(wǎng)絡間節(jié)點傳輸?shù)膲毫?。?shù)字動能的xPort智能代理大膽取舍了原來控制面板的功能,改為智能代理間完全點對點直接通訊,從而避免過多的節(jié)點需要同時經(jīng)過控制平面通訊所產(chǎn)生的原生架構性能瓶頸。
2、智能代理xPort允許應用(服務)通過進程內(nèi)調(diào)用的方式實現(xiàn)高速點對點通訊
普通Service Mesh的SideCar只是做了消息轉(zhuǎn)發(fā),xPort在滿足該功能的前提下,可以更好的滿足金融業(yè)務(如投研業(yè)務)間大量數(shù)據(jù)和傳輸。智能代理xPort直接把應用服務加載到自身的進程內(nèi), 這樣應用服務和智能代理xPort的通訊無需再通過網(wǎng)絡避免了頻繁通訊產(chǎn)生的網(wǎng)絡高負載,而是直接通過內(nèi)存交互。如下圖,應用服務A和應用服務B都是加載在xPortA的,通訊流程為:應用服務A -> xPortA -> 應用服務B。即使兩個應用服務加載在不同的xPort,也只需要發(fā)起一次網(wǎng)絡調(diào)用即可。另外,不同于原來一對一的智能代理->應用服務的單一結(jié)構,xPort允許多個應用服務同時在進程內(nèi)加載。如圖,應用服務A,B,C可同時通過加載在xPortA中。
利用xPort實現(xiàn)進程內(nèi)多應用服務調(diào)用
3、智能代理xPort內(nèi)置服務發(fā)現(xiàn)功能,降低對注冊發(fā)現(xiàn)服務頻繁訪問的網(wǎng)絡消耗
通用Service Mesh服務網(wǎng)格模型對服務注冊中心的依賴度很高,應用服務通過智能代理必須和服務注冊中心保持連接,以確保服務注冊中心能觀測到各個節(jié)點的狀態(tài)變化。這種方式在大規(guī)模的分布式應用中容易產(chǎn)生單點問題,隨著應用服務節(jié)點的數(shù)量增加,服務注冊中心的壓力會隨之變大,一旦服務注冊中心發(fā)生故障,所有的應用服務都將被掛起無法工作。xPort為避免此問題,在智能代理中內(nèi)置了服務發(fā)現(xiàn)功能。當應用服務把消息傳遞給xPort后,智能代理會先查詢內(nèi)置的本地路由表,查看是否有目標應用服務的地址,如果沒有才會從服務注冊中心獲取目標服務(應用)的地址。對于首次應用服務注冊,只需要通過智能代理向服務注冊中心做一次性注冊,后面的所有調(diào)用或應用服務目標的狀態(tài)無需再通過服務注冊中心。如上圖的服務(應用)A發(fā)送消息給應用服務D,當xPortA和xPortB通過服務注冊中心建立連接后, xPortA和xPortB會開始自動相互各自的應用服務信息,不再需要通過服務注冊中心。
4、xPort具有帶消息隊列的點對點通訊功能
在通用Service Mesh架構中,應用服務和智能代理、智能代理自身相互之間均是點對點通訊。點對點通訊在獲得高性能的同時,卻要求被調(diào)用方必須保持在線。在分布式場景中,應用服務可能會出現(xiàn)短時間(或極短時間)的通訊中斷現(xiàn)象。xPort智能代理將會允許這些臨時中斷現(xiàn)象的發(fā)生,并將其視為信息在節(jié)點間傳輸?shù)挠行芷?。xPort通過改進并融入ZeroMQ的技術達到此目的。應用服務把消息傳給xPort之后,會在本地創(chuàng)建該消息目標應用服務的隊列,然后再由該應用服務把消息發(fā)送給目標應用服務;如果目標應用服務不在線,那么在消息的生命周期內(nèi)會存放在這個隊列里面,待目標應用服務上線,該隊列會繼續(xù)完成消息傳輸。因此,智能代理間的消息傳輸只要在其生命周期內(nèi)被處理即可,并不要求各個智能代理節(jié)點必須立即響應。與原來傳統(tǒng)點對點的即時信息通訊方式不一樣,xPort在與應用服務和智能代理間的相互調(diào)用,并不認為只要對方不在線,消息傳輸就是失敗的,而是允許消息只要還在生命周期內(nèi),都可以隊列方式進入等待響應狀態(tài)。在點對點通訊效率提升方面,xPort同時借鑒了RabbitMQ一個連接可以創(chuàng)建多個通道(channel)的思路,大大減少了xPort之間的連接數(shù)量。xPort內(nèi)置的節(jié)點智能連接算法,可讓xPort智能代理會根據(jù)服務節(jié)點間線路情況自動增加連接,在空閑時自動降低連接數(shù)量。
5、xPort同時支持多線程編程模型和Actor編程模型
通用Service Mesh的架構中,智能代理(Side Car)只作為消息代理所用,xPort在實現(xiàn)消息代理功能的同時,允許應用服務加載到自身進程,使其具備對應用服務的調(diào)度功能。為滿足高并發(fā)的使用場景,xPort進一步提供了線程池和Actor兩種并發(fā)模型。線程池并發(fā)模型的多個線程間交互是通過共享內(nèi)存的方式進行的,多個線程對共享進行操作,達到同步消息的目的。這種方式極大提升響應速度,降低延時,但多線程編程模型難以保證應用運行的正確性。該問題需要用到鎖等機制來解決,這將會影響性能,并且容易導致死鎖等問題。因此,xPort同時提供了Actor并發(fā)模型。Actor不是通過共享內(nèi)存來通信,而是通過通信來共享內(nèi)存的。Actor的狀態(tài)由自身來進行維護,其他線程不能直接對Actor發(fā)起調(diào)用,而是要把調(diào)用的消息發(fā)送給Actor,由Actor來執(zhí)行操作,這樣就可以保證Actor內(nèi)部的數(shù)據(jù)只有由它自身進行改變。這種編程模型大大的降低多線程編程的復雜度,容易編寫出高并發(fā)的應用程序。xPort的使用對象可以根據(jù)業(yè)務選擇不同的編程模型即可。
三、xPort可以解決什么問題?
xPort作為數(shù)字動能分布式微服務框架DX Mesh的核心組件,主要解決各個應用服務間的數(shù)據(jù)、通訊和控制問題,為多業(yè)務場景設計,復雜系統(tǒng)構建和中臺業(yè)務架構方案提供了全新的實現(xiàn)思路。利用智能代理xPort實現(xiàn)的業(yè)務間互聯(lián)互通,將對大型業(yè)務系統(tǒng)構建和擁有復雜業(yè)務邏輯的核心系統(tǒng)研發(fā)帶來革命性的改變:
1、業(yè)務架構簡單化 – 復雜業(yè)務結(jié)構通過xPort接入方式進行解耦,快速實現(xiàn)應用模塊化。
2、以組織形態(tài)看待業(yè)務,而不是進行龐大臃腫的大架構設計。
3、通過智能代理,業(yè)務間不再考慮統(tǒng)一設計,而是分立設計,甚至進行動態(tài)業(yè)務邏輯設計,彼此相互聯(lián)系又各自獨立。
4、智能代理所形成的分布式業(yè)務群可實現(xiàn)快速部署,快速遷移。
5、通過智能代理,可實現(xiàn)異構開發(fā)語言間的相互通訊。
6、系統(tǒng)從集中式設計變成網(wǎng)絡化,節(jié)點化的分布式設計,可無限延申業(yè)務體系。
7、智能代理的分布式接入架構對傳統(tǒng)的PaaS集中接入式架構發(fā)起了挑戰(zhàn),但成本更低,新業(yè)務接入迅速,舊業(yè)務系統(tǒng)無需推倒重來。
- 蜜度索驥:以跨模態(tài)檢索技術助力“企宣”向上生長
- 馬斯克腦機接口公司Neuralink再陷調(diào)查風波:SEC‘重新啟動’調(diào)查,科技巨頭面臨新挑戰(zhàn)
- 工信部成立新標準化技術委員會,揭開人工智能標準化新篇章:未來已來,智標引領未來發(fā)展
- 深圳龍崗粵科人工智能創(chuàng)投基金成立:10億大手筆揭開人工智能新篇章!
- 極米科技子公司喜獲汽車主機廠開發(fā)定點,嶄新篇章開啟,未來市場潛力無限!
- 未來之源:清潔氫引領全球電力行業(yè)綠色轉(zhuǎn)型至2035年
- 溫寧克接棒:ASML前CEO出任喜力新篇章監(jiān)事會主席,釀造啤酒業(yè)的未來新視角
- 國芯科技在汽車電子MCU領域掀起芯片革命:系列化產(chǎn)品引領創(chuàng)新潮流
- 生益科技:全球第二,引領柔性電子產(chǎn)業(yè)的新篇章
- 馬斯克宣布SpaceX總部遷至得州“星際基地市”:揭秘火星計劃新篇章,創(chuàng)新之翼飛向未來!
- 科創(chuàng)板收盤:科創(chuàng)50指數(shù)跌破1000點,存儲芯片板塊逆勢領漲,市場暗藏新機遇!
免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。