這個要理解為什么做網關。簡單扼要來講,就是為了處理每個服務都要做的事情。你可以認為是切面變成了服務。
路由,協議轉換,鑒權認證,熔斷,限流。這些邏輯和你實際的業務代碼沒太大關系,但是每個業務服務都要搞一個,顯得很累贅重復。那怎么辦呢?
兩種解決思路。
一,使用gateway服務,所有的服務均接入和調用這個gateway,由gateway把這些通用問題處理了,再去請求實際的業務邏輯。gateway是關鍵節點,瓶頸節點。spring cloud gateway也是這樣。它連接了系統的所有方方面面,是個大管家。除了spring cloud gateway,其他的代表還有netty,kong,zuul等
docker的技術特性。?
?
圖侵刪
二,集成到本地,可以用sidecar,類似一個代理服務器。sidecar就是那種有拖斗的三輪摩托車,旁邊的那個人輔助給你觀察。下面是sidecar的架構。
gateway路由?
?
圖侵刪
啊不對,放錯了。應該是下面這個。
Spring特性??
圖侵刪
?
其實萬變不離其宗。首先,你確認有一些邏輯是通用的(鑒權,限流,路由),再是你提取了出來(變成了AOP切面邏輯),然后你把他寫成一個單獨的服務給這個服務用(sidecar),最后,你把這個服務給所有服務用(gateway)。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态