# Конфигурация кластера

В разделе описаны технические параметры кластера Kafka и порядок их первичной настройки.

Конфигурация выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к изменению этих параметров. Перед созданием кластера клиент передаёт менеджеру перечень требуемых параметров. Администратор выполняет настройку в соответствии с согласованными требованиями.

## Выбор типа и размера дискового хранилища

Производительность брокера сообщений напрямую зависит от скорости чтения и записи на диск. При заказе кластера необходимо выбрать тип дискового хранилища — он определяет максимальную скорость работы (IOPS) и время отклика.

**IOPS** (Input/Output Operations Per Second) — количество операций чтения или записи, которые диск выполняет за секунду. Чем выше IOPS, тем быстрее брокер обрабатывает запросы.

::: warning Примечание
Каждые 15 IOPS обеспечивают примерно 1 Мбит/с скорости чтения или записи при размере блока данных 64 КБ.
:::

### Доступные типы хранилищ:

|Название       | Лимит IOPS         |
|---------------|--------------------|
|**Fast SAS**   | до 2 IOPS на 1 ГБ  |
|**SSD**        | до 5 IOPS на 1 ГБ  |
|**Fast SSD**   | до 10 IOPS на 1 ГБ |
|**Ultra NVMe** | до 25 IOPS на 1 ГБ |

::: warning Примечание
После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера Kafka. Минимальный объем зависит от выбранного типа хранилища
:::

## Конфигурация вычислительных ресурсов

В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер Kafka.

#### Основные понятия

| Термин                        | Описание |
|-------------------------------|----------|
| **Количество нод в кластере** | Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 3 до 14. |
| **Процессор (CPU)**           | Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро брокер сообщений сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. |
| **Оперативная память (RAM)**  | Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. |

## Интернет

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

**Доступные варианты скорости:**

- 50 Мбит/с;
- 100 Мбит/с;
- 200 Мбит/с;
- 300 Мбит/с;
- 400 Мбит/с;
- 500 Мбит/с;
- 1000 Мбит/с (1 Гбит/с).

::: warning Примечание
Для выбранного канала предоставляется **публичный IP-адрес**.
:::

## Сетевой доступ к кластеру

Выбор способа подключения зависит от архитектуры приложений и требований к безопасности. Доступны два варианта:

- **IPsec-подключение** — организация защищённого туннеля между инфраструктурой клиента и кластером Kafka. Подробнее см. раздел «IPsec»;
- **Interconnect** — прямое сетевое соединение между сервисами внутри платформы без использования публичных сетей. Подробнее см. раздел «Interconnect».

**Особенности Interconnect:**
- сначала закажите PaaS-сервис и дождитесь его предоставления;
- затем отдельно закажите Interconnect через менеджера.

## Калькулятор расчёта кластера

Для расчёта параметров кластера Kafka разработан специализированный калькулятор — простое веб-приложение.

**Как работает:**
- в калькулятор вносятся исходные данные о планируемой нагрузке (пропускная способность, количество партиций и т.д.);
- после нажатия кнопки **«Получить»** автоматически рассчитывается конфигурация кластера.

Все поля обязательны для заполнения. Формы можно удалять, добавлять и дублировать — это позволяет гибко настраивать параметры под разные сценарии использования.

## Параметры топиков

| Параметр                              |Описание |
|---------------------------------------|---------|
| **Имя топика**                        |Уникальное наименование топика в рамках кластера. Поле обязательное. Используется для идентификации топика при расчетах.|
| **Число партиций**                    |Количество партиций, на которые будет разбит топик. Значение должно быть больше числа консьюмеров.|
| **Фактор репликации**                 |Количество копий данных, хранящихся на разных брокерах. Для продуктивных кластеров рекомендуется значение не менее 3.  <br>**Примечание:** Количество узлов кластера формируется на основании параметра фактора репликации. Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера.|
| **Средний размер сообщения**          |Средний объем одного сообщения, передаваемого через топик.|
| **Максимальный размер сообщения**     |Максимальный объем одного сообщения. Используется для расчета пиковых нагрузок.|
| **Частота сообщений**                 |Количество сообщений, отправляемых в топик за единицу времени.|
| **Срок хранения сообщения**           |Период времени, в течение которого сообщения хранятся в топике после записи. По истечении этого срока данные удаляются.|
| **Имя продюсера**                     |Наименование приложения-отправителя (для идентификации в расчетах)|
| **Количество экземпляров продюсера**  |Число одновременно работающих экземпляров продюсера.|
| **Имя консьюмера**                    |Наименование приложения-получателя (для идентификации в расчетах).|
| **Количество экземпляров консьюмера** |Число одновременно работающих экземпляров консьюмера.  <br>**Примечание:** Формы продюсеров и консьюмеров можно добавлять, удалять и дублировать. Это позволяет учитывать множественные источники и приемники данных в рамках одного расчета.|

## Расчет конфигурации кластера

После заполнения всех полей нажимается кнопка **Получить**. Все расчеты выполняются в соответствии с планированием ресурсов, указанных в официальной документации Apache Kafka.  
В результате, рассчитанные параметры служат основой для формирования заказа на управляемый сервис Kafka.

Калькулятор автоматически производит расчет следующих параметров:

- **Количество узлов** - формируется на основании параметра фактора репликации (replication.factor). Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера;
- **vCPU** - вычисляется из планируемого количества входящих сообщений и масштабируется в зависимости от числа узлов: чем больше кластер, тем меньше требуется CPU на отдельный сервер благодаря распределению нагрузки;
- **RAM** - рассчитывается с учетом количества партиций, объема сообщений и числа подключений продюсеров и консьюмеров;
- **Тип и объем дискового хранилища** - определяется на основе среднего и максимального размера сообщения, частоты отправки, срока хранения и фактора репликации;
- **Параметры репликации** - учитывают заданный фактор репликации и обеспечивают отказоустойчивость кластера.