# Конфигурация кластера ## О разделе Данный раздел описывает технические параметры кластера Kafka и порядок их первичной конфигурации. Настройка указанных параметров выполняется администратором облачного провайдера на этапе развертывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. ## Выбор типа и размера дискового хранилища Производительность брокера сообщений напрямую зависит от скорости, с которой он может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. **IOPS**- количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее брокер сообщений обрабатывает запросы. : : : info Каждые 15 IOPS обеспечивают примерно 1 мегабит в секунду (Мбит/с) скорости чтения или записи при размере блока данных 64 КБ. : : : ### Доступные типы хранилищ: |Название|Лимит IOPS| |---|---| |**Fast SAS**|до 2 IOPS на 1 ГБ| |**SSD**|до 5 IOPS на 1 ГБ| |**Fast SSD**|до 10 IOPS на 1 ГБ| |**Ultra NVMe**|до 25 IOPS на 1 ГБ| : : : info После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера Kafka. Минимальный объем зависит от выбранного типа хранилища : : : ## Конфигурация вычислительных ресурсов В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер Kafka. ### Количество нод в кластере Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 3 до 14. ### Процессор (CPU) Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро брокер сообщений сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. ### Оперативная память (RAM) Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. ## Интернет При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру Kafka из сети интернет. **Доступные варианты скорости:** - 50 Мбит/с; - 100 Мбит/с; - 200 Мбит/с; - 300 Мбит/с; - 400 Мбит/с; - 500 Мбит/с; - 1000 Мбит/с (1 Гбит/с). : : : info Для выбранного канала предоставляется публичный IP-адрес. : : : ## Сетевой доступ к кластеру Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы: - **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером Kafka. Подробнее см. раздел IPSEC; - **Interconnect** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnect. Для построения Interconnect-соединения требуется сначала заказать PaaS-сервис и дождаться его предоставления, после чего отдельно заказать Interconnect через менеджера. Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности. # Калькулятор Для облегчения расчета параметров кластера Kafka разработан специализированный калькулятор - простое одностраничное приложение. В калькулятор вносятся исходные данные о планируемой нагрузке, после чего по нажатию кнопки **Получить** производится автоматический расчет конфигурации кластера. Все поля обязательны для заполнения. Формы можно удалять, добавлять и дублировать ранее заполненные, что позволяет гибко настраивать параметры под различные сценарии использования. ## Параметры топиков |Параметр|Описание| |---|---| |**Имя топика**|Уникальное наименование топика в рамках кластера. Поле обязательное. Используется для идентификации топика при расчетах.| |**Число партиций**|Количество партиций, на которые будет разбит топик. Значение должно быть больше числа консьюмеров.| |**Фактор репликации**|Количество копий данных, хранящихся на разных брокерах. Для продуктивных кластеров рекомендуется значение не менее 3.
**Примечание:** Количество узлов кластера формируется на основании параметра фактора репликации. Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера.| |**Средний размер сообщения**|Средний объем одного сообщения, передаваемого через топик.| |**Максимальный размер сообщения**|Максимальный объем одного сообщения. Используется для расчета пиковых нагрузок.| |**Частота сообщений**|Количество сообщений, отправляемых в топик за единицу времени.| |**Срок хранения сообщения**|Период времени, в течение которого сообщения хранятся в топике после записи. По истечении этого срока данные удаляются.| |**Имя продюсера**|Наименование приложения-отправителя (для идентификации в расчетах)| |**Количество экземпляров продюсера**|Число одновременно работающих экземпляров продюсера.| |**Имя консьюмера**|Наименование приложения-получателя (для идентификации в расчетах).| |**Количество экземпляров консьюмера**|Число одновременно работающих экземпляров консьюмера.
**Примечание:** Формы продюсеров и консьюмеров можно добавлять, удалять и дублировать. Это позволяет учитывать множественные источники и приемники данных в рамках одного расчета.| ## Расчет конфигурации кластера После заполнения всех полей нажимается кнопка **Получить**. Все расчеты выполняются в соответствии с планированием ресурсов, указанных в официальной документации Apache Kafka. В результате, рассчитанные параметры служат основой для формирования заказа на управляемый сервис Kafka. Калькулятор автоматически производит расчет следующих параметров: - **Количество узлов** - формируется на основании параметра фактора репликации (replication.factor). Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера; - **vCPU** - вычисляется из планируемого количества входящих сообщений и масштабируется в зависимости от числа узлов: чем больше кластер, тем меньше требуется CPU на отдельный сервер благодаря распределению нагрузки; - **RAM** - рассчитывается с учетом количества партиций, объема сообщений и числа подключений продюсеров и консьюмеров; - **Тип и объем дискового хранилища** - определяется на основе среднего и максимального размера сообщения, частоты отправки, срока хранения и фактора репликации; - **Параметры репликации** - учитывают заданный фактор репликации и обеспечивают отказоустойчивость кластера.