一起來學SpringCloud之整合Zuul網關服務之一
前言
大家好,一直以來我都本著用最通俗的話理解核心的知識點, 我認為所有的難點都離不開 「基礎知識」 的鋪墊。目前正在出一個SpringCloud長期系列教程,從入門到進階, 篇幅會較多~
- 適合人群
- 有一定的Java基礎
- 想嘗試微服務開發
- 有SpringBoot開發基礎
- 想學習或了解SpringCloud
- 想提高自己的同學
背景
如果你是一路看過來的,很高興你能夠耐心看完。之前帶大家學了Springboot這門框架,熟練掌握了單體應用的開發,如今微服務開發盛行,對我們的技術要求也是越來越高,薪資也是令人興奮。這個系列將會帶大家學習SpringCloud微服務開發,我會帶大家一步一步的入門,耐心看完你一定會有收獲~
情景回顧
上期帶大家一起認識了Sentinel以及帶大家體驗了常用的方法,本期正式學習微服務網關Zuul,我們一起來看一下吧~
Zuul是什么
我們之前的學習都是整后端服務,把網關學習放到最后邊來講也是做了一次整合,讓大家好去理解。之前給大家講微服務概述的時候,提到過,后端服務前面還有一層就是網關層,至于網關的作用可以參考我之前的文章。那么說一下zuul, 它是spring cloud家族的一員,它提供了很多豐富的功能,比如服務轉發,接口攔截驗證,統一處理響應。它有豐富的攔截器,我們可以通過它實現很多豐富的功能。
整合Zuul網關
首先引入依賴。
<!-- zuul api網關-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置網關服務
這一節先教大家配置網關服務。
轉發指定服務地址
server:
port: 8003
spring:
application:
name: zuul
cloud:
# nacos
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
zuul:
routes:
# 訪問 http://localhost:8003/hello/app/1 轉發-> http://localhost:18080/hello/app/1
hello:
path: /**
url: http://localhost:18080
上面配置應該很好理解,匹配到路徑/***,就轉發到http://localhost:18080這個服務。
轉發注冊中心服務
我們說后端服務都是注冊到注冊中心的,所以我們可以直接轉發到指定服務名。
zuul:
routes:
# 訪問 http://localhost:8003/hello/app/1 轉發-> http://localhost:18080/hello/app/1
hello:
path: /**
#url: http://localhost:18080
# 加入注冊中心后不需要url了 直接使用serviceID
serviceId: provider
多個服務,也是同樣配置。
其它配置
zuul:
# 關閉某個過濾器
SendResponseFilter:
post:
disable: true
# 敏感請求頭過濾 如果想關閉默認配置可以置為空 sensitive-headers:
sensitive-headers: Cookie,Set-Cookie,Authorization
add-host-header: true
# 可以指定前綴
prefix: /gateway
# 關閉指定服務配置
ignored-services: provider
結束語
本期到這里就結束了, 總結一下,本節主要講了什么是Zuul, 以及帶大家整了一下它常用的配置,大家可以自己配置試試看, 建議大家自己多去嘗試 。