1月6日,信也科技正式對外推出Radar微服務框架,此微服務組件如其名稱一樣,像雷達般迅速,可有效提高架構靈活性與服務可治理性。
近年來,微服務框架在各業務場景中已大量落地。信也科技在對內部系統進行微服務改造的過程中,摸索出了一條獨具特色的道路。
在進行服務治理的初期,微服務的整體狀況是Spring Boot應用之間相互訪問,是通過域名進行遠程調用,中間基于Nginx轉發。隨著業務的增長,這種方式在系統性能、運維效率與服務治理方面的弊端越來越顯著,信也科技需要一套更加完善的微服務框架來適應業務與技術的增長。
2019年,信也科技曾考慮過市場上其他的微服務方案。例如,曾嘗試使用SOFA改造信也科技的存量項目,但存在代碼改動大、故障多等問題,在接入數十個應用后最終決定終止。此后,在調研了Service Mesh等業界微服務相關資料的情況下,經過反復的方案對比與權衡,信也科技基礎組件的架構師另辟蹊徑,自主研發了一款輕量級、0成本接入的微服務框架--Radar。
作為信也科技自主研發的微服務框架,Radar能兼容包括SOFA在內的存量系統,在無需修改代碼的情況下,提供注冊發現、熔斷限流、服務路由、拓撲關系可視化展示等高級服務治理功能;在現有應用的改造過程中,對服務上下游的升級與接入順序沒有強制要求;同時為確保系統升級風險完全可控提供了完善的回退機制。
Radar整體架構示意圖
據了解,Radar是通過在消費方和提供方之間引入“攔截器”的方式來提供微服務的相關能力。具體實現步驟如下:
第一,服務提供方在啟動時,會將當前應用的域名、IP和端口等信息向注冊中心注冊。注冊成功后,會定時向注冊中心發送心跳來保活。
第二,當消費方在發起請求時,通過攔截消費方的請求,將域名替換成IP和端口,直接調用提供方。如果提供方未注冊到注冊中心,此時還是采用傳統的域名方式調用。
第三,當服務提供方收到請求時,攔截器會攔截入口請求,可做參數透傳等功能。
第四,當服務提供方信息發生變更時,注冊中心會將提供方的信息主動推送到消費方。
同樣使用攔截器,相比Service Mesh,Radar提供了進程內的流量控制,避免性能損失。此外,Radar基于Java語言開發,能保障技術棧的穩定性與維護能力的可靠性。接入 Radar只需引入框架依賴,具有代碼改動小,風險低的優勢。
Radar具體包含以下五項功能:
第一,定制路由規則。Radar提供了靈活多樣且基于Header和Request的路由定制,用戶可通過控制臺即可便捷地配置并實時下發,無需應用重啟。
第二,構建拓撲關系。應用在發起調用時,攔截器會將當前的域名信息向下游透傳,當下游收到此請求時,會將上下游關系記錄下來,形成拓撲關系,方便查看應用之間的關系。
第三,透明監控埋點。應用發起調用時,攔截器會自動做監控埋點,一旦出現問題,可方便排查與定位。
第四,服務熔斷限流。在應用服務的提供方中,內置熔斷限流組件。當出現流量突增時,可通過控制臺設置,快速進行限流熔斷。
第五,生成Mock測試。在真實的測試環境中,由于鏈路較長、參數復雜,難以構造。當出現問題時,難以調試排查。通過接入Radar微服務框架的客戶端,會自動記錄HTTP請求的參數信息。當出現問題時,可通過后臺對某個接口進行重新調用,方便調試。
Radar除了能滿足生產環境所需的服務治理功能外,還能滿足測試工作對多環境的強烈需求。
傳統上,在多團隊并行開發的時候,往往會出現爭用測試環境的現象。一般的解決方法是在成本范圍內建設盡可能多的冗余的測試環境,但會面臨較明顯的資源浪費,代碼特性干擾,測試數據覆蓋等難題。通過Radar的注冊發現和流量管控功能,可以快速的虛擬出多個互相獨立的測試環境,用完后可以快速銷毀,從而消除測試環境少帶來的測試任務擁擠,測試代碼和數據互相干擾,和服務器浪費的現象。
基于Radar的多環境原理,接入Radar的應用會優先調用同一環境。如當前環境沒有部署實例,則會調用公共環境的Default實例,從而形成完整的環境調用。此種方式可保證用最少的應用實例構建完整的調用鏈路,理論上可創建無限多的子環境。目前基于Radar創建的測試環境中的應用實例已經大大超過生產環境的實例,極大方便了測試工作。
基于Radar的多環境原理
從2020年1月份MVP版本上線至今,Radar在信也科技已經接入了500多個應用,每天調用量達到千億次。Radar的落地效果也證明了該框架的價值:顯著提升了網絡性能,對比Nginx代理耗時平均降低了15%,最多可降低40%,網絡硬件設備負載降低了60%多;接入成本較低,應用接入Radar微服務組件相較于接入Sofa Stack,平均耗時由5個工作日降低到1個工作日,效率提升80%;降低發布風險,原生支持精細化流量管控,高效支持灰度測試,通過Radar灰度的應用,放量穩定性提升30%多。
信也科技基礎組件Radar團隊將不斷完善Radar的功能和推廣規范化,包括增加擴展點,允許用戶自定義特定功能,支持調用失敗重試,推廣契約優先的編程方式等。同時,Radar將在不久的將來開源至社區,助力行業提升微服務改造治理的能力。
2020年以來,信也科技自主研發的云計算平臺Stargate、數據庫管理解決方案——精衛平臺、智能機構資金管理平臺——魔方平臺均已成功上線,隨著Radar微服務框架的正式發布,展現了信也科技在技術平臺方面做出的努力與貢獻。未來,信也科技將持續在科技領域深耕,促進行業提高能效,與合作伙伴互融共贏。