Что такое ключ и значение concumerRecord в Kafka java api? - PullRequest
0 голосов
/ 26 ноября 2018

Я сейчас учусь о Kafka Java Java.Среди содержимого о Concumer я часто видел ConsumerRecords.Я хочу точно знать, что означает ключ и значение.Я уже прочитал официальный документ, но не могу найти ответ.Пожалуйста, поделитесь своей мудростью.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете думать о каждой записи в теме Кафки как о паре ключ-значение.Ключ по умолчанию используется для маршрутизации сообщения в определенный раздел этой темы.Давайте возьмем пример.Допустим, у нас есть тема cars с 4 разделами.Теперь мы добавим в эту тему следующие сообщения (пары K, V).

  1. (седан, fusion)
  2. (внедорожник, highlander)
  3. (грузовик, Freightliner)
  4. (bike, harley)

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

  1. (null, fusion)
  2. (null, highlander)
  3. (null, Freightliner)
  4. (null, harley)

Теперь сообщения 1, 2, 3 и 4 будут назначены разделу №.0, 1, 2 и 3. Если вы укажете ключ и хотите переопределить стратегию разделения по умолчанию своей собственной, Kafka также позволит вам сделать это.

...