Прокси

В данном разделе содержится информация о различных интерфейсах, которые позволяют работать с системой YTsaurus: HTTP и RPC прокси.

HTTP-прокси

HTTP-прокси — это универсальный языко-независимый интерфейс для работы с системой YTsaurus.

Предупреждение

HTTP API является весьма низкоуровневым и плохо подходит для написания простого и надёжного прикладного кода. В частности, при его использовании необходимо правильно организовать логирование запросов и разметку их correlation ids, балансировать нагрузку на прокси, брать дополнительные явные блокировки на таблицы, обрабатывать ошибки и в ряде случаев повторять действия и т. д.

Мы настоятельно рекомендуем использовать поддерживаемые нами SDK для вашего языка, в которых эти задачи уже решены, например для Python или С++.

Для работы в консоли также следует использовать CLI, а не задавать прямые HTTP-запросы.

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

  • Запросы к дереву метаинформации — например, get, set, create — считаются сравнительно лёгкими и обрабатываются контрольными (лёгкими) HTTP-прокси, роль control.
  • Запросы на чтение или запись — например, read-table, write-table — потенциально могут передавать существенно больший объём данных и сильнее нагружать сеть узлов кластера YTsaurus. Поэтому такие запросы обрабатываются так называемыми тяжёлыми прокси (data-прокси), роль data.
  • Отдельные процессы могут использовать свои роли, чтобы их нагрузка не мешала другим процессам.

Клиентские SDK обычно скрывают работу с ролями. Единственное, что может потребоваться, это указать роль в конфигурации клиента, если для тяжёлых запросов требуется использование нестандартной роли. Но при непосредственной работе с HTTP лёгкие и тяжёлые запросы должны отправляться на разные хосты. Если отправить тяжёлый запрос через лёгкий HTTP-прокси, сервер вернёт ошибку. Подробнее читайте в разделе Список тяжёлых прокси.

Примеры взаимодействия с YTsaurus через HTTP-интерфейс представлены в разделе HTTP-прокси.

Справочную информацию по HTTP-прокси можно посмотреть в разделе Справочник по HTTP-прокси.

RPC-прокси

RPC-прокси — это специальный интерфейс для взаимодействия с YTsaurus, через протокол RPC. Обращение к RPC Proxy происходит по протоколу TCP, порт 9013. Основные отличия RPC-прокси от HTTP-прокси:

  • более высокая скорость обработки запросов, что достигается за счет следующих особенностей:
    • работа с RPC-прокси происходит по специальному внутреннему протоколу, который лучше подходит для работы с большим числом одновременных запросов;
    • в RPC-прокси запрос передаётся в нативном формате YTsaurus, поэтому не требует дополнительного времени и ресурсов на конвертацию;
    • возможность сохранить совместимость на уровне пользовательского кода при изменениях в протоколе взаимодействия компонентов внутри YTsaurus кластера.

Как и HTTP-прокси, все RPC-прокси разделены на роли. Роль указывается в конфигурации при подключении к кластеру и позволяет разделять пользовательскую нагрузку. Роль по умолчанию default.

Поддерживаются следующие языки программирования:

По каждому языку программирования доступны примеры.

Предыдущая
Следующая