第三部分 特性 - 客户端FailMode
优质
小牛编辑
124浏览
2023-12-01
客户端提供了几种失败处理的方式。
当客户端连接服务器并且进行调用的时候,如果因为意外的情况,比如服务宕机,网络超时,服务返回error等原因,客户端并没有得到正确的返回结果,那么客户端会有一些处理,这个处理方式就是FailMode。
Failover
这个模式下Client会关闭这个连接,尝试下一个服务节点(根据路由选择下一个,如果是随机算法,有可能会选择相同的节点)。
当然它有一个重试次数的限制,一旦重试超过这个显示,服务调用失败。
Failfast
这个模式是一旦服务失败,则立即返回,不会进行重试。
Failtry
这个模式下 rpcx会使用已经选择的这个服务端再进行重试,而Failover是选择另外的一个服务端进行重试,两者还是有区别的。
当然它也有重试次数的限制。
Broadcast
这个模式下客户端会对所有的服务端都发送请求,只要任意一个服务节点返回错误,则这次调用就认为是失败的。
Forking
这个模式下客户端也会对所有的服务器都发送请求,但是只要有一个服务节点正确返回,这次调用就任务是成功的。
以上模式只对同步调用有效,对于异步调用,用户自己负责处理成功和失败的情况。