【发布时间】:2018-06-27 14:48:34
【问题描述】:
我在不同的帖子上遇到过类似的问题,但它们对我来说毫无用处(没有答案或没有帮助的答案)。我将在这里描述所有细节并希望得到帮助。
我用的是java8,spring boot 2.0.3,spring cloud元素都是基于Finchley.RELEASE版本的。
在我的测试微服务应用程序中,我有下一个服务:config-server、discovery-service(Eureka)、edge-service( zuul),卡服务。所有服务在启动时从 configuration-server 加载它们自己的配置。服务启动没有问题。
card-service - 在开始时获取随机端口。这是serviceId将zuul rout配置为calendar-service的原因。
zuul:
debug:
request: true
routes:
card-service:
path: /card-service/**
serviceId: card-service
stripPrefix: true
使用 discovery-service 客户端我检测到下一个注册服务["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 的路线映射吗?
【问题讨论】:
-
zull.routes.card-service 的缩进错误。如果正确,请检查 :8765/configprops 的 zuulproperties 部分。
标签: spring routing spring-cloud netflix-zuul service-discovery