Ни enableRetry()
, ни maxRetryAttempts()
не настраивают повторные попытки для каждого метода.enableRetry()
включил всю «подсистему», так что будет следовать конфигурация;в конце концов, он будет включен по умолчанию, но это не означает, что повторные попытки будут происходить для всех методов.И maxRetryAttempts()
ограничивает конфигурацию;если в конфигурации указано сделать 5, а вы установите ограничение 3, то будет выполнено только 3.Но это не увеличивает количество повторных попыток.
«Конфигурация», на которую я продолжаю ссылаться, происходит из конфигурации службы.См. gRFC A6 Client Retries для получения ключей конфигурации.Сам сервисный конфиг в настоящее время также не включен по умолчанию.Для повторных попыток самый простой способ попробовать это - использовать ManagedChannelBuilder.defaultServiceConfig(Map serviceConfig)
, который был добавлен в v1.20.0 (скоро будет выпущен).Но вы также можете использовать записи TXT в DNS и передавать -Dio.grpc.internal.DnsNameResolverProvider.enable_service_config=true
при выполнении вашего двоичного файла.
Повторные попытки и конфигурирование службы в настоящее время являются экспериментальными.