2 минуты
Простой CDC на Debezim+NATS+Docker
Возникла задача получать реалтайм события из одной проприетарной штуки, которая использует бд MySQL.
Де-факто стандарт для CDC-решений (Change Data Capture) на сегодня – Debezim. Под капотом используется Kafka и все что идет в комплекте для создания кластеров. Хотелось обойтись без технологий, состоящих из множества сложных компонентов. Обнаружилось, что есть легковесная версия – Debezium Server, которая даёт возможность использовать альтернативные брокеры.
Взял NATS в качестве очереди.
В конце концов всё завелось. Выкладываю конфиги.
NOTE: В MySQL должен быть включён Binlog.
Файлы необходимые для сборки образа:
debezium/conf/application.properties
Dockerfile
Клиент на php
composer require basis-company/nats
worker.php
запускаем php worker.php