您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(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ù)處理
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é)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(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)容。