Некоторые способы, которые могут или не вписываются в ваш вариант использования, но могут помочь:
Включитькакой-то конкретный код в kafka key
, поэтому вам не нужно читать payload
, чтобы сказать, нужно ли обрабатывать сообщение или нет.
Просто глупый пример:
key payload
-----------------
10_ev xxx
08_ev yyy
...
В этом простом примере первые два числа определяют тип события.Каждой группе потребителей назначается определенное событие для обработки, а другие отбрасываются. Осторожно !Чтобы это работало, вам нужно запустить столько групп потребителей, сколько у вас есть типов событий, чтобы ни одно сообщение не было потеряно, или назначить конкретные диапазоны событий всем потребителям (например, потребитель 0 обрабатывает типы событий от 0 до 9, потребитель 1 от 10-19, ...)
- Разделение в зависимости от события
Вы можете сообщить производителю (тот, кто должен знать тип события, которое он производит) разделить (отправить сообщение определенному разделу в тему) сообщение, чтобы вы знали, например, что все события типа 0 находятся на раздел 0 , и потребляйте это с умом.
В любом случае, слишком большое количество типов событий может уменьшить параметры этого значения до годное к употреблению .Вы можете разделить на основе диапазонов (типы событий от 0-9 для раздела 0 и т. Д.) , но, может быть, там есть какая-то головная боль.
- Отправить на другойтемы в зависимости от типа события
Ну, этот, безусловно, самый простой, но может быть проблемой, если у вас много типов событий (, например, тысячи, ... ).:)
Надеюсь, это поможет.Здесь есть интересная информация о вашем случае использования здесь .