Кафка нескольких производителей для конкретного раздела - PullRequest
0 голосов
/ 18 мая 2019

Используя шаблон Spring Kafka, у меня есть 2 разных производителя, которые отправляют разные сообщения с одним и тем же ключом в тему всегда в одной форме:

Производитель 1: Отправляет ключ: 1 сообщение: раздел abc 0

Производитель 2: Отправка ключа: 2 сообщения: def

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

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

Дело в том, что производитель 2 не может узнать, какой раздел выбран источником 1.

Кафка гарантирует, что сообщения от разных производителей, отправленные с одним и тем же ключом, попадут в один и тот же раздел. Но при назначении раздела от производителя 1, производитель 2 отправляет сообщение с тем же ключом в другой раздел.

Я видел информацию об этом, но ни один из производителей не выбрал раздел, который будет использовать.

Не должен ли kafka назначить сообщение тому же разделу, даже если продюсер выберет раздел, который будет использовать?

1 Ответ

1 голос
/ 18 мая 2019

Ответ на этот пост может помочь вам понять проблему, с которой вы столкнулись. смещение раздела 0 очень близко к сумме смещения от остальных разделов В сущности

/ ** * Стратегия разделения по умолчанию: * *

Если разделуказан в записи, используйте его * Если раздел не указан, но ключ присутствует, выберите раздел на основе хеша ключа * Если раздел или ключ отсутствует, выберите раздел в раунде.робин мода * /
...