Kafka KRaft Mode: Технічна англійська для кластерів без ZooKeeper

Освоєння англійського словника для режиму Apache Kafka KRaft: протоколи консенсусу, кворум контролера, керування метаданими, терміни міграції і мова розподілених систем для інженерів DevOps.

Apache Kafka замінив свою залежність від Apache ZooKeeper на KRaft — режим метаданих Kafka Raft — що спрощує роботу з кластерами і їх масштабування. Цей архітектурний зсув вводить точний словник з теорії розподілених систем: консенсус, кворум, епоха, вибори лідерів. Якщо ви працюєте з Kafka у будь- якій ролі, вам слід розуміти і правильно використовувати ці англійські терміни. Зловживання ними в оглядах проектів або післясмертних інциденти сигналізує про прогалини в розумінні, що рідні англійські колеги помічають. Цей підручник створює потрібний вам словник.


Чому Крафт? Переклад з англійської

KRaft був введений для усунення операційної складності підтримки окремого ансамблю ZooKeeper разом з Kafka. У дискусіях англійською ви часто почуєте такі фрази:

    • « ZooKeeper був окремою рухомою частиною — KRaft переносить керування метаданими до самої Kafka. » *
    • “Ми вивели з експлуатації ансамбль ZooKeeper після переходу на KRaft.” *
    • “KRaft спрощує операційний слід кластера.” *

Зрозуміти * чому * допоможе вам використовувати словниковий запас у контексті.


Дистрибутивний консенсусний словник

Consensus

** Консенсус ** у розподілених системах означає, що всі учасники узгоджують одне і те ж значення або стан — наприклад, який вузол є поточним лідером. Консенсусні протоколи забезпечують згоду навіть тоді, коли деякі вузли не спрацьовують.

«KRaft використовує алгоритм консенсусу Raft для забезпечення того, щоб всі вузли контролера погоджувалися з поточним кластером метаданих.»

Консенсусний алгоритм (англ. Consensus algorithm)

** Raft ** — це алгоритм консенсусу, розроблений для того, щоб бути зрозумілим — альтернатива Paxos. Вона обирає лідерів і реплікує журнал до послідовників. KRaft — це реалізація Kafka для Raft, призначена для керування метаданими.

«Raft гарантує, що існує тільки один лідер в один момент, навіть під час розділів мережі»

Quorum

** Кворум ** це мінімальна кількість вузлів, які повинні погодитися (або бути доступними) для того, щоб система могла продовжувати роботу. У кворумі з 3 вузлів контролера, принаймні 2 з них повинні бути доступними.

«З кворумом контролера 3 вузлів, ми можемо терпіти один контрольний зрив без втрати доступності»

Фраза “досягти кворуму” означає досягнення необхідного мінімуму для прийняття рішення.

Вибори лідерів

** Вибори лідерів ** це процес, за допомогою якого вузли у розподіленій системі обирають одного вузла, який буде виконувати функції координатора. У KRaft активний контролер обирається шляхом виборів лідерів.

«Коли активний контролер зламався, вибори лідерів завершилися менш ніж за 30 секунд і кластер відновив нормальну роботу»

Epoch

Епоха це пронумерований період, протягом якого певний лідер є авторитетним. Коли новий лідер обирається, число епохи збільшується. Номери епох запобігають тому, щоб старі лідери видавали застарілі команди після невдачі.

«Будь-яка команда з нижчої епохи відкидається — це запобігає сценаріям розділення мозку після того, як мережевий розділ заживляє»

Розділений мозок

** Розділений мозок ** — це стан невдачі, коли два вузли одночасно вважають, що вони є лідерами, що призводить до конфліктних оновлень стану. Системи, засновані на кворумі, запобігають розділенню мозку, вимагаючи згоди більшості.

«Це ціла ідея кворуму, щоб запобігти розділенню мозку — з 5 контролерами, вам потрібно 3, щоб погодитися, перш ніж будь-яка зміна метаданих вступить в силу»


Словник архітектурних термінів

Controller

У режимі KRaft, ** контролер ** є вузлом Kafka, який відповідає за метадані кластера — керування керування розділами, реєстрацію брокера і налаштування. У режимі ZooKeeper ці обов’язки були розділені між ZooKeeper і одним «контролером» брокера.

«KRaft дозволяє вам запускати виділені вузли контролера окремо від ваших брокерських вузлів для великих кластерів.»

Активний контролер

** активний контролер ** — це єдиний лідер вузла у кворумі контролерів, який на даний момент обробляє всі зміни метаданих. Інші контролери є підлеглими.

«Всі записи метаданих проходять через активний контролер — наслідувачі реплікують журнал пасивним чином»

Контролер кворуму

** Кворум контролерів ** — це набір вузлів Kafka, які беруть участь у консенсусі Raft щодо метаданих. Типова виробнича установка використовує 3 або 5 вузлів контролерів.

«Ми використовуємо кворум контролера з 5 вузлами, тому можемо терпіти до 2 одночасних невдач контролера»

