Интеграция Apache Flink с Kafka и PostgreSQL с использованием Docker

05.07.2024

Я начал миссию по интеграции Apache Flink с Kafka и PostgreSQL, используя Docker. Что делает это предприятие особенно захватывающим, так это использование pyFlink — Python-версии Flink, которая одновременно мощная и относительно редкая. Эта настройка направлена на эффективную обработку и хранение данных в реальном времени. В следующих разделах я продемонстрирую, как я этого добился, обсуждая возникшие проблемы и способы их преодоления. В конце я предоставлю пошаговое руководство, чтобы вы могли создать и экспериментировать с этим потоком данных самостоятельно.

Настройка инфраструктуры

Инфраструктура, которую мы создадим, иллюстрируется ниже. Внешне есть модуль издателя, который симулирует сообщения датчиков IoT, аналогично тому, что обсуждалось в предыдущем посте. Внутри Docker-контейнера мы создадим две темы Kafka. Первая тема, sensors, будет хранить входящие сообщения от IoT-устройств в реальном времени. Приложение Flink затем будет потреблять сообщения из этой темы, фильтровать те, у которых температура выше 30°C, и публиковать их во вторую тему, alerts. Кроме того, приложение Flink будет вставлять потребленные сообщения в таблицу PostgreSQL, созданную специально для этой цели. Эта настройка позволяет сохранять данные датчиков в структурированном табличном формате, предоставляя возможности для дальнейшей трансформации и анализа. Инструменты визуализации, такие как Tableau или Power BI, могут быть подключены к этим данным для построения графиков и панелей в реальном времени.

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

Проблемы с портами Kafka в docker-compose.yml

Изначально я столкнулся с проблемами конфигурации портов Kafka при использовании образа Docker от confluentinc, популярного выбора для таких настроек. Эта проблема стала очевидной через логи, подчеркивая важность не запускать docker-compose up в режиме отсоединения (-d) на начальных этапах настройки и устранения неполадок.

Причиной сбоя было то, что внутренние и внешние хосты использовали один и тот же порт, что приводило к проблемам с подключением. Я исправил это, изменив внутренний порт на 19092. Я нашел этот пост в блоге довольно разъясняющим:

  • KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:19092,PLAINTEXT_HOST://localhost:9092

Конфигурация Flink в режиме сессии

Для запуска Flink в режиме сессии (позволяющем выполнять несколько задач в одном кластере) я использую следующие директивы в docker-compose.yml.

Пользовательский образ Docker для PyFlink

Учитывая ограничения стандартного образа Docker для PyFlink...

uTorrent

uTorrent

Полная версия uTorrent скачать бесплатно на windows и андроид

5
1032 отзывы
4938075
скачали
Zona

Zona

Полная версия Zona скачать бесплатно на windows и андроид

4
614 отзывы
824845
скачали
Майнкрафт

Майнкрафт

Полная версия Minecraft скачать бесплатно на windows и андроид

5
750 отзывы
417984
скачали
Geometry Dash

Geometry Dash

Полная версия Geometry Dash скачать бесплатно на windows и андроид

4
539 отзывы
303873
скачали

Foxtail: загадочная демо-игра на Comiket 81

На Comiket 81 в 2011 году была представлена таинственная игра без названия. Обнаруженная недавно, она оставила после себя тёплые воспоминания о Foxtail.

Читать далее

First Light: новый взгляд на вселенную Джеймса Бонда

IO Interactive анонсировала 007 First Light, видеоигру о начале пути Джеймса Бонда. Игрокам предстоит зарабатывать статус агента 00, окунаясь в историю происхождения знаменитого шпиона. Брокколи контролируют права персонажа, обещая классическое и свежее восприятие.

Читать далее

Anvil Empires запускает предзаказ в преддверии плейтеста

Anvil Empires объединяет RTS и MMO механики, создавая средневековье с 1000 игроками на сервере. Присоединитесь к плейтесту с 9 по 16 июня.

Читать далее

Atomic Heart привлекает внимание снижением цен

Игра Atomic Heart, шутер 2023 года, стала доступнее с распродажей 71%. Исследуйте антиутопию с роботами, вовлекаясь в уникальные сражения и историю восстания.

Читать далее

Игровой разработчик представит проект о Бонде

Компания IO Interactive готова представить долгожданную игру о Бонде — 007 First Light. Новая игра расскажет историю происхождения Джеймса Бонда и предложит уникальный взгляд на этого культового героя. Ожидаем премьеру на этой неделе.

Читать далее

Nightreign: изменения в управлении и сложности игры

Nightreign вводит автоисправление в одиночной игре и корректирует баланс. FromSoftware призналась, что одиночная игра была слишком сложной. Патч Nightreign вносит изменения для улучшения игрового процесса.

Читать далее

Новые улучшения в Elden Ring: обновление Nightreign

Fromsoftware выпустила патч Nightreign 1.01.1 для Elden Ring, улучшая соло-геймплей. Введена 'Авто-возрождение при поражении' и улучшены награды, что упрощает бои с боссами и улучшает динамику игры.

Читать далее

Переосмысление Medal of Honor Allied Assault с Unreal Engine 5

Классический шутер Medal of Honor Allied Assault получил новую жизнь благодаря переосмыслению с Unreal Engine 5, вызвав восхищение у Nathan Silvers. Будущее серии под вопросом, но игры продолжают радовать.

Читать далее

Летние показы игр привлекают внимание индустрии

На этой неделе в центре внимания многочисленные игровые показы, включая Xbox Games Showcase и PC Gaming Show, на летнем фестивале. Это событие играет важную роль в бизнесе игр и приносит инновации. Showcase демонстрирует важность новых технологий в игровой индустрии.

Читать далее

Mojang анонсировала Minecraft Chase the Skies для 2025 года

Minecraft Chase the Skies расширяет игру с летающим маунтом Happy Ghast и новыми визуальными эффектами в обновлении Vibrant Visuals.

Читать далее