'Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則'

Java 技術 老顧聊技術 2019-09-16
"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上圖中,很清晰的說明了各個工廠的規則,說到底Predicate就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理。

時間匹配

Gateway支持設置一個時間,在請求進行轉發的時候,可以通過判斷在這個時間之前或者之後進行轉發。比如我們現在設置只有在2019年9月10日才會路由轉發,在這之前不進行轉發,我就可以這樣配置:

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上圖中,很清晰的說明了各個工廠的規則,說到底Predicate就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理。

時間匹配

Gateway支持設置一個時間,在請求進行轉發的時候,可以通過判斷在這個時間之前或者之後進行轉發。比如我們現在設置只有在2019年9月10日才會路由轉發,在這之前不進行轉發,我就可以這樣配置:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面的配置After屬性,設置時間,代表在這時間之後才能匹配;我們設置的是2019-9-10,這裡的時間通過ZonedDateTime來對時間進行的對比,ZonedDateTime 是 Java 8 中日期時間功能裡,用於表示帶時區的日期與時間信息的類,ZonedDateTime 支持通過時區來設置時間,中國的時區是:Asia/Shanghai。

上面的示例是指,請求路徑為/get,且請求時間在 2019年9月10日0點0分0秒之後的所有請求都轉發到地址http://httpbin.org:80。+08:00是指時間和UTC時間相差八個小時,時間地區為Asia/Shanghai。

添加完路由規則之後,如果當地時間為9月4日訪問地址http://localhost:8080/get不會轉發,如果是9月10日會自動轉發到http://httpbin.org:80/get

Before Route Predicate 剛好相反,在某個時間之前的請求都進行轉發。

我們把上面路由規則中的 After 改為 Before,如下:

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上圖中,很清晰的說明了各個工廠的規則,說到底Predicate就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理。

時間匹配

Gateway支持設置一個時間,在請求進行轉發的時候,可以通過判斷在這個時間之前或者之後進行轉發。比如我們現在設置只有在2019年9月10日才會路由轉發,在這之前不進行轉發,我就可以這樣配置:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面的配置After屬性,設置時間,代表在這時間之後才能匹配;我們設置的是2019-9-10,這裡的時間通過ZonedDateTime來對時間進行的對比,ZonedDateTime 是 Java 8 中日期時間功能裡,用於表示帶時區的日期與時間信息的類,ZonedDateTime 支持通過時區來設置時間,中國的時區是:Asia/Shanghai。

上面的示例是指,請求路徑為/get,且請求時間在 2019年9月10日0點0分0秒之後的所有請求都轉發到地址http://httpbin.org:80。+08:00是指時間和UTC時間相差八個小時,時間地區為Asia/Shanghai。

添加完路由規則之後,如果當地時間為9月4日訪問地址http://localhost:8080/get不會轉發,如果是9月10日會自動轉發到http://httpbin.org:80/get

Before Route Predicate 剛好相反,在某個時間之前的請求都進行轉發。

我們把上面路由規則中的 After 改為 Before,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

就表示在這個時間之前可以進行路由,在這時間之後停止路由

有了時間前與時間後,當然就會有時間之間Between,如下:

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上圖中,很清晰的說明了各個工廠的規則,說到底Predicate就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理。

時間匹配

Gateway支持設置一個時間,在請求進行轉發的時候,可以通過判斷在這個時間之前或者之後進行轉發。比如我們現在設置只有在2019年9月10日才會路由轉發,在這之前不進行轉發,我就可以這樣配置:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面的配置After屬性,設置時間,代表在這時間之後才能匹配;我們設置的是2019-9-10,這裡的時間通過ZonedDateTime來對時間進行的對比,ZonedDateTime 是 Java 8 中日期時間功能裡,用於表示帶時區的日期與時間信息的類,ZonedDateTime 支持通過時區來設置時間,中國的時區是:Asia/Shanghai。

