Изменения документа Apache Kafka
Редактировал(а) Alexandr Fokin 2024/09/07 11:00
<
отредактировано Alexandr Fokin
на 2024/09/07 11:00
на 2024/09/07 11:00
отредактировано Alexandr Fokin
на 2020/08/15 20:12
на 2020/08/15 20:12
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (3 изменено, 0 добавлено, 0 удалено)
-
Объекты (0 изменено, 5 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Родительский документ
-
... ... @@ -1,1 +1,1 @@ 1 -Разработка. Брокерысообщений.WebHome1 +Разработка.Очереди сообщений.WebHome - Теги
-
... ... @@ -1,1 +1,1 @@ 1 -Apache| БрокерСообщений|ApacheKafka1 +Apache|Kafka - Содержимое
-
... ... @@ -1,60 +4,73 @@ 1 -| |Разработан на языке [[Java>>Разработка.JVM.Java.WebHome]] 2 -|Используемое ПО|((( 3 -**[[Apache ZooKeeper>>Разработка.Базы данных.NoSQL.Ключ-значение структура.Apache ZooKeeper.WebHome]]** 4 4 5 -Ранее требовался для запуска. 2 +https://kafka.apache.org/ 3 + 4 +ПО: 5 +**Zookeeper** 6 6 Zookeeper выполняет роль хранилища метаданных и координатора. Также именно к zookeeper сперва пойдут producer и consumer, чтобы узнать, на каком брокере какие топики и партиции хранятся. 7 -В более старых версиях Kafka zookeeper отвечал и за хранение офсетов, но сейчас они хранятся в специальном топике __consumer_offsets на брокере__ 8 -))) 9 -|Материалы|((( 10 -|((( 11 -Apache Kafka 12 -[[https:~~/~~/kafka.apache.org/>>url:https://kafka.apache.org/]] 13 -)))| 14 -|Книга 15 -[[Understanding Message Brokers ~~| O’Reilly>>url:https://wiki.denhome.ru/bin/view/%D0%9A%D0%BD%D0%B8%D0%B3%D0%B8/O%E2%80%99Reilly/Understanding%20Message%20Brokers%20%7C%20O%E2%80%99Reilly/]]| 16 -|((( 17 -Kafka и микросервисы: обзор 18 -[[https:~~/~~/habr.com/ru/company/avito/blog/465315/>>url:https://habr.com/ru/company/avito/blog/465315/]] 19 -)))| 20 -|((( 21 -Apache Kafka — Краткое руководство 22 -[[https:~~/~~/coderlessons.com/tutorials/bolshie-dannye-i-analitika/vyuchit-apache-kafka/apache-kafka-kratkoe-rukovodstvo>>url:https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/vyuchit-apache-kafka/apache-kafka-kratkoe-rukovodstvo]] 23 -)))| 24 -|Apache Kafka – Конспект 25 -[[https:~~/~~/habr.com/ru/post/354486/>>url:https://habr.com/ru/post/354486/]]| 26 -|client.id Property 27 -[[https:~~/~~/jaceklaskowski.gitbooks.io/apache-kafka/kafka-properties-client-id.html>>url:https://jaceklaskowski.gitbooks.io/apache-kafka/kafka-properties-client-id.html]]| 28 -|Kafka Tool / Offset Explorer 29 -Декстоп клиент для работы к Kafka. (Есть функционал просмотра содержимого топиков и отправки сообщений) 30 -[[https:~~/~~/kafkatool.com/>>url:https://kafkatool.com/]]| 31 -|Apache Kafka Use Cases (with Kafka Architecture Diagrams) 32 -[[https:~~/~~/medium.com/softkraft/apache-kafka-use-cases-with-kafka-architecture-diagrams-577be32688e5>>url:https://medium.com/softkraft/apache-kafka-use-cases-with-kafka-architecture-diagrams-577be32688e5]]| 33 -|Understanding Kafka partition assignment strategies and how to write your own custom assignor 34 -[[https:~~/~~/medium.com/streamthoughts/understanding-kafka-partition-assignment-strategies-and-how-to-write-your-own-custom-assignor-ebeda1fc06f3>>url:https://medium.com/streamthoughts/understanding-kafka-partition-assignment-strategies-and-how-to-write-your-own-custom-assignor-ebeda1fc06f3]]| 35 -| | 36 -))) 7 +В более старых версиях Kafka zookeeper отвечал и за хранение оффсетов, но сейчас они хранятся в специальном топике __consumer_offsets на брокере 37 37 38 ----- 9 +**Apache Kafka** 10 +Producer (Отправитель) 11 +Consumer (Получатель) 12 +Topic (Отчасти схож с очередью) 13 +Partition (Topic может содержаться несколько разделов, позволяющих работать параллельно нескольким Consumer) (Данные находящиеся в разных partition одного topic не дублируют друг друга) 14 +CosumerGroup (Consumers, находящиеся в разных CosumerGroup, читают данные параллельно и независимо друг от друга. (Получают одни и те же сообщения)) (В рамках одной ConsumerGroup кол-во активных Consumer не может быть больще чем кол-во partitions. Неактивные Consumer могут быть резервными и автоматически будут подключены, если активный Consumer выйдет из строя) 39 39 40 -==== Внутренние ссылки: ==== 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 41 41 42 -====== Дочерние страницы: ====== 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}} 43 43 44 -{{children/}} 32 +При запуске на Windows у ApacheKafka есть проблемы связанные с блокировкой файлов. 33 +Ошибка проявляется при быстрой манипуляции с топиками (создание/удаление). 34 +При появлении ошибки можно удалить папку tmp и перезапустить. 35 +https://stackoverflow.com/questions/50755827/accessdeniedexception-when-deleting-a-topic-on-windows-kafka 45 45 46 -====== Обратные ссылки: ====== 37 +Для взаимодействия с ApacheKafka можное использовать консоль. Управляющие скрипты распологаются в папке: 38 +kafka_2.12-2.4.0\bin\windows 47 47 48 -{{velocity}} 49 -#set ($links = $doc.getBacklinks()) 50 -#if ($links.size() > 0) 51 - #foreach ($docname in $links) 52 - #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument()) 53 - * [[$escapetool.xml($rdoc.fullName)]] 54 - #end 55 -#else 56 - No back links for this page! 57 -#end 58 -{{/velocity}} 59 59 60 ----- 41 +Статьи: 42 +https://habr.com/ru/company/avito/blog/465315/ 43 +https://ksqldb.io/quickstart.html 44 +https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/vyuchit-apache-kafka/apache-kafka-kratkoe-rukovodstvo 45 +https://habr.com/ru/post/354486/ 46 +https://jaceklaskowski.gitbooks.io/apache-kafka/kafka-properties-client-id.html 47 + 48 +Развертывание: 49 +[[bitnami.com | kafka (Docker, VM)>>https://bitnami.com/stack/kafka]] 50 +https://github.com/wurstmeister/kafka-docker 51 +https://github.com/lensesio/fast-data-dev 52 + 53 + 54 +Клиенты: 55 +[[confluentinc/confluent-kafka-dotnet>>https://github.com/confluentinc/confluent-kafka-dotnet]] 56 +[[Jroland/kafka-net>>https://github.com/Jroland/kafka-net]] 57 + 58 + 59 +KafkaConsoleTool: 60 +https://riptutorial.com/apache-kafka/topic/8990/kafka-console-tools 61 +https://medium.com/@TimvanBaarsen/apache-kafka-cli-commands-cheat-sheet-a6f06eac01b 62 +https://howtoprogram.xyz/2016/07/08/apache-kafka-command-line-interface/ 63 +https://help.aiven.io/en/articles/2661525-viewing-and-resetting-consumer-group-offsets 64 + 65 +https://stackoverflow.com/questions/32697999/kafka-consumer-list 66 +https://stackoverflow.com/questions/35437681/kafka-get-partition-count-for-a-topic 67 +https://stackoverflow.com/questions/14755030/apache-kafka-consumer-state 68 +https://stackoverflow.com/questions/28156227/kafka-consumer-group-creation-with-specific-offset 69 + 70 + 71 +Understanding Kafka partition assignment strategies and how to write your own custom assignor 72 +https://medium.com/streamthoughts/understanding-kafka-partition-assignment-strategies-and-how-to-write-your-own-custom-assignor-ebeda1fc06f3 73 +
- XWiki.XWikiComments[0]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,3 @@ 1 +Простой способ сбросить состояние тестового локального инстанса - удалить содержимое папок: 2 +Drive:\tmp\kafka-logs 3 +Drive:\tmp\zookeeper - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2020-02-17 18:32:54.563
- XWiki.XWikiComments[1]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,2 @@ 1 +Если запросить группу сообщений и выполнить коммит последнего, то смещение установиться на позиции последнего элемента +1. 2 +Нет возможности закоммитить только определенное [i] сообщение. - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2020-02-17 18:44:48.607
- XWiki.XWikiComments[2]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,3 @@ 1 +При первом подключении Consumer по умолчанию подсоединиться к концу топика 2 +и не прочитает сообщения, уже имеющиеся в топике. 3 +(параметр AutoOffsetReset) - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2020-03-03 20:29:19.403
- XWiki.XWikiComments[3]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,14 @@ 1 +{{code language="cmd"}} 2 +Список топиков 3 +kafka-topics.bat --bootstrap-server <server> --list 4 + 5 +Консольный consumer 6 +kafka-console-consumer.bat --bootstrap-server <server> --topic <topic> --from-beginning 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 + - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2020-03-05 19:11:35.57
- XWiki.XWikiComments[4]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,5 @@ 1 +Вариант использования. 2 +В очереди скопилось много сообщений, которые можно пропустить. Необходимо начать читать свежие сообщения. 3 + 4 +1) Удалить ConsumerGroup. 5 +2) Подключить Consumer с заданным параметром AutoOffsetReset. (значение параметра - задать смещение с конца) - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2020-06-30 10:02:02.880