Можно ли отправлять сообщения websocket на кафку topi c? - PullRequest
2 голосов
/ 24 марта 2020

Я пытаюсь найти способ использовать сообщения, которые отправляются через веб-сокет на kafka topi c (сообщения отправляются через веб-сокет по адресу 'ws: // address: port / topic_name', и я хочу добавить все эти сообщения в топику кафки c). Я читал о kafka connect и пытался найти способ сделать это с ним, но, похоже, он не работает ... заранее спасибо:)

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Kafka Connector для сокета в Confluent Platform отсутствует.

Я работаю в команде, которая использует Kafka на производстве, и нашим источником является сокет, поэтому вы можете использовать платформы, которые поддерживают этот сокет-> Kafka, или написать один самостоятельно.

О возможных платформах, я думаю, что большинство из них будут излишними, хотя вы можете использовать их для этой проблемы, некоторые варианты:
1. NiFi или MiniFi для небольших нагрузок используйте Процессор PublishKafka
2. StreamSets с Назначение производителя Kafka
3. Apache Flume - не очень рекомендуется, этот проект перестает развиваться.

Если вы хотите sh написать своего собственного продюсера, вам, в основном, нужно создать прослушиватель на этом порту и генерировать входящие сообщения для Кафки; если это веб-сокет, просто получите полезную нагрузку запросов и отправьте их в Kafka.
Пример Код производителя Kafka можно скопировать из tutorialspoint, простой пример производителя *

Вот некоторые примеры проектов с открытым исходным кодом:
1. https://github.com/DataReply/kafka-connect-socket-source
2. https://github.com/kafka-socket/miniature_engine
3. https://github.com/dhanuka84/kafka-connect-tcp
4. https://github.com/krux/tcp-stream-kafka-producer

1 голос
/ 24 марта 2020

Идея Kafka Connect заключается в том, что у вас есть какая-то внешняя интеграция, которая служит хранилищем. Это может быть SAP, Salesforce, RDBMS, MQ или что-либо еще, имеющее состояние. Ваша конечная точка веб-сокета не имеет данных, вы не можете опросить ее, это кто-то другой, кто ее вызывает, и поэтому данные передаются. Теперь, если вы знаете, кто на самом деле хранит данные, вы можете построить конктор, используя это руководство. https://docs.confluent.io/current/connect/devguide.html

В вашем конкретном случае лучшее, что вы можете сделать, - это использовать API Kafka Producer https://docs.confluent.io/current/clients/producer.html
и использовать ваш веб-сокет. этот производитель для отправки сообщения в topi c, или даже лучше, если вы используете spring, вы можете использовать абстракцию более высокого уровня, которая будет KafkaTemplate https://docs.spring.io/spring-kafka/reference/html/#sending -messages .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...