一、 网关介绍
微服务为什么要用网关?1.方便客户端做统一接入->减少客户端的交互次数2.流量监控->限流3.权限过滤器->安全防护Spring cloud gateway是spring官方基于Spring 5.0、Spring Boot2.0等技术开发的非阻式,响应式的网关,并且支持websocker长连接,Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix Zuul网关。我们知道Zuul1 是基于 Servlet 框架构建,采用的是阻塞和多线程方式,不支长连接,比如,websocket,这种方式在内部延迟严重、设备故障较多情况下会引起系统线程增加,严重时会造成服务器崩溃。虽然zuul2.x已经出来了,基于Netty,也是非阻塞的,支持长连接,但由于zuul2的多次跳票,SpringCloud暂时还没有整合计划。
二、搭建网关工程
2.1 创建网关工程
工程名:ecs-basic->ec-basic-gateway
添加maven包:
注意:因为Spring cloud gateway是基于Spring webFlux框架实现的,会与Spring web有冲突,所以需要调整一下Spring web包的位置,可以放到ecs-common工程的pom下
<!--微服务客户端 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--Gateway 路由--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>
2.2 添加配置文件
server:port: 80spring:application:name: gateway-server#REDIS (RedisProperties)# Redis数据库索引(默认为0)redis:database: 4# Redis服务器地址host: 118.25.178.111# Redis服务器连接端口port: 6380# Redis服务器连接密码(默认为空)password:# 连接池最大连接数(使用负值表示没有限制)jedis:pool:max-active: 8# 连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1# 连接池中的最大空闲连接max-idle: 8# 连接池中的最小空闲连接min-idle: 0# 连接超时时间(毫秒)timeout: 10000#注册中心地址eureka:client:serviceUrl:defaultZone: http://localhost:8100/eureka/
2.3 创建启动类

