Spring Cloud入门教程:微服务容错保护(Hystrix)
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class MovieController {
private final RestTemplate restTemplate;
public MovieController(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@GetMapping("/movie/{id}")
@HystrixCommand(fallbackMethod = "findByIdFallback")
public String findById(@PathVariable String id) {
return this.restTemplate.getForObject("http://movie-service/movie/" + id, String.class);
}
public String findByIdFallback(String id) {
return "Movie with ID " + id + " not found. Fallback response.";
}
}
这个代码示例展示了如何在Spring Cloud应用中使用Hystrix来提供容错保护。@HystrixCommand
注解被用来指定当调用findById
方法失败时,应该调用findByIdFallback
方法返回备用响应。这样的设计模式确保了当依赖的服务不可用时,不会导致客户端服务的完全失败,而是可以给出一个合理的默认响应。
评论已关闭