- 服务容错:在多个Spring Boot中,假如每个服务只有一个Spring Boot项目,那么当某一个服务突然崩掉了,会导致整个服务不可用,有几种方法: 1. 集群:一个服务部署多个实例,那么多个Spring Boot项目服务于同一个服务。服务中心只会发送那些可用的ip地址。(你可以理解为DNS解析的过程)。 2. 服务容错:在调用方,可以设置一个兜底的策略,假如发现目标的服务不可用,自己设置一个兜底的策略,例如返回服务器正忙等等。 3. 服务降级:假如被调用方没有完全崩掉,还可以用,但是已经拉满了,可以提前设置一个服务降级策略,例如返回简单的信息。 - 服务调用:刚才提到了服务之间的调用说的是HTTP,那么调用方就需要利用Spring提供的RestTemplate来请求(唯一方式,可以向对应ip发送HTTP请求),这种方式没有问题,就是写了太多的重复代码。然后就出现了RPC框架(Remote Procedure Call),只需要通过简单的注解就可以实现服务的远程调用。把被调用方的Service打包成依赖,然后调用方和被调用方都导入该依赖,只要配置了注解,调用方就可以直接像调用本地的Service一样去调用远程服务的Service。(简单来说就是简化了请求过程)。 调用过程不只是HTTP,还可以使用“消息队列”来进行服务之间的通信。上游服务通过生产的方式向消息队列发送消息,下游业务通通过消费的方式消费消息。这样服务之间就可以通过这种方式交流,而不是HTTP那种接口方式。好处就是可以解耦,削峰等等。