配置谓词和过滤器不生效

来源:10-9 自定义过滤器工厂【生命周期、自定义的方式、核心API、编码】

慕沐4323715

2019-08-20

http://img.mukewang.com/szimg/5d5bac68096589b007960427.jpg

http://img1.sycdn.imooc.com/szimg/5d5bac7409492fb510700582.jpg

http://img.mukewang.com/szimg/5d5bac8509c2d55112200658.jpg


老师看一下,我用的springboot版本是2.1.7 

写回答

1回答

大目

2019-08-20

您好,从您的代码来看,没啥问题。

不过,按照您目前的配置,是访问GATEWAY_URL/user-center/**  会转发到user-center微服务的user-center/**

假设:GATEWAY_URL是localhost:8040;user-center微服务的首页是localhost:8081

那么,访问localhost:8040/user-center/** 会转发到localhost:8081/user-center/**

您确定有这个路径吗?

在路由谓词工厂一节,打开手记的开始,我有专门讲解路径的映射关系哈。

建议再阅读一下这篇手记 :https://www.imooc.com/article/290804   ,路由配置的两种形式 部分哈。

-------

如果您代码的路径和课程一样,那么

Path 应该配置成/** 或者/users/**


祝您学习愉快!

0
2
大目
回复
慕沐4323715
经过沟通,测试的路径不OK: 测试的时候,使用的是http://GATEWAY_URL/user-center/users/1 ,这个路由是由spring cloud gateway自动从服务发现组件抓取到的路径,根本不是user_route这个路由。 应该访问http://GATEWAY_URL/users/1,这样才进改路由,而predicate则是控制是否转发的配置。 其实在手记 https://www.imooc.com/article/290804 里已经讲过了。 在课程 监控Spring Cloud Gateway一节,里面有个/actuator/gateway/routes端点,展示了gateway路由转发的详情(也就是路由将会怎样转发),以及/actuator/gateway/routefilter 端点(路由的过滤器),可以了解下; 在 排错、调试技巧总结【调试排错三板斧】 一节中,总结了各种调试的方法,也可以了解下。其实都比较简单。 祝您学习愉快!
2019-08-20
共2条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3091 学习 · 1324 问题

查看课程