Вы на самом деле не изложили свои требования, кроме комментариев о том, что вы не хотите использовать Confluent Platform (но не сказали, почему).
В целом, с данными в Kafka (независимо от того, откуда они берутся) у вас есть различные варианты для их обработки:
- Сделанный на заказ потребитель (вероятно, плохая идея, учитываяналичие платформ потоковой обработки)
- KSQL ( для выполнения соединений используется SQL и т. д. ) - часть Confluent Platform
- Kafka Streams - библиотека Java для выполнения потоковой обработки,Часть Apache Kafka.
- Flink, Spark Streaming, Samza, Heron, и т. Д. И т. Д. И т. П.
Выбор зависит от вас, и он будет зависеть от таких факторов, как
- Используемая существующая технология (нет смысла развертывать кластер Spark, если вам это не нужно; наоборот, если вы уже используете Spark и у вас есть много обученных разработчиков, тогда может иметь смысл использовать его)
- Знание языка разработчиками - должен ли это быть API Java или SQL более доступным
- Возможности фреймворка / инструмента - нужна ли вам тесная интеграция безопасности, однократная обработка, CEP и т. Д.и т. д. Некоторые из них будут включать или выключать инструмент, который вы используете.
После того, как вы объединили и агрегировали свои данные, хорошим примером для этого является их запись в Kafka (что позволяет более свободно отделять ваш дизайн и позволяет разделять обязанности компонентов) и оттуда запишите его в MySQL, используя Kafka Connect и JDBC Sink.Kafka Connect является частью Apache Kafka.
И последнее замечание: если вы берете данные из MySQL, обрабатываете их, а затем записываете обратно в MySQL ... вам вообще нужен Кафка?Есть ли подходящая причина использовать его, а не просто выполнять эту обработку в самом MySQL?
Отказ от ответственности: я работаю на Confluent.