前言
大家好,一直以来我都本着用最通俗的话理解核心的知识点, 我认为所有的难点都离不开 基础知识 的铺垫。目前正在出一个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
, 以及带大家整了一下它常用的配置,大家可以自己配置试试看, 建议大家自己多去尝试 ~
下期预告
我们之前提到过滤器
, zuul有很多好用的过滤器, 这是我们学习的重点,下期就带大家学习一下它的过滤器,带大家一步步实现自己的过滤器。 关注我,不迷路, 下期不见不散 ~