Java 当微服务在Spring Boot中暂时不可用时,如何实现恢复机制?

Java 当微服务在Spring Boot中暂时不可用时,如何实现恢复机制?,java,spring-boot,spring-data-jpa,microservices,recovery,Java,Spring Boot,Spring Data Jpa,Microservices,Recovery,我正在学习微服务通信,我用这些技术开发了一个金融交易应用程序:SpringBoot、SpringMVC、SpringDataJPA和HibernateValidator 有2个微服务,第一个微服务用于验证,它是一个带有POST方法的RESTAPI。第二个微服务用于持久性。2个微服务之间的通信是异步的,我使用JMS和ActiveMQ进行通信 之后,我需要为其中一个微服务暂时不可用的情况开发一种恢复机制。有人能告诉我怎么做这个恢复机制吗?提前谢谢你 您可以使用Hystrix框架来使用断路器。如果您的

我正在学习微服务通信,我用这些技术开发了一个金融交易应用程序:SpringBoot、SpringMVC、SpringDataJPA和HibernateValidator

有2个微服务,第一个微服务用于验证,它是一个带有POST方法的RESTAPI。第二个微服务用于持久性。2个微服务之间的通信是异步的,我使用JMS和ActiveMQ进行通信


之后,我需要为其中一个微服务暂时不可用的情况开发一种恢复机制。有人能告诉我怎么做这个恢复机制吗?提前谢谢你

您可以使用Hystrix框架来使用断路器。如果您的方法根据您的配置认为“不工作”,那么它只是用代理来包装您的类,并将您的调用重新定向到回退方法。 pom.xml

运行您的业务方法的类

@Service
public class ClassName {
...
@HystrixCommand(fallbackMethod="fallbackMethodName")
<method signature> {
  }
…

<method signature> fallbackMethodName(...) {
        ...
    }
}
@服务
公共类类名{
...
@HystrixCommand(fallbackMethod=“fallbackMethodName”)
{
}
…
fallbackMethodName(…){
...
}
}

检查Spring Boot中的断路器。检查此链接谢谢Sambit和Simon,但是如果微服务之间的通信是异步的,使用恢复机制可以吗?我想说的是,我正在使用JMS将消息从microservice1发送到microservice2,如果microservice2暂时不可用,消息将被放入队列中,并将在可用时发送到microservice2,因此我认为在这种情况下不必使用恢复机制。不是吗?为什么要增加使用JMS和队列的复杂性?为什么不只使用消息队列,您可以使用Kafka?
@EnableCircuitBreaker
public class AppName {}
@Service
public class ClassName {
...
@HystrixCommand(fallbackMethod="fallbackMethodName")
<method signature> {
  }
…

<method signature> fallbackMethodName(...) {
        ...
    }
}