上面的示例是指,請求路徑為/get,且請求時間在 2019年9月10日0點0分0秒之後的所有請求都轉發到地址http://httpbin.org:80。+08:00是指時間和UTC時間相差八個小時,時間地區為Asia/Shanghai。

添加完路由規則之後,如果當地時間為9月4日訪問地址http://localhost:8080/get不會轉發,如果是9月10日會自動轉發到http://httpbin.org:80/get

Before Route Predicate 剛好相反,在某個時間之前的請求都進行轉發。

我們把上面路由規則中的 After 改為 Before,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

就表示在這個時間之前可以進行路由,在這時間之後停止路由

有了時間前與時間後,當然就會有時間之間Between,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

意思一看就能看出,在兩時間之間即可路由,不在不可路由。

Cookie 匹配

Cookie Route Predicate 可以接收兩個參數,一個是 Cookie name ,一個是正則表達式,路由規則會通過獲取對應的 Cookie name 值和正則表達式去匹配,如果匹配上就會執行路由,如果沒有匹配上則不執行

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上圖中,很清晰的說明了各個工廠的規則,說到底Predicate就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理。

時間匹配

Gateway支持設置一個時間,在請求進行轉發的時候,可以通過判斷在這個時間之前或者之後進行轉發。比如我們現在設置只有在2019年9月10日才會路由轉發,在這之前不進行轉發,我就可以這樣配置:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面的配置After屬性,設置時間,代表在這時間之後才能匹配;我們設置的是2019-9-10,這裡的時間通過ZonedDateTime來對時間進行的對比,ZonedDateTime 是 Java 8 中日期時間功能裡,用於表示帶時區的日期與時間信息的類,ZonedDateTime 支持通過時區來設置時間,中國的時區是:Asia/Shanghai。

上面的示例是指,請求路徑為/get,且請求時間在 2019年9月10日0點0分0秒之後的所有請求都轉發到地址http://httpbin.org:80。+08:00是指時間和UTC時間相差八個小時,時間地區為Asia/Shanghai。

添加完路由規則之後,如果當地時間為9月4日訪問地址http://localhost:8080/get不會轉發,如果是9月10日會自動轉發到http://httpbin.org:80/get

Before Route Predicate 剛好相反,在某個時間之前的請求都進行轉發。

我們把上面路由規則中的 After 改為 Before,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

就表示在這個時間之前可以進行路由,在這時間之後停止路由

有了時間前與時間後,當然就會有時間之間Between,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

意思一看就能看出,在兩時間之間即可路由,不在不可路由。

Cookie 匹配

Cookie Route Predicate 可以接收兩個參數,一個是 Cookie name ,一個是正則表達式,路由規則會通過獲取對應的 Cookie name 值和正則表達式去匹配,如果匹配上就會執行路由,如果沒有匹配上則不執行

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

不帶cookies訪問

curl http://localhost:8080/get //不帶cookies

返回404

{"timestamp":"2019-09-04T09:28:45.726+0000","path":"/get","status":404,"error":"Not Found","message":null}

帶上cookies訪問,且userId為1

curl http://localhost:8080/get --cookie "userId=1"

返回正常

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上圖中,很清晰的說明了各個工廠的規則,說到底Predicate就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理。

時間匹配

Gateway支持設置一個時間,在請求進行轉發的時候,可以通過判斷在這個時間之前或者之後進行轉發。比如我們現在設置只有在2019年9月10日才會路由轉發,在這之前不進行轉發,我就可以這樣配置:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面的配置After屬性,設置時間,代表在這時間之後才能匹配;我們設置的是2019-9-10,這裡的時間通過ZonedDateTime來對時間進行的對比,ZonedDateTime 是 Java 8 中日期時間功能裡,用於表示帶時區的日期與時間信息的類,ZonedDateTime 支持通過時區來設置時間,中國的時區是:Asia/Shanghai。

