Gateway篇(一)之Gateway配置

2021-10-21 08:38:07 字數 2472 閱讀 6349

閘道器出現的背景閘道器的作用

閘道器是處於應用程式或服務之前的系統,用來管理授權、訪問控制和流量限制等。通俗來講就是對其他服務請求的集中管理,請求先到閘道器,再由閘道器請求到真實的服務。

gateway中主要的幾個配置

route路由:閘道器的基本,由id、uri、斷言(predicate)、過濾器(filter)組成。斷言相當於條件判斷,判斷為真,則由路由匹配。

斷言(predicate):可以使用這個匹配來自http請求的任何內容

過濾器(filter):對請求和響應進行修改處理

斷言可以匹配的項

zoneddatetime:根據時間來進行匹配

cookie:根據cookie來進行匹配

header:根據請求頭來進行匹配

host:根據請求網域名稱來進行匹配

method:根據請求方法來進行匹配

path:根據請求路徑來進行匹配

query:根據請求引數來進行匹配

remoteaddr:根據遠端ip進行謂詞的校驗匹配

舉例

//ip:port //真正跳轉的路徑

predicates:

- host=**

.com

- path=

/headers

- method=post

- header=x-request-id, \d+

- query=name

- cookie=chocolate, ch.p

- after=

2020-01

-25t06:06:

06+08:

00```

注:1. 如果乙個路由中存在多個斷言,那麼請求必須滿足所有斷言,才能匹配。

2. 乙個請求如果滿足多個路由的斷言,只會被第乙個路由所匹配。

### *

*過濾器(filter)*

*過濾器也有許多設定,這裡只提及其中兩項:

stripprefix:去掉部分url路徑

```bash

spring:

cloud:

gateway:

routes:

# 整合eureka註冊中心的配置示例

- id: hello_ribbon_route

uri: lb:

//spring-cloud-producer

predicates:

- path=

/producerineureka/**

filters:

- stripprefix=1```

假設我們的請求是 http://localhost:8080/producerineureka/hello ,經過過濾器(stripprefix=1)後傳送到spring-cloud-producer的請求就為[http://spring-cloud-producer/hello](http://spring-cloud-producer/hello)

整合eureka註冊中心的配置示例

我們的請求是 http://localhost:8080/producerineureka/hello ,經過過濾器(stripprefix=1)後傳送到spring-cloud-producer的請求就為http://spring-cloud-producer/test/producerineureka/hello

gateway配置示例

spring:

cloud:

gateway:

globalcors:

cors-configurations: #閘道器跨域的配置

'[/**]'

: allowedorigins:

"*" allowedheaders:

"*" allowcredentials:

true

allowedmethods:

- get

- post

- put

- options

routes:

# 整合eureka註冊中心的配置示例

- id: hello_ribbon_route

uri: lb:

//spring-cloud-producer

predicates:

- path=

/producerineureka/**

filters:

- prefixpath=/test

springClould之Gateway服務閘道器

二 使用 2.2 斷言 2.3 過濾器 但對於服務數量眾多 複雜度比較高 規模比較大的業務來說,引入 api 閘道器也有一系列的好處 效能 api 高可用,負載均衡,容錯機制。安全 許可權身份認證 脫敏,流量清洗,後端簽名 保證全鏈路可信呼叫 黑名單 非法呼叫的限制 日誌 日誌記錄,一旦涉及分布式,...

Springcloud之Gateway閘道器

官網 匯入依賴 org.springframework.cloud spring cloud starter gateway org.springframework.cloud spring cloud starter netflix eureka client gateway不能匯入spring ...

Gateway閘道器設計 一

閘道器gateway,它負責與客戶端建立連線,接收客戶端傳送過來的訊息,並對訊息進行驗證,等。1,閘道器的功能 1.1 與客戶端建立連線 這個應該是閘道器最基本的網功了,乙個服務做為閘道器,所有客戶端來的訊息都必須先到達這裡。客戶端與閘道器採用tcp長連線。1.2 訊息過濾 客戶端可能給伺服器傳送任...