Журнал метаданих

Журнал ** метаданих ** — це журнал, реплікований Raft у KRaft, який записує всі зміни стану кластера: приєднання брокерів, створення тем, перепризначення розділів. Він замінює дерево znode ZooKeeper.

«Журнал метаданих є єдиним джерелом правди для стану кластера в KRaft — кожен вузол контролера має репліку.»

Реєстрація брокера

** Реєстрація брокера ** — це процес, за допомогою якого брокер Kafka оголосить про себе кворум контролера під час запуску. Контролер підтверджує і присвоює відповідальність.

Після перезапуску, дивіться журнали, щоб підтвердити, що реєстрація брокера завершилася успішно перед відправкою трафіку


Міграція та оперативний словник

Migration

** Міграція ** у цьому контексті означає перехід з режиму Kafka заснованого на ZooKeeper до режиму KRaft. Kafka надає шлях переходу двох режимів.

«Ми ретельно спланували міграцію — немає повернення до ZooKeeper, як тільки метадані були мігровані.»

Режим мосту

** Режим мосту ** — це перехідний стан під час міграції KRaft, коли контролери ZooKeeper і KRaft працюють одночасно, що дозволяє поступове переключення.

«Ми працювали в режимі мосту протягом двох тижнів до завершення переходу — це дозволило нам перевірити поведінку KRaft без повного затвердження»

Cutover

Перехід - це момент, коли ви переходите зі старої системи на нову. Вона часто має конотацію точки, з якої немає повернення.

«Розкладіть перехід під час вікна обслуговування — як тільки ми завершимо міграцію метаданих, ZooKeeper більше не буде консультуватися»

Decommission

Снятие с вооружения означает официально вывести его из эксплуатации. Після успішного перенесення KRaft ви вилучаєте з експлуатації ансамбль ZooKeeper.

«Після трьох днів стабільної роботи в режимі KRaft, ми вивели з експлуатації кластер ZooKeeper»

Оперативний відбиток

** Операційний слід ** стосується загальної складності, вартості і навантаження на обслуговування роботи системи. KRaft зменшує оперативний слід Kafka, виключаючи ZooKeeper.

«Видалення ZooKeeper зменшує наш оперативний відбиток значно — на одну менше системи для моніторингу, латку і масштабування»


Ключові слова

  • controller quorum — « Розмір контролера кворуму для ваших вимог щодо стійкості до помилок. »
  • leader election — « Спостерігати за затримкою виборів лідерів після перезапуску будь- якого контролера. »
  • ** журнал метаданих ** — « Журнал метаданих має бути репліковано до всіх вузлів контролера. »
  • achieve quorum — « Класт затримається, якщо не зможе досягти кворуму. »
  • tolerate failures — « Кворум з 3 вузлів може терпіти одну помилку. »
  • ** rolling restart ** — « Виконати послідовне перезапуск, щоб оновлювати контролери без перерви. »
  • ** network partition ** — « Перевірити поведінку кворуму під час імітації мережевого розділу. »
  • ** operational overhead ** — « KRaft значно зменшує операційні витрати. »

Фрази для дизайн-оглядів і постмортемів

    • “Ми втратили кворум, коли два контролери одночасно перестали працювати — кластер став недоступним для операцій з метаданими.” *
    • “Чому ми досі запускаємо ZooKeeper? Ми повинні бути на KRaft до цього часу — це був GA з Kafka 3.3.”*
    • “Вибір лідерів завершено, але новий активний контролер мав застарілий журнал метаданих — це спричинило невідповідність.” *
    • “Для кластера такого розміру я рекомендую кворум контролера з 5 вузлів, а не з 3 — додаткова стійкість до помилок вартує витрат.” *
    • “Ми повинні перевірити налаштування режиму мосту перед тим, як запланувати остаточне переключення.” *

Practice

Напишіть коротке резюме плану перенесення англійською мовою — від 5 до 7 речень — з описом кроків для перенесення виробничого кластера Kafka з режиму ZooKeeper до KRaft. Напиши так, ніби ти представляєшся перед аудиторією старших інженерів. Використовуйте принаймні 7 термінів з цього підручника: * кворум контролера *, * режим мосту *, * перехід , * вибори лідерів , * журнал метаданих , * виведення з експлуатації , * операційний слід , * кворум , * епоха . Зверніть увагу на прикметники — англійською мовою використовуються * migrate to KRaft (а не * migrate on або * migrate into), * tolerate failures (а не * endure failures), і * achieve quorum (а не * reach quorum count).

Поширені запитання

Про що ця стаття "Kafka KRaft Mode: Технічна англійська для кластерів без ZooKeeper"?

Освоєння англійського словника для режиму Apache Kafka KRaft: протоколи консенсусу, кворум контролера, керування метаданими, терміни міграції і мова розподілених систем для інженерів DevOps.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Kafka KRaft Mode: Технічна англійська для кластерів без ZooKeeper"?

Приблизно 9 min.