Este artigo apresenta a Spring Cloud - o fallback de um único método usando o Hystrix e o compartilha com você, como segue:
1. Junte -se às dependências da Hystrix
<Depencency> <PuerpId> org.springframework.cloud </frugiD> <ArtifactId> Spring-cloud-starter-hystrix </sutifactId> </pendence>
2. Escreva controlador
pacote com.chhliu.springboot.restful.controller; importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.web.bind.annotation.getMapping; importar org.springframework.web.bind.annotation.pathvariable; importar org.springframework.web.bind.annotation.restcontroller; importar com.chhliu.springboot.restful.feignClient.UserFeignClient; importar com.chhliu.springboot.restful.vo.user; import com.netflix.hystrix.contrib.javanica.annotation.hystrixCommand; @RestController Classe public RestTemplateControllerHystrixCommand {@AUTOWIRED PRIVADO DO IDENTESEIGNCIENT; // Use Feign para consumir serviço RESTful @getMapping ("/get/{id}") @hystrixCommand (FallbackMethod = "FindByIdFallback") // Use HystrixCommand Annotation para especificar o método de Fallback no FallbackMethod Property Public UserByDId (@PathArbIable Long id) {Fallback } // substitua o método especificado no FallbackMethod. Observe que o valor de retorno desse método deve ser consistente com o método original do usuário público findbyidfallback (longo id) {user u = new user (); u.setName ("Zhangsan"); u.setusername ("chhliu"); U.SetId (9L); devolver u; }}3. Adicione o suporte da Hystrix à aula de inicialização
@Enablecircuitbreaker
4. Adicione arquivos de configuração
Server.port: 7904 # o nome do aplicativo do serviço de inicialização de mola registrado no servidor Eureka é spring.application.name = springboot-restplate-feign-hystrix eureka.instance.prefer-ip-address = true # o endereço do serviço de registro do servidor Eureka é eureka.client.service-url.defaultZone = http: // chhliu: chhliu123456@localhost: 8764/eureka springboot-h2.Ribbon.nfloadbalancerleCLassName = com.netflix.loadBaller.retRyRule hystrix.command.default.execution.isolation.thread.timeoutInmillisEconds: 1 #para testar o efeito de fallback de Hystrix, o tempo de tempo limite é definido como 1 milissegundo aqui
V. teste
Entre no navegador: http: // localhost: 7904/get/2
Os resultados dos testes são os seguintes:
{"Id": 9, "Nome de usuário": "Chhliu", "Nome": "Zhangsan", "Age": NULL, "Balance": NULL}
A partir dos resultados do teste acima, podemos ver que, porque o tempo limite da conexão, inserimos diretamente o método de fallback.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.