serviceId 的 Zuul 路由不起作用
Zuul routes by serviceId does not work
我在不同的帖子上遇到了类似的问题,但它们对我没有用(没有答案或没有有用的答案)。我将在这里描述所有细节并希望得到帮助。
我用的是java8,springboot 2.0.3,spring云元都是基于Finchley.RELEASE版本。
在我的测试微服务应用程序中,我有下一个服务:config-server、discovery-service (Eureka)、edge-service (zuul), card-service.所有服务在启动时从 configuration-server 加载它们自己的配置。服务启动没有问题。
card-service - 在启动时获取随机端口。这是 serviceId
.
配置 zuul rout 到 calendar-service 的原因
zuul:
debug:
request: true
routes:
card-service:
path: /card-service/**
serviceId: card-service
stripPrefix: true
使用 发现服务 客户端,我检测到下一个注册服务 ["edge-server", "card-service"]
。所以 zuul 路由使用相同的 serviceId (card-service
)。服务名称是正确的,因为它在 card-service app bootstrap.yml
:
中是相同的
spring:
application:
name: card-service
我通过以下方式直接访问 card-service
:
(我为它配置了相同的结果)。 - 工作正常。
我的 Zuul(edge-server 在 8765
端口启动)所以我希望通过
导航
给出相同的结果。但结果是空的。检查 edge-server 日志:
No handler mapping found for [/card-service/api/cards]
Last-Modified value for [/card-service/api/cards] is: -1
通过执行器映射检查 edge-server(http://localhost:8765/actuator/mappings - 我在这里展示了最感兴趣的部分):
{
"contexts": {
"edge-server-1": {
"mappings": {
"dispatcherServlets": {
"dispatcherServlet": [
...,
{
"handler": "org.springframework.cloud.netflix.zuul.web.ZuulController@24a37416",
"predicate": "/card-service/**",
"details": null
},
问题
知道如何修复 zuul 的路由映射吗?
这是我的失败。我以为我已经按照教程配置了它,但似乎自动完成在 spring 引导配置中使用了 @EnableZuulServer
而不是 @EnableZuulProxy
。 @EnableZuulProxy
需要为 Zuul 加载配置的 routes
并且一切正常。
我在不同的帖子上遇到了类似的问题,但它们对我没有用(没有答案或没有有用的答案)。我将在这里描述所有细节并希望得到帮助。
我用的是java8,springboot 2.0.3,spring云元都是基于Finchley.RELEASE版本。
在我的测试微服务应用程序中,我有下一个服务:config-server、discovery-service (Eureka)、edge-service (zuul), card-service.所有服务在启动时从 configuration-server 加载它们自己的配置。服务启动没有问题。
card-service - 在启动时获取随机端口。这是 serviceId
.
zuul:
debug:
request: true
routes:
card-service:
path: /card-service/**
serviceId: card-service
stripPrefix: true
使用 发现服务 客户端,我检测到下一个注册服务 ["edge-server", "card-service"]
。所以 zuul 路由使用相同的 serviceId (card-service
)。服务名称是正确的,因为它在 card-service app bootstrap.yml
:
spring:
application:
name: card-service
我通过以下方式直接访问 card-service
:
(我为它配置了相同的结果)。 - 工作正常。
我的 Zuul(edge-server 在 8765
端口启动)所以我希望通过
给出相同的结果。但结果是空的。检查 edge-server 日志:
No handler mapping found for [/card-service/api/cards]
Last-Modified value for [/card-service/api/cards] is: -1
通过执行器映射检查 edge-server(http://localhost:8765/actuator/mappings - 我在这里展示了最感兴趣的部分):
{
"contexts": {
"edge-server-1": {
"mappings": {
"dispatcherServlets": {
"dispatcherServlet": [
...,
{
"handler": "org.springframework.cloud.netflix.zuul.web.ZuulController@24a37416",
"predicate": "/card-service/**",
"details": null
},
问题
知道如何修复 zuul 的路由映射吗?
这是我的失败。我以为我已经按照教程配置了它,但似乎自动完成在 spring 引导配置中使用了 @EnableZuulServer
而不是 @EnableZuulProxy
。 @EnableZuulProxy
需要为 Zuul 加载配置的 routes
并且一切正常。