首页 > 解决方案 > Kafka:使用来自 websockets 的数据并推送到主题的连接器

问题描述

我们有一个数据流管道,其中日志是从 websocket 端点发送的,在进行简单的数据增强(密码屏蔽等)后,需要将其推送到 Splunk。

我正在检查 Kafka 是否可以用于此,因为数量非常高。所以,可能的流程是:

Websocket Endpoint --------- some-wss-connector --------> Kafka Topic -------- splunk-connector ----------> Splunk

我在以下网址找到了用于推送到 Splunk 的连接器:https ://github.com/splunk/kafka-connect-splunk ,它运行良好。

在其他连接器(上面加粗)中需要帮助以从 Kafka 中的 websocket 端点读取并推送到主题。请问有人做过类似的事情吗?请指教。

注意:我查看了WebSocket 到 Kafka Topic Sc​​ala API,但它使用的是 Akka(与 Scala),但我担心 Akka/Scala 目前不属于我们的企业。

提前致谢。维奈

标签: websocketapache-kafka

解决方案


好吧,我想您将需要某种适配器应用程序(无论是否采用 kafka connect 的形式)。我的想法是编写一个实现 websocket 客户端的小型 spring boot 应用程序,请参阅此链接以了解如何(向下滚动): https ://www.sitepoint.com/implementing-spring-websocket-server-和-客户/

然后,您可以使用 spring kafka 将通过 websocket 收到的消息推送到 apache kafka,这在我的经验中运行良好:https ://spring.io/projects/spring-kafka

对于从 SpringBoot 应用程序到 Kafka 的序列化,您可以使用 JSON,但是我推荐使用 AVRO 和模式注册表的完整功能:https ://docs.confluent.io/current/schema-registry/index.html

这个想法的主要缺点是你得到了另一个你需要实现、维护、部署和扩展的应用程序。

希望有帮助!


推荐阅读