假设有 2 个端点:
@RequestMapping("/ep1")
interface Endpoint1 {
@GetMapping("/echo")
String echo();
}
@RequestMapping("/ep2")
interface Endpoint2 {
@GetMapping("/echo")
String echo();
}
在后端,两者都在同一服务器中运行,该服务器在 Eureka 或 Consul 或...中注册为 serviceId="MY-SERVER"
@RestController
public class Endpoint1Controller implements Endpoint1 {
public String echo() {
return "echo from Endpoint1"
}
}
@RestController
public class Endpoint2Controller implements Endpoint2 {
public String echo() {
return "echo from Endpoint2"
}
}
现在我的 2 个 Feign 客户端必须共享相同的名称/服务 ID 才能在 Eureka/Consul 中发现服务,但每个 feign 客户端的 serviceId 应该是唯一的! ……这该怎么处理?
@FeignClient("MY-SERVER")
public interface Endpoint1Client extends Endpoint1 {
}
@FeignClient("MY-SERVER")
public interface Endpoint2Client extends Endpoint2 {
}
The bean 'MY-SERVER.FeignClientSpecification' could not be registered. A bean with that name has already been defined and overriding is disabled.
在建议我将其加入单个接口之前,请考虑单个服务器/后端上可能有更多端点...
哦,我现在明白了!应该是独一无二的上下文ID not 值/名称
@FeignClient(name="MY-SERVER", contextId = "THIS-SHOULD-BE-UNIQUE")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)