Изменения документа Apache Kafka
Редактировал(а) Alexandr Fokin 2024/09/07 11:00
<
>
отредактировано Alexandr Fokin
на 2020/06/30 10:03
на 2020/06/30 10:03
отредактировано Alexandr Fokin
на 2022/06/27 15:54
на 2022/06/27 15:54
Изменить комментарий:
Редактировать комментарий
Комментарий
-
Свойства страницы (3 изменено, 0 добавлено, 0 удалено)
-
Объекты (3 изменено, 0 добавлено, 1 удалено)
Подробности
- Свойства страницы
-
- Родительский документ
-
... ... @@ -1,1 +1,1 @@ 1 -Разработка. Очередисообщений.WebHome1 +Разработка.Брокеры сообщений.WebHome - Теги
-
... ... @@ -1,1 +1,1 @@ 1 -Apache|Kafka 1 +Apache|БрокерСообщений|ApacheKafka - Содержимое
-
... ... @@ -1,67 +1,65 @@ 1 +Разработан на языке [[Java>>Разработка.JVM.Java.WebHome]] 1 1 2 - https://kafka.apache.org/3 +**Компоненты:** 3 3 4 -ПО: 5 -**Zookeeper** 6 -Zookeeper выполняет роль хранилища метаданных и координатора. Также именно к zookeeper сперва пойдут producer и consumer, чтобы узнать, на каком брокере какие топики и партиции хранятся. 7 -В более старых версиях Kafka zookeeper отвечал и за хранение оффсетов, но сейчас они хранятся в специальном топике __consumer_offsets на брокере 5 +* Message - представляет из себя набор Key-Value значений. 6 +* Producer - Производитель сообщений 7 +* Consumer - Потребитель сообщений 8 +* Topic - Отчасти похож на понятие классическую очередь, но отличается по поведению. 9 +При отправке сообщение в топик, для него выбирается одиз из Partition, в который и размещается сообщение. 10 +Содержит внутри себя одну и более Partition. Кол-во Partition определяет максимальную степень параллелизма при потреблении сообщений. 11 +После потребления сообщения оно не удаляется сразу и некоторое время продолжает храниться и доступно для чтения. 12 +* Partition - Представляет из себя очередь, содержащую последовательность экземпляров сообщений, при этом у каждого сообщения есть свой уникальный порядковый номер. 13 +Для каждого читаемого Partition у потребителя храниться значение Offset - смещение, порядковый номер текущего сообщения. После прочтения Offset увеличивается на 1. 14 +* 15 +* CosumerGroup - 16 +Consumers, находящиеся в разных CosumerGroup, читают данные параллельно и независимо друг от друга (Получают одни и те же сообщения). 17 +В рамках одной ConsumerGroup кол-во активных Consumer не может быть больше чем кол-во Partition в рамках одного Topic. 18 +Каждому активному Consumer назначается 1 и более Partition для чтения данных. Неактивные Consumer выполняет роль резервного и автоматически будут подключены, если один из активных Consumer выйдет из строя. (Или если количество Partition будет увеличино). 19 +* Offset - смещение. Содержит информации о текущей позиции читателя для каждой пары <TopicName>.<PartitionId>.<ConsumerGroupId>. 8 8 9 -**Apache Kafka** 10 -Producer (Отправитель) 11 -Consumer (Получатель) 12 -Topic (Отчасти схож с очередью) 13 -Partition (Topic может содержаться несколько разделов, позволяющих работать параллельно нескольким Consumer) 14 -CosumerGroup (Consumers, находящиеся в разных CosumerGroup, читают данные параллельно и независимо друг от друга. (Получают одни и те же сообщения)) 21 +---- 15 15 16 -Простой запуст на Windows: 17 -1) Раскоменнтировать и изменить строки в файле: 18 -kafka_2.12-2.4.0\config\server.properties 19 -listeners=PLAINTEXT://127.0.0.1:9092 20 -advertised.listeners=PLAINTEXT://127.0.0.1:9092 23 +**Используемое ПО:** 21 21 22 -2) Запустить ZooKeeper 23 -{{code language="cmd"}} 24 -kafka_2.12-2.4.0\bin\windows\zookeeper-server-start.bat "kafka_2.12-2.4.0\config\zookeeper.properties" 25 -{{/code}} 26 - 27 -3) Запустить Kafka 28 -{{code language="cmd"}} 29 -kafka_2.12-2.4.0\bin\windows\kafka-server-start.bat "kafka_2.12-2.4.0\config\server.properties" 30 -{{/code}} 25 +**[[Apache ZooKeeper>>Разработка.Базы данных.NoSQL.Ключ-значение структура.Apache ZooKeeper.WebHome]]** 31 31 27 +Ранее требовался для запуска. 28 +Zookeeper выполняет роль хранилища метаданных и координатора. Также именно к zookeeper сперва пойдут producer и consumer, чтобы узнать, на каком брокере какие топики и партиции хранятся. 29 +В более старых версиях Kafka zookeeper отвечал и за хранение оффсетов, но сейчас они хранятся в специальном топике __consumer_offsets на брокере__ 32 32 33 -Для взаимодействия с ApacheKafka можное использовать консоль. Управляющие скрипты распологаются в папке: 34 -kafka_2.12-2.4.0\bin\windows 35 35 32 +**Материалы:** 36 36 37 -Статьи: 34 +Apache Kafka 35 +https://kafka.apache.org/ 36 + 37 +Книга 38 +[[Understanding Message Brokers | O’Reilly>>doc:Книги.O’Reilly.Understanding Message Brokers | O’Reilly.WebHome]] 39 + 40 +Kafka и микросервисы: обзор 38 38 https://habr.com/ru/company/avito/blog/465315/ 39 -https://ksqldb.io/quickstart.html 42 + 43 +Apache Kafka — Краткое руководство 40 40 https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/vyuchit-apache-kafka/apache-kafka-kratkoe-rukovodstvo 45 + 46 +Apache Kafka – Конспект 41 41 https://habr.com/ru/post/354486/ 48 + 49 +client.id Property 42 42 https://jaceklaskowski.gitbooks.io/apache-kafka/kafka-properties-client-id.html 43 43 44 -Развертывание: 45 -[[bitnami.com | kafka (Docker, VM)>>https://bitnami.com/stack/kafka]] 46 -https://github.com/wurstmeister/kafka-docker 47 -https://github.com/lensesio/fast-data-dev 52 +Kafka Tool / Offset Explorer 53 +Декстоп клиент для работы к Kafka. (Есть функционал просмотра содержимого топиков и отправки сообщений) 54 +https://kafkatool.com/ 48 48 56 +Apache Kafka Use Cases (with Kafka Architecture Diagrams) 57 +https://medium.com/softkraft/apache-kafka-use-cases-with-kafka-architecture-diagrams-577be32688e5 49 49 50 -Клиенты: 51 -[[confluentinc/confluent-kafka-dotnet>>https://github.com/confluentinc/confluent-kafka-dotnet]] 52 -[[Jroland/kafka-net>>https://github.com/Jroland/kafka-net]] 59 +Understanding Kafka partition assignment strategies and how to write your own custom assignor 60 +https://medium.com/streamthoughts/understanding-kafka-partition-assignment-strategies-and-how-to-write-your-own-custom-assignor-ebeda1fc06f3 53 53 54 54 55 -KafkaConsoleTool: 56 -https://riptutorial.com/apache-kafka/topic/8990/kafka-console-tools 57 -https://medium.com/@TimvanBaarsen/apache-kafka-cli-commands-cheat-sheet-a6f06eac01b 58 -https://howtoprogram.xyz/2016/07/08/apache-kafka-command-line-interface/ 59 -https://help.aiven.io/en/articles/2661525-viewing-and-resetting-consumer-group-offsets 63 +**Клиенты:** 60 60 61 -https://stackoverflow.com/questions/32697999/kafka-consumer-list 62 -https://stackoverflow.com/questions/35437681/kafka-get-partition-count-for-a-topic 63 -https://stackoverflow.com/questions/14755030/apache-kafka-consumer-state 64 -https://stackoverflow.com/questions/28156227/kafka-consumer-group-creation-with-specific-offset 65 - 66 - 67 - 65 +**[[Confluentinc.Confluent-kafka-dotnet>>doc:Разработка.NET.Библиотеки.Провайдеры.Брокеры сообщений.Confluentinc\.Confluent-kafka-dotnet.WebHome]] - c#**
- XWiki.XWikiComments[0]
-
- Автор
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.cccc1808 - Комментарий
-
... ... @@ -1,3 +1,0 @@ 1 -Простой способ сбросить состояние тестового локального инстанса - удалить содержимое папок: 2 -Drive:\tmp\kafka-logs 3 -Drive:\tmp\zookeeper - Дата
-
... ... @@ -1,1 +1,0 @@ 1 -2020-02-17 18:32:54.563
- XWiki.XWikiComments[1]
-
- Комментарий
-
... ... @@ -1,2 +1,7 @@ 1 1 Если запросить группу сообщений и выполнить коммит последнего, то смещение установиться на позиции последнего элемента +1. 2 2 Нет возможности закоммитить только определенное [i] сообщение. 3 + 4 +Некоторые другие брокеры устроены иначе: они работают с отдельными сообщениями и позволяют подтверждать их потребление независимо. В Kafke же единственным критерием является Offset. 5 + 6 +Опциально можно реализовать собственную логику работы с сообщениями, в том числе не возлагая на броке обязанности контролировать смещение, а управляя чтением самостоятельно. 7 +Обычно в Kafka не предполагается, что сообщение будет удалено сразу, и к нему можно обращаются по его значению Offset.
- XWiki.XWikiComments[3]
-
- Комментарий
-
... ... @@ -1,14 +1,8 @@ 1 -{{code language="cmd"}} 2 -Список топиков 3 -kafka-topics.bat --bootstrap-server <server> --list 1 +Что такое гарантия доставки сообщений или как избавиться от дублей и потерь в Apache Kafka и других Big Data брокерах 2 +https://www.bigdataschool.ru/blog/kafka-exactly-once.html 4 4 5 -К онсольныйconsumer6 - kafka-console-consumer.bat --bootstrap-server<server>--topic<topic> --from-beginning4 +Как ускорить работу producer’ов Kafka: параметры конфигурации производителей 5 +https://www.bigdataschool.ru/blog/kafka-producers-configuration.html 7 7 8 -Данные по ConsumerGroup(текущее смещение) 9 -kafka-consumer-groups.bat --describe --group <ConsumerGroupId> --bootstrap-server <server> 10 - 11 -Удалить ConsumerGroup(смещения по группе) 12 -kafka-consumer-groups.bat --bootstrap-server <server> --delete --group <ConsumerGroupId> 13 -{{/code}} 14 - 7 +Почему ваша Kafka такая медленная и как ее ускорить: 7 главных факторов производительности этой Big Data системы 8 +https://www.bigdataschool.ru/blog/kafka-performance-factors.html - Дата
-
... ... @@ -1,1 +1,1 @@ 1 -2020-0 3-0519:11:35.571 +2020-09-23 11:04:41.813
- XWiki.XWikiComments[4]
-
- Комментарий
-
... ... @@ -1,5 +1,7 @@ 1 -Вариант использования. 2 -В очереди скопилось много сообщений, которые можно пропустить. Необходимо начать читать свежие сообщения. 1 +Изменение параметра максимального размера сообщения: 3 3 4 -1) Удалить ConsumerGroup. 5 -2) Подключить Consumer с заданным параметром AutoOffsetReset. (значение параметра - задать смещение с конца) 3 +Kafka - Broker: Message size too large 4 +https://stackoverflow.com/questions/59322133/kafka-broker-message-size-too-large 5 + 6 +Increase message.max.bytes 7 +https://github.com/bitnami/bitnami-docker-kafka/issues/13 - Дата
-
... ... @@ -1,1 +1,1 @@ 1 -202 0-06-3010:02:02.8801 +2021-08-18 20:59:32.997