miércoles, 3 de julio de 2019
Spring Cloud Netflix, Microservice, Hystrix (Circuit Breaker), java parte 6
https://github.com/jalbertomr/SpringCloudNetflix/commit/7d5c08245d68dc66a1de437271f075ec001c14e5
En esta parte, integraremos el circuit breaker con la librería Hystrix, Se agrega la dependencia maven en el productor
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
En el controller del Productor, le agregamos la anotación @hystrixCommand con el método que ser[a llamado cuando exista un error en el método normal. En este caso estamos obligado a tener una excepción en el flujo normal para que el hystrix llame una función alterna con una respuesta alterna.
@RestController
public class TestController {
@RequestMapping(value = "/empleado", method = RequestMethod.GET)
@HystrixCommand(fallbackMethod = "getDataFallBack")
public Employee firstPage() {
System.out.println("Dentro de la primer pagina");
Employee emp = new Employee();
emp.setName("emp1");
emp.setDesignation("manager");
emp.setEmpId("1");
emp.setSalary(3000);
//Obligamos un error en el flujo de respuesta
if (emp.getName().equalsIgnoreCase("emp1"))
throw new RuntimeException();
return emp;
}
public Employee getDataFallBack() {
System.out.println("IN fallback");
Employee emp = new Employee();
emp.setName("fallback-emp1");
emp.setDesignation("fallback-manager");
emp.setEmpId("fallback-1");
emp.setSalary(3000);
return emp;
}
Esta sería la respuesta al consumidor en condiciones normales.
Esta sería la respuesta al existir un error en el flujo.
eot
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario