继续上次学习内容这次加入了Zuul网关直接上图
首先新建项目 zuul-server选择springboot快速创建下一步选择spring cloud Routing中的Zuul [Maintenance]和spring cloud Discovery下的Eureka Discovery Client
在启动类上贴上**@EnableZuulProxy**标注,在yml中配置端口以及注册到服务中心的名字
启动网关服务将端口改为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和服务看是否会拦截