今天在搭建自己的项目时,想改变一下工程结构,将以前的SpringBoot
单体结构变成SpirngCloud
微服务结构
目前我有两个服务,分别是web-base
、web-mq
已经使用上了Nacos
配置中心,但这个Gateway
网关,以前是真的没有使用过
从网上找一大堆文章,效果都不怎么好,卡在了Gateway
配置路由上,翻了好多篇文章都没有解决
正好偶然间,群里收到腾讯云AI
插件工具的信息,在好奇心的驱使下,试了这个工具
在IDEA
中, setting->plugins->marketplace
搜索Tencent Cloud AI Code Assistant
,点击安装即可
在VSCode中也有这个插件
好的,安装重启后,进行登录,点击右边栏的AI
工具,提问试试效果
介绍十分的干练整洁明了,后面再试试它的代码能力
如何在配置文件中,指定Path断言呢,我有两个服务web-base,web-mq 如果使用/web/base,以及/web/mq的前缀方式,达成路由
给出了答案,我直接一个copy
进入自己的配置文件;
我知道uri
还有一种lb://
的写法,但不太确定,于是我又向其提问
在配置文件中,您可以使用 YAML 格式的 Path 断言来指定路由规则。以下是一个示例,演示如何使用 /web/base 和 /web/mq 作为前缀来路由请求到不同的服务,uri需要使用lb:的方式
好的,配置十分明朗了,我们copy
过来改一下
spring:
cloud:
gateway:
routes:
- id: web-base-route
uri: lb://web-base
predicates:
- Path=/web/base/**
- id: web-mq-route
uri: lb://web-mq
predicates:
- Path=/web/mq/**
启动程序后,我写了一个http
文件用来验证
### 测试首页
GET http://localhost:8088/test/index
### 测试首页-路由
GET http://localhost:8080/web/base/test/index
分别是直接访问的,和经过Gateway
的
首先验证一下,直接访问的
再试试,经过Gateway
的
怎么回事,为什么会404
呢,没办法报错信息也没有,只能在DispatcherServlet
的doGet()
方法上打一个断点
结果一看,好家伙,请求的路径是/web/base/test/index
那怎么能行,web-base
服务应该没有/web/base
前缀的,这样才行
于是我又问了腾讯云AI
工具
当我用/web/base/test/index去请求gateway,路由到服务web-base没有问题,但请求404了,url是/web/base/test/index,这样是错误的;我希望路由成功后,他的路径是/test/index
给出来了回答,我们再试一下
spring:
cloud:
gateway:
routes:
- id: web-base-route
uri: lb://web-base
predicates:
- Path=/web/base/**
filters:
- StripPrefix=2
- id: web-mq-route
uri: lb://web-mq
predicates:
- Path=/web/mq/**
filters:
- StripPrefix=2
重新发起请求,查看结果
以上就是我使用腾讯云AI
工具,帮我解决了一个问题,同时我又很好奇其他的断言和过滤是怎么样的
有了这个AI
工具,以后代码开发效率翻倍
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。