作者:閒魚技術-柬超
背景:
在阿里服務端開發以Java爲主的大背景下,其他異構語言業務如何調用現有Java服務,如何與集團中間件打通,就成爲使用非Java語言團隊必須要解決的首要問題。
已有方案問題:
在ServiceMesh方案成熟之前,我們採用:通過Dart C/C++擴展方式調用各中間件客戶端SO庫(類JNI)。該方案在業務初期很好的解決了Dart服務端生態建設問題。但是該方案還存在以下幾個問題:
- 運維耦合度高。業務代碼和客戶端SO庫代碼打包在一起,運行在同一進程,一旦微服務框架需要升級,業務代碼也需要維護和重啓。
- 複雜性:進程內的多個語言環境,跨語言數據表示和傳輸等問題,都會增加系統的複雜性,降低原有服務的性能。
- 接入成本高
- 新功能滯後
ServiceMesh方案:
由於現有方案存在的一些問題,我們轉向ServiceMesh尋找解決問題的思