Кафка, получая раздел из consumerRecord - PullRequest
0 голосов
/ 19 декабря 2018

Если у меня есть одна тема, которая имеет 5 разделов, а затем у меня есть служба, потребляющая эти 5 разделов.Затем у потребителя я опрашиваю и возвращаю массив ConsumerRecords.

Может ли каждый отдельный ConsumerRecord быть из любого из этих 5 разделов?

Я вижу, что у ConsumerRecord есть метод:

int partition () {return this.partition;}

Итак, будет ли массив ConsumerRecords в каждом опросе составляться из записей, которые могут поступать из любого из 5 разделов?

Если был второй сервис, потребляющий те же 5 разделов, тозатем всего 2 сервиса, потребляющих с тех же 5 разделов.Будет ли номер раздела одинаковым в каждой службе для одного и того же сообщения Kafka?

Спасибо.

1 Ответ

0 голосов
/ 19 декабря 2018

Так будет ли массив ConsumerRecords в каждом опросе составляться из записей, которые могут поступать из любого из 5 разделов?

Да, когда работает только одна служба, она будет потреблятьиз всех 5 разделов.Таким образом, массив customerRecords в каждом опросе будет состоять из записей из любого из 5 разделов.

Если была вторая служба, потребляющая из тех же 5 разделов, то в общей сложности 2 службы, потребляющие изте же 5 разделов.Будет ли номер раздела одинаковым в каждой службе для одного и того же сообщения Kafka?

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

Потребители помечают себя именем группы потребителей (consumer.id), и каждая запись, опубликованная в теме, доставляется одному экземпляру потребителя в каждой подписке.группа потребителей.

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

Если обе службы находятся в разных группах потребителей.

В этом случае номер раздела будет одинаковым в каждой службе для одного и того же сообщения Kafka.

...