service mesh與api gateway的關鍵特徵能夠幫助咱們更好的區分二者。安全
api gateway的核心目標是將微服務做爲託管的api暴露給外部系統,咱們在api gateway層開發api或是邊界服務以提供特定的業務功能。網絡
api/邊界服務調用下游微服務,幷包含業務邏輯的多個服務下游服務組合。架構
api/邊界服務同時須要以彈性的方式調用下游服務,並應用多種穩定性相關模塊,例如斷路器、超時、負載均衡/故障轉移等等。大多數api gateway解決方案均內置以上模塊或功能。負載均衡
api gateway每每同時包含內置的服務發現、分析(指標、監控、分佈式日誌、分佈式跟蹤)以及安全。分佈式
api gateway常與api管理生態中的一些其餘組件協做,例如api商店、api分發門戶。ide
那麼再看看service mesh有何不一樣。微服務
咱們能夠認爲service mesh是網絡通訊基礎設施,它容許咱們從服務代碼中剝離大部分應用網絡功能。日誌
在service mesh下,咱們處理service-to-service通訊時,不須要刻意在服務代碼中實現包括斷路器、超時等彈性通訊功能特性。一樣的,service mesh提供服務發現、監控等功能。blog
api gateway和service mesh最大的不一樣在於,api gateway是暴露api/邊界服務的關鍵部分,而service mesh僅僅是一種服務間通訊的基礎設施,不包含任何業務概念。
上圖說明了api gateway和service mesh的所處。除了上面提到的不一樣點,api gateway和service mesh之間存在着不少重疊特性,但須要特別注意的是二者所針對的要求和需求不一樣。
圖中service mesh以sidecar形勢,與其餘服務一塊兒部署,獨立於服務的業務功能。
而api gateway託管了全部的api服務,屬於業務功能解決方案的一部分。api gateway可能會包含服務間通訊的支持,但並不影響api gateway經過service mesh來調用下游服務。
閱讀更多
開源PaaS Rainbond原生支持Service Mesh服務網格,用非入侵、透明化的方式解決服務發現和註冊、彈性伸縮與負載均衡、容錯處理(斷路器與限流)、監控與警報、數據存儲與共享、日誌分析等等微服務架構難題,提供開箱即用、簡單強大的微服務體驗。