Дополнительный ключ раздела Kafka или разделитель без ключа

Я новичок в Кафке и у меня есть некоторые проблемы. Я знаю, что мы можем внедрить класс Partitioner с собственной логикой разделов, которая возвращает определенный раздел в зависимости от ключа сообщения. Также мы можем установить политику сжатия журнала, при которой будут храниться только последние версии сообщений с тем же ключом. Но мне нужно иметь разные ключи для сообщения для этих действий. Например, у нас есть объект с идентификатором и адресом (city_id). Я хочу выбрать раздел в зависимости от city_id и хранить только последнюю информацию о людях с таким же идентификатором. Есть ли способ решить эту проблему? Извините за мой плохой английский, я действительно хочу выучить Кафку.


person mechanikos    schedule 05.11.2015    source источник


Ответы (1)


Обязательно ли, чтобы все сообщения с одним и тем же городом попадали в один и тот же раздел? Если да, то почему? Можете ли вы представить свой вариант использования, который требует этого?

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

person Marko Bonaci    schedule 05.11.2015
comment
Мне нужно публиковать сообщения в разных разделах по city_id, потому что я хочу использовать потребителей, которые будут потреблять только определенный раздел. - person mechanikos; 07.11.2015