微服务-SpringCloud学习系列(六): 服务网关SpringCloudGateWay
1.SpringCloudGateWay的使用
①创建GateWay网关服务,引入依赖
(这里注意GateWay使用netty和WebFlux实现,WebFlux和SpringMvc有冲突,因此不能将web依赖放在父pom中,需要单独的放在需要的子工程中,gateway中不能有mvc的web依赖)
②配置启动类,不需要额外的注解
③配置文件注意,注意列表项用-隔开(例如id和path,这些都可以配置多个)
2. 路由规则和断言条件(请求参数,Header,Cookie等)
动态路由(面向服务的路由,在注册中心获取服务名称来进行路由)
3.路由过滤器(示例为重写过滤器)和路由转发
过滤器生命周期有两个pre和post,
过滤器类型有两种:GateWayFilter和GlobalFilter
4.自定义全局过滤器(统一认证的实例)
5.网关的限流算法
①计数器算法(限流不够 平滑)
②漏桶算法(压力在自身,保护别的服务)
③令牌桶算法(保护网关,SpringCloudGateWay的默认限流算法)
6.网关限流的实现
a.基于Filter的限流
①准备Redis,并在项目中引入 Redis依赖
②修改配置
③配置Redis中的key的解析器KeyResolver
基于路径的限流:
基于参数或IP的限流
b.基于sentinel的限流
①引入依赖
②配置(配置类内容较多,这里只截取部分代码,需要在网上查找完整代码)
修改限流提示信息
分组限流
7.网关的高可用
8.总结
学习SCG的使用,SCG的过滤算法和类型,自定义过滤(全局认证过滤),SCG的高可用