我正在尝试通过使用 Feign 客户端来实现回退,但没有成功。它是最简单的代码,请在下面找到。
主班
@SpringBootApplication
@EnableDiscoveryClient
@RestController
@EnableFeignClients
public class EurekaClient1Application {
@Autowired
public DiscoveryClient discoveryClient;
public static void main(String[] args) {
SpringApplication.run(EurekaClient1Application.class, args);
}
@Autowired
FeingInterface feingInterface;
@GetMapping("/hi/{name}")
public String test(@PathVariable String name)
{
String h = feingInterface.test(name);
return h;
}
}
假装界面
@FeignClient(name="client22",fallback=FallBack.class)
public interface FeingInterface {
@GetMapping("/hiname/{name}")
public String test(@PathVariable("name") String name);
}
后备类
@Component
class FallBack implements FeingInterface{
@Override
public String test(String name) {
// TODO Auto-generated method stub
return "fall back methord being called";
}
}
在休息客户端中出现错误,但不是来自回退方法
“时间戳”:1501950134118,“状态”:500,“错误”:“内部服务器错误”,“异常”:“java.lang.RuntimeException”,“消息”:“com.netflix.client.ClientException:负载均衡器没有没有可用的客户端服务器:client22",
为了获得回退方法消息,我传递了 eureka 服务器中不存在的 client22 eureka id。我在 pom 中有 stater-feign。有人可以调查一下吗。