zuul 里面写controller_SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6...

e4e7efdabcb5177cb5590d76e4333c2f.png

前情回顾

上一节(第5讲),我们讲解了zuul的基本配置,如下链接

SpringCloud极简入门|zuul智能路由回退、认证、转发功能(五):https://www.toutiao.com/i6643405381466849800/

本章知识点很重要!很重要!很重要!,真的很重要,网上资料不是很多,所以建议收藏下转发

动态路由设置使zuul变得很灵活,但是网上的资料大多是基于动态配置实现的,这样导致如果需要配置的路由成千上万的话,难免会有瓶颈(内存、或者同步实效性)。

业务场景:我们需要一种动态转发机制实现一种动态改变url的场景,说白了

我们访问的时候是: http://localhost:8002/hello?name=zs&token=1

可是需要路由动态的设置host或者url比如变成:http://localhost:8001/hello?name=zs&token=1(注端口已变化)

而这种变化我们不采用配置文件配置的方式,那如何实现转发呢(基于数据某种规则,此处只演示静态的)

Demo开始

承接上篇用springcloud-02-getway-zuul模块

c5baa57ffebebec2235f95a33dcc651f.png

分别启动:注册中心spring-cloud-eureka-002(端口7001),生产者一 spring-cloud-producter1-002(端口8001),生产者2 spring-cloud-producter2-002(端口8002) ,路由spring-cloud-zuul-002(端口6001)

路由增加个路由配置,也就是访问testforward规则的url时,会转发给消费者2

也就是访问http://localhost:6001/testforward/hello?name=zs&token=1 此时访问是生产者2的controller

c240e683da2e83425cb883d449655933.png

​我们要做的是访问时动态的设置url使之变成访问 http://localhost:8001/hello?name=zs&token=1

如何做呢?很简单,不过错过了这篇需要查询很多资料了

增加一个拦截器(注意里面规则可以根据具体业务进行转发,以下只是一个demo,判断如果url含有testforward则转发到http://127.0.0.1:8001/)

34fea45d646bde3404296c065820b5fc.png

验证结果:完成动态转发

569378daa3cb8a8af36b06560776dffc.png

End:

功能实现了就很简单,但是我们在寻找答案的时候总是那么难,所以还是需要热于分享的人出现,坚持写作1个月了,每晚都在凌晨一点睡,总是觉得时间不够用,不过还希望小伙伴们有所收获。

话外篇

截至目前粉丝已经999个了,这是个吉利数字,打算现在申请原创,希望得到大家的祝福,欢迎转发,真心希望能一次通过,虽然有点不现实,毕竟粉丝数比较少。不管结局如何在此感谢转发的小伙伴....

b4329ed27fe47d8d3f5520174b5d672c.png

​文章数量82篇

ec9df64dd0a0614d7d2efab9b4c7040a.png

​源码下载:https://github.com/shinians/springcloud-demos

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值