0

我有一个问题要使用 Spring FeignClient 解决。

我有两个端点来发送短信,两者都是相同的行为:

  • 当我发送包含所需的所有查询参数的 GET 时,服务会发送 SMS。
  • 但是我需要检查端点 A 是否关闭——在这种情况下,我必须发送到端点 B,两者都具有相同的请求路径和有效负载。

我怎么解决这个问题?

今天我有一个带有 FeignClient 注解的界面,只有一个 URL。
我尝试使用 FeignBuilder 在运行时创建请求并更改 URL 但没有成功。

如何使用 Feign 控制客户端的服务回退,例如:

@Value(${sms.urls})
List<String> endPoints;

for (endPoint : endPoints){
  if(endPoint.isUp())
  return makeRequest(endPoint).
}
4

1 回答 1

1

关于使用 FeignBuilder,也许你可以在这里找到你的问题的答案

如果这不起作用,我建议围绕接口创建一个包装类。
过去当我不得不处理这样的问题时,我只是创建了一个使用 Feign 客户端接口的类。Spring 将根据您使用 @FeignClient 注释对 feign 客户端进行注释这一事实为您处理接线。这样,您可以修改包装类的行为。您将在方法中编写回退逻辑并根据需要调用 feign 客户端。

希望这可以帮助

于 2017-11-13T16:36:49.377 回答