Перейти к основному содержимому
Перейти к основному содержимому

Ограничения TCP соединений

Обзор

Ваше TCP соединение с ClickHouse (т.е. одно через командный клиент) может автоматически отключаться после определенного числа запросов или по истечении времени. После отключения автоматическое повторное подключение не происходит (если не вызвано чем-то другим, например, отправкой другого запроса в командном клиенте).

Ограничения соединения активируются путем установки настроек сервера tcp_close_connection_after_queries_num (для ограничения по количеству запросов) или tcp_close_connection_after_queries_seconds (для ограничения по времени) на величину больше 0. Если оба ограничения активированы, соединение закрывается, когда достигается любое из них первым.

При достижении лимита и отключении клиент получает исключение TCP_CONNECTION_LIMIT_REACHED, и запрос, который вызвал отключение, никогда не обрабатывается.

Ограничения по количеству запросов

Предполагая, что tcp_close_connection_after_queries_num установлено на N, тогда соединение позволяет выполнить N успешных запросов. Затем, после запроса N + 1, клиент отключается.

Каждый обработанный запрос учитывается в лимите запросов. Таким образом, при подключении командного клиента может быть автоматический начальный системный запрос предупреждения, который также считается в лимите.

Когда TCP соединение находится в неактивном состоянии (т.е. оно не обрабатывало запросы в течение какого-то времени, указанного в настройках сессии poll_interval), количество запросов, учтенных до этого момента, сбрасывается на 0. Это означает, что общее количество запросов в одном соединении может превышать tcp_close_connection_after_queries_num, если произойдет неактивность.

Ограничения по времени

Продолжительность соединения измеряется с момента, как клиент подключается. Клиент отключается при первом запросе после того, как пройдет tcp_close_connection_after_queries_seconds секунд.