1

在我的 Spring Boot 应用程序中,我使用 Eureka 服务器作为发现服务。在我的一个 Discovery 客户端应用程序中,我使用 zuul 代理将请求路由到在 Discovery Server 注册的不同服务。

我有一个资源应用程序负责将数据存储到数据库中。我为这个服务创建了两个实例,注册为两个不同的服务与发现服务。为该服务发布的 api 可以说是 /resources Get、Post 等

客户端应用程序为此资源服务的两个实例发送像 /definitions 和 /locations 这样的请求。

现在我的问题是我想将此 /definitions 映射到 service-id 1/resources 并将位置映射到 /service-id2/resources。

我不确定如何执行此操作,因为当我从客户端应用程序发送 /defnitions 时,它期望 /definitions 在资源应用程序中存在,但事实并非如此。

我正在尝试这样的事情 zuul: routes: locations: path: /locations/** rewrite: /resources/** serviceId: location_service stripPrefix: false definitions: path: /definitions/** rewrite: /resources/** serviceId: definition_service stripPrefix: false

4

1 回答 1

1

stripPrefix: false在这两种情况下都使用。这意味着 zuul 不会将其从请求 url 中删除并传递给您的代理服务。试着玩一下。

至少在 spring-cloud org.springframework.cloud.netflix.zuul.filters.ZuulProperties 文件中没有“重写”属性,你确定它正确吗?

于 2015-06-15T12:55:00.110 回答