gpt4 book ai didi

java - Spring Cloud Hystrix : FallbackMethod not invoked

转载 作者:行者123 更新时间:2023-12-02 11:39:49 25 4
gpt4 key购买 nike

我正在玩 Spring Cloud Hystrix,并且收到一个奇怪的错误,即我的 Fallback 方法没有被调用。我的 Controller 在下面。

@Controller
public class DashboardController {

@LoadBalanced
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder){
return builder.build();
}

@Autowired
private RestTemplate restTemplate;

@HystrixCommand(fallbackMethod = "getFareBackup")
@RequestMapping("/dashboard")
public String getFareDashboard(Model m) {
try {
ResponseEntity<List<BusFare>> responseEntity = restTemplate.exchange("http://busfare-service/api/v1/fare/",
HttpMethod.GET, null, new ParameterizedTypeReference<List<BusFare>>() {
});
m.addAttribute("fareList", responseEntity.getBody());
} catch (Exception e) {
e.printStackTrace();
}
return "dashboard";
}


public String getFareBackup(Model m){
System.out.println("Fallback operation called");

m.addAttribute("fareList", new ArrayList<BusFare>().add(new BusFare(1, BigDecimal.valueOf(0.7), "Regular")));
return "dashboard";
}

}

如您所见,我正确设置了fallbackMethod,但是,当我运行服务器并将浏览器指向端点时,我收到一个异常,说我的服务器已关闭,据我所知,当我的服务关闭时应该调用fallbackMethod,但就我而言,情况并非如此,我的fallbackMethod基本上没有被调用。

java.lang.IllegalStateException: No instances available for busfare-service

我的代码中缺少某些内容吗?

最佳答案

看来我喜欢,Hystrix 通过错误处理来处理这个fallbackMethod。导致我的后备未被调用的错误处理弄乱了我的代码。

@HystrixCommand(fallbackMethod = "getFareBackup")
@RequestMapping("/dashboard")
public String getFareDashboard(Model m) {

ResponseEntity<List<BusFare>> responseEntity = restTemplate.exchange("http://busfare-service/api/v1/fare/",
HttpMethod.GET, null, new ParameterizedTypeReference<List<BusFare>>() {
});

m.addAttribute("fareList", responseEntity.getBody());

return "dashboard";
}

使用上面的代码,fallbackMethod 现在可以工作了。

关于java - Spring Cloud Hystrix : FallbackMethod not invoked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com