1. Fusible de servicio significa que otro servicio llamado por el servicio actual terminará directamente la llamada y llamará a otro método en espera directamente cuando la respuesta agote el tiempo, llamada degradación del servicio.
Clase de configuración
@Configuration public class HystrixConfig { @Bean public ServletRegistrationBean getServlet () { HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet (); ServletRegistrationBean RegistrationBean = nuevo ServletRegistrationBean (streamServlet); RegistrationBean.setLoadOnStartup ( 1 ); RegistrationBean.addUrlMappings ( "/hystrix.stream" ); RegistrationBean.setName ( "HystrixMetricsStreamServlet" ); volver registroBean; } }
Servicio
@Service @ Slf4j clase pública EurekaRibbonService { @Autowired RestTemplate restTemplate; @HystrixCommand ( commandProperties = { @HystrixProperty (name = " execute.isolation.thread.timeoutInMilliseconds ", value = "1000" ), @HystrixProperty (name = " execute.isolation.strategy ", value = "THREAD" )}, fallbackMethod = "syaHelloFailure" ) public String sayHello () { Mensaje de cadena; mensaje = restTemplate.getForObject ("http:
clase ); mensaje de retorno ; } public String syaHelloFailure () { return "error"; } }
Agregue la anotación @EnableHystrix a la clase de inicio.
2. Equilibrio de carga
El equilibrio de carga Spring-Cloud se realiza en el cliente
Reglas de equilibrio de carga:
NFLoadBalancerRuleClassName: configuración aleatoria com.netflix.loadbalancer.RandomRule # gobierna
NFLoadBalancerRuleClassName: configuración com.netflix.loadbalancer.RoundRobinRule # sondeo gobierna
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RetryRule # regla de configuración de reintento
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule
#Configurar el tiempo de respuesta de la regla cinta de peso
@Configuration public class RestTemplateConfig { @Bean @LoadBalanced // Realice el equilibrio de carga public RestTemplate restTemplate () { return new RestTemplate (); } }
Archivo de configuración
eureka- client: # La cinta de nombre del cliente de servicio correspondiente : NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
Si usa el método fingir, solo necesita configurar el archivo yml.