---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/en/user-guide/proxy/about.md
  - https://ytsaurus.tech/docs/ru/user-guide/proxy/about.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

<!-- source: ru/_includes/user-guide/proxy/about.md -->
# Прокси

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

## HTTP-прокси { #http_proxy }

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


{% note warning "Предупреждение" %}

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

Мы настоятельно рекомендуем использовать поддерживаемые нами SDK для вашего языка, в которых эти задачи уже решены, например для [Python](https://ytsaurus.tech/docs/ru/api/python/start.md) или [С++](https://ytsaurus.tech/docs/ru/api/cpp/description.md).

Для работы в консоли также следует использовать [CLI](https://ytsaurus.tech/docs/ru/api/cli/cli.md), а не задавать прямые HTTP-запросы.

{% endnote %}

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

Клиентские SDK обычно скрывают работу с ролями. Единственное, что может потребоваться, это указать роль в конфигурации клиента, если для тяжёлых запросов требуется использование нестандартной роли. Но при непосредственной работе с HTTP лёгкие и тяжёлые запросы должны отправляться на разные хосты.   Если отправить тяжёлый запрос через лёгкий HTTP-прокси, сервер вернёт ошибку. Подробнее читайте в разделе [Список тяжёлых прокси](https://ytsaurus.tech/docs/ru/user-guide/proxy/http-reference.md#hosts).


Примеры взаимодействия с YTsaurus через HTTP-интерфейс представлены в разделе [HTTP-прокси](https://ytsaurus.tech/docs/ru/user-guide/proxy/http.md).

Справочную информацию по HTTP-прокси можно посмотреть в разделе [Справочник по HTTP-прокси](https://ytsaurus.tech/docs/ru/user-guide/proxy/http-reference.md).

## RPC-прокси { #rpc_proxy }

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

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

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


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

- [C++](https://ytsaurus.tech/docs/ru/user-guide/proxy/rpc.md#c_plus_plus)
- [Java](https://ytsaurus.tech/docs/ru/user-guide/proxy/rpc.md#java)
- [Python](https://ytsaurus.tech/docs/ru/user-guide/proxy/rpc.md#python)

По каждому языку программирования доступны примеры.
<!-- endsource: ru/_includes/user-guide/proxy/about.md -->