继续上次学习内容这次加入了Zuul网关直接上图

首先新建项目 zuul-server选择springboot快速创建下一步选择spring cloud Routing中的Zuul [Maintenance]和spring cloud Discovery下的Eureka Discovery Client

在启动类上贴上**@EnableZuulProxy**标注,在yml中配置端口以及注册到服务中心的名字

springboot 集成 resttemplate 和 连接池 springboot集成zuul_Routing


springboot 集成 resttemplate 和 连接池 springboot集成zuul_方法参数_02


启动网关服务将端口改为9000进行访问(可以启动两个product-server服务进行测试发现自带负载均衡效果)

我们也可以通过服务名进行访问比如

http://localhost:9000/order-server/saveOrder?userId=1&productId=1 也可以通过yml配置修改访问的服务名称:


还有网关中Cookie获取问题:

此处我们通过postman进行测试

获取token和cookie(注意当你服务方法参数改变时,你的配置关联的降级方法参数必须一致,否则报错)



查看打印台会发现只打印了token的值,cookie是null

通过查看我们可以看见他里面有一个Set,会拦截这三个的值


我们可以通过在Zuul网关的yml进行设置


这样就可以了,然后过滤器实现登录鉴权:

首先在zuul=server服务中创建一个类实现 ZuulFilter里面有四个方法


第一个方法是定义过滤器的类型

第二个方法是如果有同类型的多个过滤器,数值越小越先执行

第三个方法是判断是否需要过滤如果是false不过滤直接放行

第四个是run过滤的逻辑方法如果第三个方法判断是需要过滤进来这个方法


逻辑很简单都是测试最后可以通过postman进行测试携带token和服务看是否会拦截