Потребитель потребляет из разделов реплики, если несколько потребителей работают в одной группе потребителей?

Давай, ребята! Никто не упомянул способ Guava сделать это (что, возможно, удивительно):

import com.google.common.base.Stopwatch;

Stopwatch timer = Stopwatch.createStarted();
//method invocation
LOG.info("Method took: " + timer.stop());

Приятно, что Stopwatch.toString () делает хорошую работу по выбору единиц времени для измерения. То есть если значение невелико, оно выведет 38 нс, если оно длинное, оно покажет 5 м 3s

Еще лучше:

Stopwatch timer = Stopwatch.createUnstarted();
for (...) {
   timer.start();
   methodToTrackTimeFor();
   timer.stop();
   methodNotToTrackTimeFor();
}
LOG.info("Method took: " + timer);

Примечание: Google Guava требуется Java 1.6 +

-2
задан wardziniak 16 January 2019 в 10:56
поделиться

2 ответа

  1. Что происходит в случае, когда несколько потребителей (одна и та же группа) используют одну тему?
    Ответ: Производители отправляют записи в определенный раздел на основе ключа записи здесь. Разделитель по умолчанию для Java использует хэш ключа записи для выбора раздела. Когда в одной и той же группе есть несколько потребителей, каждый потребитель получает свой раздел. Таким образом, в этом случае только один потребитель получает все сообщения. Когда потребитель, который получает сообщения, выходит из строя, координатор группы (один из посредников в кластере) вызывает перебалансировку, и затем этот раздел назначается одному из доступных потребителей.

  2. Они получают те же данные?
    Ответ: Если потребитель фиксирует использованные сообщения в разделе и отключается, как указано выше, происходит перебалансировка. Потребитель, который получает этот раздел, не будет получать сообщения. Но если потребитель отключится до того, как его завершит, то получатель этого раздела получит сообщения.

  3. Как регулируется смещение? Это отдельно для каждого потребителя?
    Ответ: Нет, смещение не является отдельным для каждого потребителя. Раздел никогда не назначается нескольким потребителям в одной и той же группе одновременно. Потребитель, которому назначен раздел, по умолчанию также получает смещение.

0
ответ дан svbp 16 January 2019 в 10:56
поделиться

Я бы посоветовал вам прочитать, по крайней мере, первые несколько глав окончательного руководства конфлюента по кафке, чтобы получить предварительное понимание того, как работает кафка.

Я держал свои ответы краткими. Пожалуйста, обратитесь к книге для подробного объяснения.

Как регулируется смещение? Это отдельно для каждого потребителя?

Зависит от идентификатора группы. Для группы управляется только одно смещение.

Что происходит в случае, когда несколько потребителей (одной и той же группы) используют одну тему?
Потребителей может быть несколько - все могут быть идентифицированы одной и той же или разными группами. Если 2 потребителя принадлежат к одной группе, оба не получат все сообщения.

Получают ли они одни и те же данные?
Нет. После отправки сообщения и подтверждения чтения смещение увеличивается для этой группы. Таким образом, другой потребитель с той же группой не получит это сообщение.

Надеюсь, это поможет:)

0
ответ дан Manoj Vadehra 16 January 2019 в 10:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: