Как настроить брокера Kafka, чтобы он отказывал производителям, но не потребителям? - PullRequest
0 голосов
/ 12 июля 2019

У меня есть кластер из 3 брокеров, которые работают уже давно. Я хочу использовать их, чтобы новые сообщения не принимались, но потребители могли читать сообщения.

Цель состоит в том, чтобы у брокеров не было ничего неиспользованного, чтобы я мог их заменить. Мои производители достаточно устойчивы, чтобы выдерживать неспособность производить в течение определенного периода времени (локальный кэш, резервные системы и т. Д.). Мое отставание довольно низкое, поэтому оно должно быть очень быстрым.

Я искал различные конфиги, но не смог найти способ заблокировать только производителей, но не потребителей.

Что бы это ни стоило, я сделал , попробуйте добавить новых брокеров и затем переназначить разделы. Это занимает часы, даже для небольших тем.

1 Ответ

1 голос
/ 12 июля 2019

Мне кажется, что использования рекомендованного метода https://kafka.apache.org/documentation/#basic_ops_decommissioning_brokers должно быть достаточно (Вы, конечно, можете попробовать производителей брандмауэров или добавить ACL в кластер и запретить его, но мне кажется, что это накладные расходыи неуместно в этом случае).По крайней мере, у меня никогда не было с этим проблем.

Если данных много, переназначение действительно займет довольно много времени, но, учитывая ваши слова о том, что у вас довольно небольшое отставание, я бы посоветовалследующее:

, чтобы гарантировать, что задержка была постоянно близка к нулю, уменьшить срок хранения тем ( retention.ms для каждой темы или глобально log.retention.hours (здесь только с перезапуском)), переместите все разделы в новый кластер (как описано выше), затем верните сохранение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...