上面的示例是指,請求路徑為/get,且請求時間在 2019年9月10日0點0分0秒之後的所有請求都轉發到地址http://httpbin.org:80。+08:00是指時間和UTC時間相差八個小時,時間地區為Asia/Shanghai。

添加完路由規則之後,如果當地時間為9月4日訪問地址http://localhost:8080/get不會轉發,如果是9月10日會自動轉發到http://httpbin.org:80/get

Before Route Predicate 剛好相反,在某個時間之前的請求都進行轉發。

我們把上面路由規則中的 After 改為 Before,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

就表示在這個時間之前可以進行路由,在這時間之後停止路由

有了時間前與時間後,當然就會有時間之間Between,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

意思一看就能看出,在兩時間之間即可路由,不在不可路由。

Cookie 匹配

Cookie Route Predicate 可以接收兩個參數,一個是 Cookie name ,一個是正則表達式,路由規則會通過獲取對應的 Cookie name 值和正則表達式去匹配,如果匹配上就會執行路由,如果沒有匹配上則不執行

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

不帶cookies訪問

curl http://localhost:8080/get //不帶cookies

返回404

{"timestamp":"2019-09-04T09:28:45.726+0000","path":"/get","status":404,"error":"Not Found","message":null}

帶上cookies訪問,且userId為1

curl http://localhost:8080/get --cookie "userId=1"

返回正常

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

Header 匹配

Header Predicate 和 Cookie Predicate 一樣,也是接收 2 個參數,一個 header 中屬性名稱和一個正則表達式,這個屬性值和正則表達式匹配則執行

"

歡迎關注頭條號:老顧聊技術

精品原創技術分享,知識的組裝工


目錄

  1. 前言
  2. 項目依賴
  3. 配置
  4. 代碼實現
  5. 路由規則
  6. 總結

前言

前篇我們介紹了Gateway的由來,這一篇我們介紹一下Gateway的使用,希望能夠幫到小夥伴們。

Gateway網關路由有兩種配置方式:

1、在配置文件yml中配置

2、代碼中注入RouteLocator的Bean

這兩種方式是等價的,建議使用yml配置方式

項目依賴

我們採用最新的版本

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

因為Gateway使用的是Netty + webflux,所以不需要引入web模塊;只要引入spring-cloud-starter-gateway就行了,裡面包含了spring-boot-starter-webflux

注:什麼是webflux,老顧以後介紹

配置

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

屬性含義如下

id:我們自定義的路由 ID,保持唯一

uri:目標服務地址

predicates:路由條件,Predicate 接受一個輸入參數,返回一個布爾值結果。該屬性包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)

請求效果

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面這段配置的意思是,配置了一個id為route-name的路由規則,當訪問地址 http://localhost:8080/get 時會自動轉發到地址:http://httpbin.org:80/get

代碼實現

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

效果和配置方式是一樣的。

上面我們簡單的用兩個案例演示了Gateway的路由轉發,下面我們詳細介紹一下路由規則

路由規則

Spring Cloud Gateway 的功能很強大,前面我們只是使用了 predicates 進行了簡單Path的條件匹配,其實Gataway幫我們內置了很多 Predicates功能。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在項目啟動日誌中,我們就能發現有很多PredicateFactory。Gateway 是通過Spring WebFlux的HandlerMapping做為底層支持來匹配到轉發路由,這些 Predicates 工廠通過不同的HTTP請求參數來匹配,多個 Predicates 工廠可以組合使用

Predicate 介紹

Predicate 來源於 Java 8,Predicate 接受一個輸入參數,返回一個布爾值結果。該接口包含多種默認方法來將 Predicate 組合成其他複雜的邏輯(比如:與,或,非)。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

在 Spring Cloud Gateway 中 Spring 利用 Predicate 的特性實現了各種路由匹配規則,有通過 Header、請求參數等不同的條件來進行作為條件匹配到對應的路由

