websocket - 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 Scala API,但它使用的是 Akka(与 Scala),但我担心 Akka/Scala 目前不属于我们的企业。
提前致谢。维奈
解决方案
好吧,我想您将需要某种适配器应用程序(无论是否采用 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
这个想法的主要缺点是你得到了另一个你需要实现、维护、部署和扩展的应用程序。
希望有帮助!
推荐阅读
- php - PHP会话数据返回错误值
- php - Google 表格 - 设置背景颜色
- python-3.x - 如何获取一个单词作为 NLTK Synset 形式以进行比较?
- java - Java Socket 编程(客户端、桥接器、服务器)
- reactjs - 使用 React 和 Jest/Enzyme 测试 Chart.js 插件
- azure - Azure 移动 SDK 与自定义代码 - 可扩展性
- css - 环绕固定容器的 Flexbox
- python - Python回调属性错误
- laravel - Web和Api中间件组在项目中的位置
- actionscript-3 - AS3 禁用两指点击响应