gateway问题
来源:10-4 核心概念
慕虎146535
2019-11-02
大目老师,我现在遇到一个问题
这是我的网关配置
ateway:
discovery:
locator:
# 让gateway通过服务发现组件找到其他的微服务
enabled: true
routes:
- id: user_route
uri: lb://user-center
predicates:
- Path=/users/**
然后user-center controller的@RequestMapping("/api/service/user")是这样定义的,然后方法是test
然后通过 http://localhost:8040/users/api/service/user/test 访问是404
但是通过http://localhost:8040/user-center/api/service/user/test 是可以访问的,
http://localhost:8040/users/api/service/user/test 404 是什么原因造成的
1回答
-
您好,这个问题在路由谓词工厂一节有讲。课程配套手记
https://www.imooc.com/article/290804
路由配置的两种形式 一段也有写到。
按照您的配置
Path=/users/**
指的是:访问Gateway的/users/** 会转发到user-center微服务的/users/**
但你这个微服务根本没有这样的API,所以会404。
而,之所以用user-center/api/xxxx可以访问,是因为Gateway的
xxxx.locator.enabled=true
提供的。这个配置提供了基于约定的转发规则:访问Gateway的/服务名称/** 会转发到指定服务的/**
052019-11-02
相似问题