微服务网关的好处
微服務網關的概述
不同的微服務一般會有不同的網絡地址,而外部客戶端可能需要調用多個服務的接口才能完成一個業務需求,如果讓客戶端直接與各個微服務通信,會有以下的問題:
-
客戶端會多次請求不同的微服務,增加了客戶端的復雜性
-
存在跨域請求,在一定場景下處理相對復雜
-
認證復雜,每個服務都需要獨立認證
-
難以重構,隨著項目的迭代,可能需要重新劃分微服務。例如,可能將多個服務合并成一個或者將一個服務拆分成多個。如果客戶端直接與微服務通信,那么重構將會很難實施
-
某些微服務可能使用了防火墻 / 瀏覽器不友好的協議,直接訪問會有一定的困難
以上這些問題可以借助網關解決。
網關是介于客戶端和服務器端之間的中間層,所有的外部請求都會先經過 網關這一層。也就是說,API 的實現方面更多的考慮業務邏輯,而安全、性能、監控可以交由 網關來做,這樣既提高業務靈活性又不缺安全性,典型的架構圖如圖所示:
優點如下:
-
安全 ,只有網關系統對外進行暴露,微服務可以隱藏在內網,通過防火墻保護。
-
易于監控。可以在網關收集監控數據并將其推送到外部系統進行分析。
-
易于認證。可以在網關上進行認證,然后再將請求轉發到后端的微服務,而無須在每個微服務中進行認證。
-
減少了客戶端與各個微服務之間的交互次數
-
易于統一授權。
總結:微服務網關就是一個系統,通過暴露該微服務網關系統,方便我們進行相關的鑒權,安全控制,日志統一處理,易于監控的相關功能。
總結