Как я могу контролировать запрос / сообщение, отправленное кластером Kafka?

Предположим, у меня есть 3 брокера Кафки, зоопарк, 50 производителей, 50 потребителей и 1 тема (testTopic1). И все потребители подписаны на testTopic1, Теперь я отправлю 50 сообщений одновременно с 50 продюсерами в одну и ту же тему (testTopic1) Теперь я хочу, чтобы кластер Kafka не отправлял потребителям более 40 сообщений одновременно. Оставшиеся 10 останутся в очереди или отбросят его.

Может быть, это балансировка нагрузки в Кафке. Я не понимаю, как я буду делать эту работу. Я новичок в Кафке, пожалуйста, помогите.

2 ответа

Брокеры Kafka тупые. Они не могут ограничить / удалить сообщение, опубликованное на kafka.

Если все потребители кафки являются частью одной и той же группы потребителей, и в ней 50 потребителей, то все потребители могут или не могут получать все эти 50 сообщений одновременно, в зависимости от ключа. Если несколько сообщений имеют один и тот же ключ, все сообщения одного и того же ключа будут прослушиваться одним пользователем по одному. Если все 50 сообщений имеют разные ключи, то они могут или не могут (в зависимости от хэша ключа) прослушиваться одним и тем же или разными потребителями.

Можете ли вы объяснить ваш вариант использования больше для лучшего понимания.

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

Если у вас есть одна тема и один раздел для этой темы; один из ваших потребителей, принадлежащих к одной и той же группе потребителей, будет обрабатывать все ваши сообщения, так как раздел гарантирует порядок обработки при обработке на стороне потребителя

Если у вас есть 10 групп потребителей, каждая из которых принадлежит 5 потребителям, и для этой темы существует один раздел, по крайней мере 10 потребителей обрабатывают ваше сообщение из темы. В случае, если один из потребителей из группы потребителей 1 не может обработать сообщение, другой потребитель из той же группы потребителей будет обрабатывать сообщение.

Если у вас есть требование отбрасывать случайным образом 1 из 10 сообщений во время обработки, вы можете добиться этого, изменив логику на стороне потребителя. Но согласно смещению группы потребителей в соответствии с брокером все данные обрабатываются в его конце, если система настроена на управление смещениями на стороне брокера.

Другие вопросы по тегам