На вопрос, почему вы выбрали Кафку, как бы вы ответили?
На вопрос, почему вы выбрали Кафку, как бы вы ответили?

Значение слова «надежный» объясняется в энциклопедии Baidu: заслуживающий доверия, заслуживающий доверия и надежный друг. Так является ли Кафка надежным другом? Поскольку большинство систем высокой доступности во всем мире поддерживаются Kafka, у Kafka должны быть свои преимущества. Следуйте за мной, чтобы проанализировать его.

Кроме того, я хотел бы отметить, что у Kafka на данный момент 27,6 тысяч звезд и 13,6 тысяч форков на GitHub.

В надежных руках, под присмотром сильных людей
В надежных руках, под присмотром сильных людей

В надежных руках, под присмотром сильных людей

Эта статья включена в мое «Руководство по собеседованию по изучению Java» с открытым исходным кодом, в котором рассматриваются основные знания Java и ключевые моменты собеседования, которые необходимо освоить Java-программистам. Надеюсь получить от всех ⭐ Star ⭐поддерживать。GitHubадрес:https://github.com/hdgaadd/JavaGetOffer,Я верю, что вы не пожалеете о просмотре.

1. Высшая точка Кафки

Интервьюер: Вы знаете высшую точку Кафки?

Мы все знаем, что сообщения Kafka сохраняются в ведущем разделе и репликах раздела.,KafkaЧтобы гарантировать, что даже если сообщение будет прочитано из реплики раздела, оно будет прочитано толькоПоданныйновости。KafkaВысокий уровень воды связан сэта цельи разработал。

Если вам неясна концепция отправки сообщений, вы можете прочитать следующее объяснение.

KafkaновоститолькосуществоватьВсе копии разделовПосле синхронизации сообщения,Вот и всеПоданныйновости

Во время процесса копирования раздела,Ведущий раздел добавит к отправляемым данным текущий высокий уровень воды. Текущий уровень паводка — это смещение копии.,записал текущийПоданныйновостимаксимальное смещение。Копия раздела может быть основана накопия ведущего разделаОбеспечен высокий уровень воды,избегатьНе отправленоновостипотребляется потребителями。

Так же, как на картинке ниже,максимальное смещениеПредел подобен уровню воды в море.。

Вставьте сюда описание изображения
Вставьте сюда описание изображения

2. Надежность сообщений Kafka

2.1 Надежность хранения сообщений

Интервьюер: Можете ли вы рассказать мне, как Кафка обеспечивает надежность сообщений?

Вы можете подумать об этом, прежде чем отвечать на вопросы интервьюера.,Значение надежностичто такое?

В бизнес-системах самое главное, чтобы сообщения не терялись, а данные — это деньги. Если платежная информация клиента утеряна, а платежная информация связана с большой суммой денег, подумайте о потерях для компании. Таким образом, надежность означает хранение и защиту сообщений.

В этом отношении Kafka использует механизм репликации и секционированную архитектуру с несколькими копиями в качестве основы надежности сообщений.

(1) Многокопийная архитектура разделов.

KafkaВсе темы разделены нанесколько разделовхранится в несколькихBrokerвнутри,И каждый раздел может иметьнесколько копий。Например, есть4индивидуальныйBrokerузел,Раздел магазинов Broker1 Копия босса, а Broker2 и Broker3 могут хранить копии своих разделов.

Kafka поддерживает несколько копий разделов для хранения сообщений, что позволяет избежать точечных проблем, приводящих к потере данных и невосстановимым данным.

(2) Механизм репликации.

В обычных обстоятельствах потребители происходят изКопия боссавнутрипрочитать сообщение,В то же время будетn(Коэффициент копирования)индивидуальныйBrokerМашина поедетСинхронная репликацияКопия боссаназад,генерироватькопия подписчикаТо есть копия раздела。

Если Копия машина босса не работает,Раздел副本Сразу会选举成为新из Копия босса

Механизм репликации обеспечивает согласованность данных копии раздела и ведущей копии. Благодаря поддержке механизма репликации доступна архитектура нескольких копий раздела.

2.2 Надежность производителя и потребителя

Интервьюер: Что еще?

Вышеупомянутое фактически основано на гарантии надежности, предоставленной Kafka на уровне брокера. Нам также необходимо усердно работать на уровне производителя и потребителя, чтобы снизить риск потери данных во всей системе.

1. Со стороны производителя.

KafkaПредоставляет разнообразныеРежим подтверждения отправки,Мы можем настроить соответствующие подтверждения в соответствии с требованиями надежности бизнеса.

  1. акк = 0. Если производитель сообщения может отправить сообщение по сети, сообщение считается успешно написанным.
  2. акк=1. Если ведущий раздел получает сообщение и успешно записывает,продюсер получаетПодтвердить возврат,Сообщение считается успешно написанным.
  3. ack = all。толькосуществовать消息成功写入Все копии разделовназад,Считается, что сообщение успешно написано. Это обеспечивает многократное резервное копирование сообщений.

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

2. Со стороны потребителя

Если вы можете ответить на первый вопрос вышеиндивидуальный Вопросы интервьюера:Знать Верхняя отметка Кафки?,Сразу Знать Верхняя отметка Кафки гарантирует, что потребители будут только читать данные Поданного, то есть они будут записываться во Все. копии данные разделов. Поэтому потребителям необходимо следить за тем, какие данные были прочитаны, а какие не были прочитаны.

  1. Когда потребители потребляют сообщения, они сначала получают пакет сообщений.,Также начните читать с последнего смещения,Это гарантируетпоследовательность сообщений
  2. После того, как потребитель воспользуется сообщением, оно будет отправлено синхронно.、асинхронныйзафиксировать смещение,Гарантирует, что сообщение не будет использовано другими потребителями.Повторное потребление

2.3 Проблема накопления потребления

Интервьюер: Что делать, если потребление Кафки возрастает?

Этот вопрос часто задают интервьюеры. Мы должны смотреть на него как с точки зрения брокера, так и с точки зрения потребителя.

1. Слова брокера.

  1. Каждая тема разделена на несколько разделовдавать разныеBrokerПроцесс,хотетьРазумно распределяйте количество разделовДля улучшения возможностей обработки сообщений Брокера.например3индивидуальныйBroker2индивидуальный Раздел,Его можно изменить на 3 брокера и 3 раздела.
  2. МожетМасштабироватьBrokerкластер,Для улучшения возможностей обработки сообщений Брокера.

2. Что говорят потребители.

  1. Количество потребительских сервисов можно увеличить, чтобы улучшить возможности потребления сообщений.
  2. существоватьзафиксировать смещениечас,Может Измените синхронную отправку наАсинхронная отправка。Асинхронная отправка Не нужно ждатьKafkaиз Подтвердить возврат, сокращающий время ожидания синхронизации у Брокера.

3. Контроллер Кафки

Интервьюер: Вы знаете контроллер Kafka?

Модератор Кафки на самом деле является Брокером.,Однако он также несет ответственность за выборы.лидер раздела。Kafkaизконтроллер иRedisкластериздозорныйиз Избирательная функция та же.из。

То есть в Копии босса Местосуществоватьиз Раздел失效назад,Kafkaпридет через контроллерсуществовать Раздел副本внутриизбрать новогоизКопия босса

Творить непросто, поэтому вы можете ставить лайки, собирать и подписываться, чтобы поддержать его. Ваша поддержка — самая большая мотивация для моего творчества.❤️

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose