集群调用容错的套路

在日常的工作和系统设计中,我们经常会使用RPC调用,而我们所部署的服务一般也都是集群模式。我们知道在分布式系统架构中,因为有很多的可能性,比如服务发布重启,网络抖动等问题,都可能会导致RPC调用失败,一般情况下我们的集群调用设计都需要有一定的容错策略。本篇文章就总结一下常见的集群调用容错套路:

  • Failover Cluster
  • Failfast Cluster
  • Failsafe Cluster
  • Failback Cluster
  • Forking Cluster
  • Broadcast Cluster

Failover Cluster

Failover Cluster模式就是 失败自动切换,当出现失败,重试其它服务器,这种一般通常用于幂等操作,比如读操作,但重试会带来更长延迟。一般实现这种模式的时候,需要注意的是重试的时候优先剔除刚刚出问题的节点,优先选择其余节点。

Failfast Cluster

Failfast Cluster是快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。

Failsafe Cluster

Failfast Cluster是失败安全,出现异常时,直接忽略,就是fire and forget。比如一些场景下写入审计日志等操作,失败了也就失败了,可以忍受。

Failback Cluster

Failback Cluster是失败自动恢复,异步记录失败请求,定时重发。通常用于消息通知操作。

Forking Cluster

Forking Cluster 并行调用多个服务器,只要其中一个成功即返回。这种通常用于实时性要求较高的读操作,但需要浪费更多服务资源。

Broadcast Cluster

Broadcast Cluster是广播调用。就是广播请求到所有提供者,逐个调用,任意一台报错则报错,通常用于通知所有提供者更新缓存或日志等本地资源信息。

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×