我在 Eureka 和 Zuul 的微服务项目中使用 Spring Cloud。我想使用 Feign 客户端在我的微服务之间进行通信。假设我有一个微服务Microservice1和Microservice2。此外,我还有 Eureka 微服务和 Zuul 微服务。
Zuul 配置如下:
zuul:
ignoredServices: "*"
sensitiveHeaders: Authorization
routes:
empty_calls:
path: /
serviceId: microservice1
microservice1:
path: /microservice1/**
serviceId: microservice1
microservice2:
path: /microservice2/**
serviceId: microservice2
host:
connect-timeout-millis: 10000
socket-timeout-millis: 60000
在我的 Microservice2 中,我有以下 Feign 客户端:
@FeignClient(name = "microservice1")
public interface Microservice1Client {
@RequestMapping(value = "/test/this_is_a_test",
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
ResponseEntity<Boolean> addTestObject(@RequestBody List<String> userMails);
}
我的问题如下:我希望 feign 客户端通过例如 localhost:8080/microservice1/test/this_is_a_test 调用我的 REST 服务。相反,它调用“ http://microservice1/test/this_is_a_test ”。我不想使用 url 属性手动配置 feign 客户端 - 它在其他应用程序中自动运行,但不适用于此特定配置。有人可以在这里帮助我吗?
编辑
尤里卡仪表板: