廣義上的網(wǎng)關或者說物理級別的網(wǎng)關是指在網(wǎng)絡層上以實現(xiàn)網(wǎng)絡互連,是兩個高層協(xié)議不同的網(wǎng)絡互連。作為大狂客程序員,看到網(wǎng)關第一想到的是spring cloud 的gateway。今天主要向大家介紹軟件行業(yè)分布式系統(tǒng)中網(wǎng)關的含義作用以及使用過程中的注意事項。 geteway定義以及作用官網(wǎng)上這么說的,This project provides a library for building an API Gateway on top of Spring MVC. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to them such as: security, monitoring/metrics, and resiliency。(該項目為我們提供一個在springmvc上構建網(wǎng)關API的代碼庫,為我們提供一種簡單高效安全的api。主要包括的功能有路由轉發(fā)、權限校驗、限流控制等)。在簡單了解了spring-cloud的網(wǎng)關定義之后,我簡單說下使用場景以及意義。在分布式系統(tǒng)中,內(nèi)部服務之間通過api訪問,spring-cloud提供feign的restapi訪問方式,內(nèi)網(wǎng)訪問不存在安全隱患,對外提供服務時,需要一個道門專門來做內(nèi)外網(wǎng)環(huán)境隔離以及對外部請求的過濾。在這個背景下geteway因用而生了(替代了上個版本的zuul)。 核心實現(xiàn)思路filter(過濾器),網(wǎng)關是在內(nèi)部調(diào)用程序外圍添加一個帶各種過濾器的spring-boot的項目,同樣會在注冊中心注冊。在各種不同的過濾器中提供各個不同功能的API接口。 核心功能
注意事項網(wǎng)關是外部網(wǎng)絡訪問內(nèi)部服務器的唯一通道,存在單點故障問題,需要部署集群解決;所有的請求都通過網(wǎng)關訪問,網(wǎng)關壓力會非常大,需要系統(tǒng)做全面的壓力測試,并根據(jù)業(yè)務需求對網(wǎng)關進行拆分,以減小網(wǎng)關壓力,降低不同業(yè)務的耦合度。 |
|