Я новичок в Кафке и у меня есть некоторые проблемы. Я знаю, что мы можем внедрить класс Partitioner с собственной логикой разделов, которая возвращает определенный раздел в зависимости от ключа сообщения. Также мы можем установить политику сжатия журнала, при которой будут храниться только последние версии сообщений с тем же ключом. Но мне нужно иметь разные ключи для сообщения для этих действий. Например, у нас есть объект с идентификатором и адресом (city_id). Я хочу выбрать раздел в зависимости от city_id и хранить только последнюю информацию о людях с таким же идентификатором. Есть ли способ решить эту проблему? Извините за мой плохой английский, я действительно хочу выучить Кафку.
Дополнительный ключ раздела Kafka или разделитель без ключа
Ответы (1)
Обязательно ли, чтобы все сообщения с одним и тем же городом попадали в один и тот же раздел? Если да, то почему? Можете ли вы представить свой вариант использования, который требует этого?
Если нет, вы можете просто включить как city_id
, так и person_id
в расчет хэша. Таким образом, сжатие должно удалить все, кроме последнего сообщения человека (при условии, что у вас есть сопоставление 1 к 1 от человека к городу, что обычно верно в схемах)?
person
Marko Bonaci
schedule
05.11.2015
Мне нужно публиковать сообщения в разных разделах по city_id, потому что я хочу использовать потребителей, которые будут потреблять только определенный раздел.
- person mechanikos; 07.11.2015