網上有一張圖總結了 Spring Cloud 內置的幾種 Predicate 的實現。

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上圖中,很清晰的說明了各個工廠的規則,說到底Predicate就是為了實現一組匹配規則,方便讓請求過來找到對應的 Route 進行處理。

時間匹配

Gateway支持設置一個時間,在請求進行轉發的時候,可以通過判斷在這個時間之前或者之後進行轉發。比如我們現在設置只有在2019年9月10日才會路由轉發,在這之前不進行轉發,我就可以這樣配置:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面的配置After屬性,設置時間,代表在這時間之後才能匹配;我們設置的是2019-9-10,這裡的時間通過ZonedDateTime來對時間進行的對比,ZonedDateTime 是 Java 8 中日期時間功能裡,用於表示帶時區的日期與時間信息的類,ZonedDateTime 支持通過時區來設置時間,中國的時區是:Asia/Shanghai。

上面的示例是指,請求路徑為/get,且請求時間在 2019年9月10日0點0分0秒之後的所有請求都轉發到地址http://httpbin.org:80。+08:00是指時間和UTC時間相差八個小時,時間地區為Asia/Shanghai。

添加完路由規則之後,如果當地時間為9月4日訪問地址http://localhost:8080/get不會轉發,如果是9月10日會自動轉發到http://httpbin.org:80/get

Before Route Predicate 剛好相反,在某個時間之前的請求都進行轉發。

我們把上面路由規則中的 After 改為 Before,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

就表示在這個時間之前可以進行路由,在這時間之後停止路由

有了時間前與時間後,當然就會有時間之間Between,如下:

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

意思一看就能看出,在兩時間之間即可路由,不在不可路由。

Cookie 匹配

Cookie Route Predicate 可以接收兩個參數,一個是 Cookie name ,一個是正則表達式,路由規則會通過獲取對應的 Cookie name 值和正則表達式去匹配,如果匹配上就會執行路由,如果沒有匹配上則不執行

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

不帶cookies訪問

curl http://localhost:8080/get //不帶cookies

返回404

{"timestamp":"2019-09-04T09:28:45.726+0000","path":"/get","status":404,"error":"Not Found","message":null}

帶上cookies訪問,且userId為1

curl http://localhost:8080/get --cookie "userId=1"

返回正常

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

Header 匹配

Header Predicate 和 Cookie Predicate 一樣,也是接收 2 個參數,一個 header 中屬性名稱和一個正則表達式,這個屬性值和正則表達式匹配則執行

Gateway網關係列(二):SpringCloud Gateway入門實戰,路由規則

上面的意思,就是請求頭要有token屬性,並且值為整數的正則表達式

curl http://localhost:8080/get -H "token:12" 

返回正常,將參數-H "token:12"改為-H "token:hello"再次執行時返回404證明沒有匹配。

下面老顧就介紹快點,因為比較簡單,一通百通

Host 匹配

Host Route Predicate 接收一組參數,一組匹配的域名列表,這個模板是一個 ant 分隔的模板,用.號作為分隔符。它通過參數中的主機地址作為匹配規則。

predicates:
- Host=**.toutiao.com

請求匹配上的

curl http://localhost:8080/get -H "Host: www.toutiao.com" 
curl http://localhost:8080/get -H "Host: md.toutiao.com"

請求方式匹配

通過請求的方式是 POST、GET、PUT、DELETE 等進行路由。

predicates:
- Method=GET //或者POST,PUT

請求路徑匹配

Path Route Predicate 接收一個匹配路徑的參數來判斷是否走路由。

predicates:
- Path=/get/{segment}

如果請求路徑符合要求,則此路由將匹配,例如:/get/1 或者 /get/bar。

請求參數匹配

Query Route Predicate 支持傳入兩個參數,一個是屬性名,一個為屬性值,屬性值可以是正則表達式。

predicates:
- Query=token

只有屬性名token,表示只要有token參數就行,不管值為多少,即可路由

predicates:
- Query=token, \\d+

