在我的春季启动应用程序中,我使用Eureka服务器进行发现服务。 在我的一个Discovery客户端应用程序中,我使用zuul代理将请求路由到向Discovery Server注册的不同服务。
我有一个资源应用程序负责将数据存储到数据库中。我已为此服务创建了两个实例,这两个实例使用发现服务注册为两个不同的服务。 为这项服务发布的api可以说是/资源Get,Post等
客户端应用程序为此资源服务的两个实例发送/ definitions和/ locations之类的请求。
现在我的问题是我想将这个/定义映射到service-id 1 / resources和位置到/ service-id2 / resources。
我不确定如何执行此操作,因为当我从客户端应用程序发送/定义它/资源应用程序中的定义时,情况并非如此。
我正在尝试这样的事情
zuul:
routes:
locations:
path: /locations/**
rewrite: /resources/**
serviceId: location_service
stripPrefix: false
definitions:
path: /definitions/**
rewrite: /resources/**
serviceId: definition_service
stripPrefix: false
答案 0 :(得分:1)
您在两种情况下都使用stripPrefix: false
。这意味着zuul不会将其从请求网址中删除并传递给您的代理服务。尝试玩这个。
至少在spring-cloud org.springframework.cloud.netflix.zuul.filters.ZuulProperties文件中没有'重写'财产,你确定它是正确的吗?