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).