Разница между настройкой тайм-аута на стороне клиента и сервера - PullRequest
0 голосов
/ 25 мая 2018

В соответствии с этим потоком: Cassandra read_request_timeout_in_ms, настроенный для внешнего (клиентского) запроса , я понимаю, что установка тайм-аута на стороне сервера не просто достаточна, нам нужно также установить на стороне клиента.

В чем разница между настройкой тайм-аута на стороне клиента и сервера?

Пример:

          Setting the request time out in server side in Cassandra (cassandra.yaml)
                                 VS
          Setting the request time out in client side in Cassandra driver 

РЕДАКТИРОВАНИЕ:

driver read timeout: the driver did not receive any response from the current coordinator within SocketOptions.setReadTimeoutMillis. It invokes onRequestError on the retry policy with an OperationTimedOutException to decide what to do.
server read timeout: the driver did receive a response, but that response indicates that the coordinator timed out while waiting for other replicas. It invokes onReadTimeout on the retry policy to decide what to do.

Может кто-нибудь четко объяснить цель и разницу между ними, пожалуйста.

1 Ответ

0 голосов
/ 18 сентября 2018

Установка времени ожидания на стороне сервера, т.е. в cassandra.yaml, не совпадает с настройкой времени ожидания драйвера (также на стороне клиента) с помощью SocketOptions.setReadTimeoutMillis.Они оба работают индивидуально.Один не перевешивает другой.В общем, вы должны установить время ожидания драйвера немного больше, чем время ожидания на стороне сервера.

  1. Если узел Cassandra доступен и работает, но он не может ответить в течение времени чтения, указанного в cassandra.yaml, он выдастисключение и драйвер получит такое же исключение.Драйвер может повторить попытку, если настроен.
  2. Если узел Cassandra по какой-либо причине не отвечает, драйвер не может ждать бесконечно.Вот когда истекает время ожидания водителя и выдает исключение, если Кассандра не отвечает.
...