表示不但要有參數名token,值還要是整數才能路由

請求 ip 地址匹配

通過設置某個 ip 區間號段的請求才會路由,RemoteAddr Route Predicate 接受 cidr 符號(IPv4 或 IPv6 )字符串的列表(最小大小為1),例如 192.168.0.1/16 (其中 192.168.0.1 是 IP 地址,16 是子網掩碼)。

predicates:
- RemoteAddr=192.168.1.1/24

如果請求的遠程地址是 192.168.1.10,則此路由將匹配。

組合使用

predicates:
- Host=**.toutiao.com
- Path=/get
- Method=GET
- Query=token
- After=2019-01-20T06:06:06+08:00[Asia/Shanghai]

各種 Predicates 同時存在於同一個路由時,請求必須同時滿足所有的條件才被這個路由匹配

總結

老顧今天主要聊了Gateway的基礎路由規則,當然我們也可以自定義predicates。下一篇我們就進入高級篇,主要介紹Gateway的filter、熔斷以及限流等


---End---

最近老顧上傳了微服務網關的分享課程,請大家多多支持

推薦閱讀

1、Gateway網關係列開篇:SpringCloud的官方網關Gateway介紹

2、API網關在微服務架構中的應用,這一篇就夠了

3、學習Lambda表達式看這篇就夠了,不會讓你失望的哦(續篇)

4、Lambda用在哪裡?幾種場景?

5、為什麼會出現Lambda表達式,你知道嗎?

6、不說“分佈式事務”理論,直接上大廠阿里的解決方案,絕對實用

7、女程序員問到這個問題,讓我思考了半天,Mysql的“三高”架構

8、大廠二面:CAP原則為什麼只能滿足其中兩項?而不能同時滿足

9、阿里P7二面:聊聊零拷貝的原理

10、秒殺系統的核心點都在這裡,快來取

11、你瞭解如何利用token方式實現分佈式Session嗎?

12、Mysql索引結構演變,為什麼最終會是那個結構呢?讓你一看就懂

13、一場比賽涉及到的知識,用通俗易通的方式介紹併發協調

14、企業實戰Redis全方面思考,你思考了嗎?

15、面試題:Thread的start和run的區別

16、面試題:什麼是CAS?CAS的作用以及缺點

17、如何訪問redis中的海量數據?避免事故產生

18、如何解決Redis熱點問題?以及如何發現熱點?

19、如何設計API接口,實現統一格式返回?

20、你真的知道在生產環境下如何部署tomcat嗎?

21、分享一線互聯網大廠分佈式唯一ID設計 之 snowflake方案

22、分享大廠分佈式唯一ID設計方案,快來圍觀

23、你想了解一線大廠的分佈式唯一ID生成方案嗎?

24、你知道如何處理大數據量嗎?(數據拆分篇)

25、如何永不遷移數據和避免熱點? 根據服務器指標分配數據量(揭祕篇)

26、你知道怎麼分庫分表嗎?如何做到永不遷移數據和避免熱點嗎?

27、你瞭解大型網站的頁面靜態化嗎?

28、你知道如何更新緩存嗎?如何保證緩存和數據庫雙寫一致性?

29、你知道怎麼解決DB讀寫分離,導致數據不一致問題嗎?

30、DB讀寫分離情況下,如何解決緩存和數據庫不一致性問題?

31、你真的知道怎麼使用緩存嗎?

32、如何利用鎖,防止緩存擊穿?重構思想的重要性

33、海量訂單產生的業務高峰期,如何避免消息的重複消費?

34、你知道如何保障生產端100%消息投遞成功嗎?

35、微服務下的分佈式session該如何管理?

36、阿里二面:filter、interceptor、aspect應如何選擇?很多人中招

37、互聯網架構重要組員CDN,很多高級開發都沒有實操過,來看這裡

38、阿里二面:CDN緩存控制原理,看看能不能難住你

"

相關推薦

推薦中...