失败模式

在分布式架构中,例如SOA或微服务,你不能假定所有的服务都正常工作。可能服务器会宕机或者网络太慢或者断开。因此你必须处理调用失败。

rpcx有三种失败模式来处理调用失败,你可以创建XClient时设置它。

失败模式只有在同步调用(XClient.Call)时有意义。

快速失败

例程failfast

该模式下。rpcx在调用失败的时候会结束该调用。该失败并非事务失败,事务失败是正常的响应。调用失败可能会由服务器宕机或者网络问题导致。

失败转移

例程failover

该模式下,rpcx在调用失败之后会尝试其他节点。它会重试retries次数直到服务返回正常的响应。retriesOption中定义,默认值是3.

失败重试

例程failtry

该模式下,rpcx如果调用失败仍会尝试当前选择的节点。它会尝试retries次数直到服务返回正常的响应。retriesOption中定义,默认值是3.

失败备份

例程failbackup

该模式下,如果rpcx第一次请求没有在给定时间内返回,那么就会给其中一个服务器发送另一个请求。rpcx使用两个请求中最快返回的一个。给定时间在Option.BackupLatency中设置。

如果你想了解更多关于备份请求模式的细节,你可以读一下Jeff Dean‘s的Achieving Rapid Response Times in Large Online Services

results matching ""

    No results matching ""