Вы можете думать о каждой записи в теме Кафки как о паре ключ-значение.Ключ по умолчанию используется для маршрутизации сообщения в определенный раздел этой темы.Давайте возьмем пример.Допустим, у нас есть тема cars
с 4 разделами.Теперь мы добавим в эту тему следующие сообщения (пары K, V).
- (седан, fusion)
- (внедорожник, highlander)
- (грузовик, Freightliner)
- (bike, harley)
То, что Kafka сделает для каждого из этих сообщений, - это вычисление хэша ключа по модулю количества разделов.Итак, сообщение-1 перейдет в раздел № hashCode(sedan) % 4
из cars
.Сообщение-2 пойдет в раздел №.hashCode(suv) % 4
и т. Д.Если вы не укажете какой-либо ключ, т. Е. Ключ равен нулю, то в зависимости от стратегии разделения по умолчанию (например, циклический перебор) Kafka назначит раздел для сообщения.В этом случае сообщения будут выглядеть так:
- (null, fusion)
- (null, highlander)
- (null, Freightliner)
- (null, harley)
Теперь сообщения 1, 2, 3 и 4 будут назначены разделу №.0, 1, 2 и 3. Если вы укажете ключ и хотите переопределить стратегию разделения по умолчанию своей собственной, Kafka также позволит вам сделать это.