一、该问题的重现步骤是什么?
1. bladex框架新增carbon-service-etp服务,后台carbon-service-etp已经启动ok
2. 通过nacos的blade-gateway.json文件来映射,blade-gateway.json映射内容
{
"id": "carbon-etp",
"order": 0,
"predicates": [{
"name": "Path",
"args": {
"pattern": "/carbon-etp/**"
}
}],
"filters": [],
"uri": "lb://carbon-service-etp"
},
3.通过接口访问http://127.0.0.1:8101/carbon-etp/aaa,接口报错
"msg":"Failed to handle request [GET http://127.0.0.1:8101/carbon-etp/aaa]: 404 NOT_FOUND","code":404,"data":null}
二、你期待的结果是什么?实际看到的又是什么?
期待的结果:gateway转发/carbon-etp,到carbon-service-etp
实际看到的:1:gateway没有拦截到/carbon-etp,也没有打印/carbon-etp/aaa这个接口的请求
2:前台报404错误
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
产品:springcloud
版本:
<bladex.vision>3.4.0.RELEASE</bladex.vision>
操作系统:linux
四、请提供详细的错误堆栈信息,这很重要。
没有任何报错信息,接口报404错误
五、若有更多详细信息,请在下面提供。
bladex的gateway配置了自动转发,比如你注册到nacos的服务名为:carbon-service-etp,那么就可以直接通过 http://localhost/carbon-service-etp/xxx 来调用。
如果需要额外自定义服务名,可以用如下配置操作:
spring:
cloud:
gateway:
# 网关路由配置
routes:
# 路由id,自定义,只要唯一即可
- id: carbon-service
# 路由的目标地址 http就是固定地址
# uri: http://127.0.0.1:8081
# 路由的目标地址 lb就是负载均衡,后面跟服务名称
uri: lb://carbon-service-etp
# 路由断言,也就是判断请求是否符合路由规则的条件
predicates:
# 这个是按照路径匹配,只要以/carbon/开头就符合要求
- Path=/carbon/**
扫一扫访问 Blade技术社区 移动端