设置重试次数编辑

默认情况下,客户端将重试 n 次,其中 n = 集群中的节点数。仅当操作导致“硬”异常时才会执行重试:连接拒绝、连接超时、DNS 查询超时等。4xx 和 5xx 错误不被视为可重试事件,因为节点返回的是操作响应。

如果您想禁用重试或更改重试次数,可以使用 setRetries() 方法

$client = ClientBuilder::create()
    ->setRetries(2)
    ->build();

当客户端用尽所有重试次数时,它将抛出最后收到的异常。例如,如果您有十个活动节点,并且 setRetries(5),则客户端最多尝试执行该命令五次。如果所有五个节点都导致连接超时(例如),则客户端将抛出 NoNodeAvailableException

use Elastic\Transport\Exception\NoNodeAvailableException;

$client = ClientBuilder::create()
    ->build();

try {
    $reponse = $client->info();
} catch (NoNodeAvailableException $e) {
    printf("No nodes alive: %s", $e->getMessage());
}