Скажите, пожалуйста, а есть ли какие-нибудь ограничения на максимальное количество кафка-консьюмеров к разным топикам кафки для одного сервера КХ?
У меня есть около 100 топиков кафки (суммарно под 100.000 rps), которые нужно затягивать в КХ. Попробовал и на жирных (4 консьюмера на один топик) и на нескольких сразу (4 параллельных топика по 1 консьюмеру) - проблем нет. Но будет ли всё так же гладко, если включить сразу 100? Какие есть подводные камни?
Думаю настроить реплики и тянуть данные с двух серверов параллельно.
Навскидку несколько особенностей, которые приходят в голову.
* Частота вставок.
Если отдельный консюмер 10 раз в секунду что-то отправляет в кликхаус, то 100 консюмеров будут 1000 раз в секунду отправлять.
Соответственно может вырасти потребность в уменьшении частоты инсертов. Либо средствами стороннего буфера, если вы его используете, либо что-то типа Buffer в самом кликхаусе, либо в кафко-параметрах консюмера увеличивать размер забираемых пачек данных ( fetch.min.bytes , fetch.max.bytes, max.partition.fetch.bytes,
fetch.max.wait.ms и т.п.)
* Для высоконагруженных топиков количество кафковских partitions на которые разбит топик может стать узким местом, ограничивающим масштабирование числа консюмеров. Поскольку из каждого partition кафкатопика не более чем один consumer из consumer group может читать, то число эффективно работающих консюмеров ограничено числом партишнов, все следующие консюмеры будут сидеть в засаде, ожидая что после перебалансировки им тоже что-нибудь перепадёт.