溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringCloud中Zuul服務(wù)網(wǎng)關(guān)的示例分析

發(fā)布時(shí)間:2022-01-15 14:32:38 來源:億速云 閱讀:122 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)SpringCloud中Zuul服務(wù)網(wǎng)關(guān)的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

  一、什么是Zuul

  ??zuul 是netflix開源的一個(gè)API Gateway 服務(wù)器, 本質(zhì)上是一個(gè)web servlet應(yīng)用。

  ??Zuul 在云平臺上提供動態(tài)路由,監(jiān)控,彈性,安全等邊緣服務(wù)的框架。Zuul 相當(dāng)于是設(shè)備和 Netflix 流應(yīng)用的 Web 網(wǎng)站后端所有請求的前門。

  ??zuul的例子可以參考netflix在github上的 simple webapp,可以按照netflix 在github wiki 上文檔說明來進(jìn)行使用。

  二、解決了什么問題

  三、入門案例

  1.創(chuàng)建項(xiàng)目

  ??創(chuàng)建一個(gè)SpringBoot項(xiàng)目

  2.修改pom文件

  ??注意添加zuul的依賴

  org.springframework.cloud

  spring-cloud-dependencies

  Dalston.SR5

  pom

  import

  org.springframework.boot

  spring-boot-starter-web

  org.springframework.cloud

  spring-cloud-starter-eureka

  org.springframework.cloud

  spring-cloud-starter-zuul

  org.springframework.boot

  spring-boot-maven-plugin

  3.修改配置

  ??application.properties中添加服務(wù)名稱,端口和Eureka注冊中心的信息即可

  spring.application.name=zuul-gateway

  server.port=9020

  #\u8BBE\u7F6E\u670D\u52A1\u6CE8\u518C\u4E2D\u5FC3\u5730\u5740\uFF0C\u6307\u5411\u53E6\u4E00\u4E2A\u6CE8\u518C\u4E2D\u5FC3

  eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/

  4.啟動類

  ??啟動類中注意要添加zuul的注解

  @SpringBootApplication

  @EnableZuulProxy

  public class StartZuul {

  public static void main(String[] args) {

  SpringApplication.run(StartZuul.class, args);

  }

  }

  5.測試

  ??我們隨便啟動一個(gè)前面的服務(wù)。

  我這啟動的是上個(gè)案例中的一個(gè)product服務(wù),如果需要源碼歡迎訪問我的GitHub:https://github.com/q279583842q/SpringCloud-dpb-Demo

  直接訪問:http://localhost:9001/product/findAll

  通過zuul服務(wù)網(wǎng)關(guān)訪問:http://localhost:9020/e-book-product/product/findAll

  http://網(wǎng)關(guān)服務(wù)地址:網(wǎng)關(guān)服務(wù)端口/訪問的服務(wù)的名稱/訪問的服務(wù)中的接口的地址

  四、路由規(guī)則

  ??為了便于演示,路由案例新建一個(gè)項(xiàng)目來演示,內(nèi)容和上面的項(xiàng)目是一致的。

  1.URL 指定路由

  ??application.properties中的配置如下:

  spring.application.name=zuul-gateway

  server.port=9030

  #\u8BBE\u7F6E\u670D\u52A1\u6CE8\u518C\u4E2D\u5FC3\u5730\u5740\uFF0C\u6307\u5411\u53E6\u4E00\u4E2A\u6CE8\u518C\u4E2D\u5FC3

  eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/

  zuul.routes.e-book-product-provider.path=/bobo/**

  zuul.routes.e-book-product-provider.url=http://127.0.0.1:9001/

  說明:

  zuul.routes.e-book-product-provider.path

  zuul.routes是固定的,e-book-product-provider自定義,path是固定的

  /bobo/** 表示 請求的url地址

  zuul.routes.e-book-product-provider.url=http://127.0.0.1:9001/

  表示,當(dāng)用戶的請求是 http://xxx/bobo/** 路由到http://127.0.0.1:9001/服務(wù)處理

SpringCloud中Zuul服務(wù)網(wǎng)關(guān)的示例分析

  2.服務(wù)名稱指定路由

  方式一

  zuul.routes.e-book-product-provider.path=/bobo/**

  zuul.routes.e-book-product-provider.serviceId=e-book-product-provider

  說明

  當(dāng)用戶請求的url是:http://xxxx/bobo/product/findAll 這種方式的時(shí)候,會調(diào)用

  zuul.routes.e-book-product-provider.serviceId=e-book-product-provider的

  e-book-product-provider服務(wù)來處理請求

  方式二

  zuul.routes.e-book-product-provider.path=/bobo/**

  說明:無錫人流多少錢 http://mobile.bhnfkyy.com/

  zuul.routes.e-book-product-provider.path=/bobo/**

  此時(shí)routes和path之間的必須是路由的服務(wù)名稱

  3.路由的排除方式

  ??排除路由,也就是該路由器會忽悠某幾個(gè)服務(wù),即使客戶端發(fā)送了請求也訪問不了

  zuul.ignored-services=e-book-product

  如果有多個(gè)服務(wù)要排除,服務(wù)名稱通過","連接

  zuul.ignored-services=e-book-product,e-book-order

  由于服務(wù)太多,不可能手工一個(gè)個(gè)加,故路由排除所有服務(wù),然后針對要

  路由的服務(wù)進(jìn)行手工加

  # 先忽略所有的請求

  zuul.ignored-services=*

  # 然后單獨(dú)放開e-book-order的服務(wù)

  zuul.routes.e-book-order.path=/bobo/**

  也可以通過排除指定關(guān)鍵字的路徑

  # 排除所有含有findAll關(guān)鍵字的請求

  zuul.ignored-patterns=/**/findAll/**

  # 放開e-book-order服務(wù),同時(shí)也會排除 findAll的請求

  zuul.routes.e-book-order.path=/bobo/**

  4.指定路由前綴

  ??也就是給提前的url添加一個(gè)前綴

  ## http://127.0.0.1:9030/bobo/product-provider/product/findAll

  zuul.prefix=/bobo

  zuul.routes.e-book-product.path=/product-provider/**

感謝各位的閱讀!關(guān)于“SpringCloud中Zuul服務(wù)網(wǎng)關(guān)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI