Какая разница между разделом и репликой темы в кластере kafka

В чем разница между разделом и репликой темы в кластере kafka. Я имею в виду, что хранят копии сообщений в теме. Тогда какова вещественная сходимость?

Ответ 1

Когда вы добавляете сообщение в эту тему, вы вызываете метод send (KeyedMessage message) API-интерфейса производителя. Это означает, что ваше сообщение содержит ключ и значение. Когда вы создаете тему, вы указываете количество разделов, которые вы хотите иметь. Когда вы вызываете метод "Отправить" для этого раздела, данные будут отправляться только на один отдельный раздел на основе хэш-значения вашего ключа (по умолчанию). Каждый раздел может иметь реплику, что означает, что оба раздела и его реплики сохраняют одни и те же данные. Ограничение заключается в том, что и ваш производитель, и потребитель работают только с основной репликой и ее копиями, используются только для резервирования.

Обратитесь к документации: http://kafka.apache.org/documentation.html#producerapi И базовое обучение: http://www.slideshare.net/miguno/apache-kafka-08-basic-training-verisign

Ответ 2

Темы разделены между несколькими узлами, поэтому тема может выходить за пределы узла. Перегородки реплицированы для отказоустойчивости. Репликация и поглощение лидера - одно из самых больших различий между Kafka и другими брокерами /Flume. С сайта Apache Kafka:

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

Ответ 3

Две другие важные особенности Kafka - это parallelism и избыточность. Кафка справляется с этим, предоставляя каждой теме определенное количество разделов и реплик.

Перегородки

Разделы: один кусок темы Кафки. Количество разделов настраивается по каждой теме. Больше разделов допускает большой parallelism при чтении из тем. Количество разделов определяет, сколько у вас потребителей в группе потребителей. Например, если в теме есть 3 раздела, у вас может быть 3 потребителя в балансе потребителей, которые потребляют между разделами. Таким образом, у вас есть parallelism of 3. Этот номер раздела несколько сложно определить, пока вы не знаете, как быстро вы производите данные и как быстро вы потребляете данные. Если у вас есть тема, которую вы знаете, будет большой, вам нужно будет иметь больше разделов.

Реплики

Реплики: это копии разделов. Они никогда не записываются и не читаются. Их единственная цель - избыточность данных. Если ваша тема имеет n реплик, брокеры n-1 могут потерпеть неудачу, прежде чем произойдет потеря данных. Кроме того, у вас не может быть такой темы, как коэффициент репликации, который больше, чем количество брокеров, которые у вас есть. Например, у вас есть 5 брокеров Kafka, у вас может быть тема с максимальным коэффициентом репликации 5, а 5-1 = 4 брокера могут спуститься до потери данных.

Ответ 4

Темы Кафки делятся на несколько разделов. Любая запись, написанная на определенную тему, попадает в определенный раздел. Каждая запись назначается и идентифицируется уникальным смещением. Репликация осуществляется на уровне раздела. Резервный блок тематического раздела называется репликой. Логика, которая решает раздел для сообщения, является настраиваемой. Секция помогает в параллельном чтении/записи данных, разделяя их на несколько секций, распределенных между несколькими брокерами. В каждой реплике один сервер выступает в роли лидера, а другие - в качестве последователей. Лидер обрабатывает чтение/запись, в то время как последователи копируют данные. В случае неудачи лидера, любой из последователей избирается лидером.

Надеюсь, это объясняет!

Дальнейшее чтение

Ответ 5

  • раздел: каждая тема может быть разделена на разделы для распределения нагрузки (вы можете писать в разные разделы одновременно) и масштабируемости (тема может масштабироваться без ограничений экземпляра); в том же разделе записи упорядочены;

  • реплика: в основном для отказоустойчивой прочности;

Цитаты:

Разделы журнала распределяются по серверам в кластере Kafka, причем каждый сервер обрабатывает данные и запросы на разделение разделов. Каждый раздел реплицируется на настраиваемое количество серверов для обеспечения отказоустойчивости.

Существует довольно интуитивно понятное руководство для объяснения некоторых фундаментальных понятий в Kafka: https://www.tutorialspoint.com/apache_kafka/apache_kafka_fundamentals.htm

Кроме того, есть рабочий процесс, который поможет вам преодолеть путаницу: https://www.tutorialspoint.com/apache_kafka/apache_kafka_workflow.htm