Что означает & ldquo; Rebalancing & rdquo; значит в контексте Apache Kafka?

Окончательное решение этой проблемы состоит в том, чтобы перейти к синтаксису синтаксиса C + 11, если вы можете.

A a{};

http://www.stroustrup.com/C++ 11FAQ.html # равномерная-INIT

37
задан ha9u63ar 29 May 2018 в 10:21
поделиться

1 ответ

Потребительское восстановление равновесия решает, какой потребитель ответственен за который подмножество всех доступных разделов для некоторой темы (тем). Например, у Вас могла бы быть тема с 20 разделами и 10 потребителями; в конце восстановления равновесия Вы могли бы ожидать, что каждый потребитель будет читать из 2 разделов. Если Вы закрываете 10 из тех потребителей, Вы могли бы ожидать, что у каждого потребителя будет 1 раздел после того, как восстановление равновесия завершилось. Потребительское восстановление равновесия является динамическим присвоением раздела, которое может обработать автоматически Kafka.

Координатор Группы А является одним из брокера, ответственного для общения с потребителями для достижения, изменяет баланс между потребителем. В более ранней версии Служитель зоопарка сохранил детали метаданных, но последняя версия она хранит на брокерах. Потребительский координатор получает heartbeat и опрашивающий от всех потребителей потребительской группы так он знающий о каждом потребительском heartbeat и менеджере их смещение на разделах.

Лидер Группы: Один из потребителя Потребительской группы работает лидером группы, который выбран координатором Группы, и будет ответственный за то, что принял решение присвоения раздела от имени всех потребителей в группе.

Сценарий Восстановления равновесия:

  1. Потребительская группа подписывается на любые темы
  2. , Потребительский экземпляр А не мог способный отправить сердцебиение с session.heart.beat временным интервалом.
  3. Потребитель долгий процесс превышают тайм-аут опроса

  4. Потребитель Потребительской группы посредством исключения

  5. Новый добавленный раздел.

  6. Масштабирование Вверх и вниз по потребителю. Добавленный новый потребитель или удаляет существующего потребителя вручную для [1 124]

Потребительское Восстановление равновесия

Потребительское восстановление равновесия, инициируемое, когда потребитель запрашивает присоединиться к группе или оставляет группу. Лидер Группы получает список всего активного потребителя от Координатора Группы. Лидер группы решает раздел (разделы), присвоенный каждому потребителю при помощи PartitionAssigner. Лидер Once Group завершает присвоение раздела, оно отправляет список присвоений Координатору Группы, которые передают их обратно информация всему потребителю. Группа только отправляет применимые разделы их потребителю не другой потребитель присвоенные разделы. Лидер Only Group, знающий обо всем потребителе и ее присвоенных разделах. После того, как восстановление равновесия завершено, потребители начинают отправлять Heartbeat Координатору Группы что его живое. Потребители отправляют запрос OffsetFetch Координатору Группы для получения в последний раз фиксировавших смещений для их присвоенных разделов. Потребители начинают использовать переданный для недавно присвоенного раздела.

управление состоянием

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

, Когда Группа начинают изменять баланс, координатор группы сначала переключает ее состояние для изменения баланса так, чтобы все взаимодействующие потребители были уведомлены для возражения с группой. Однажды восстановление равновесия завершенный координатор Группы создает идентификатор нового поколения и уведомленный всем потребителям, и группа продолжают синхронизировать этап, где потребители отправляют синхронизирующий запрос и идут для ожидания, пока конец Лидера группы, генерирующий новый, не присваивает раздел. Как только потребители получили новый assigne раздел, который они переместили в стабильный этап.

enter image description here

Статическое Членство

изменение баланса Thies является довольно тяжелой операцией, поскольку это потребовало, чтобы остановить всего потребителя и ожидать для получения нового присвоенного раздела. На каждом восстановлении равновесия всегда создают идентификационное обновление средств нового поколения все. Решить этот служебный Kafka 2.3 + представило Статическое Членство для сокращения ненужного Восстановления равновесия. KIP-345

В Статическом потребительском состоянии Членства сохранится, и на Восстановлении равновесия доберется то же присвоение, применяются. Это использует новый group.instance.id для сохранения членских идентификационных данных. Таким образом, даже в худшем варианте развития событий ID пользователя получает перестановку к assigne новому разделу, но все еще тот же потребительский идентификатор экземпляра получит то же присвоение раздела

instanceId: A, memberId: 1, assignment: {0, 1, 2}
instanceId: B, memberId: 2, assignment: {3, 4, 5}
instanceId: C, memberId: 3, assignment: {6, 7, 8}

И после перезапуска:

instanceId: A, memberId: 4, assignment: {0, 1, 2}
instanceId: B, memberId: 2, assignment: {3, 4, 5}
instanceId: C, memberId: 3, assignment: {6, 7, 8}   

Касательно:

  1. https://www.confluent.io/blog/kafka-rebalance-protocol-static-membership

  2. https://cwiki.apache.org/confluence/display/KAFKA/KIP-345%3A+Introduce+static+membership+protocol+to+reduce+consumer+rebalances

0
ответ дан 27 November 2019 в 02:31
поделиться
Другие вопросы по тегам:

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