【问题标题】:Best way to consume kafka messages and send them to websocket clients by filter the client sends使用 kafka 消息并将它们发送到 websocket 客户端的最佳方式,通过过滤客户端发送
【发布时间】:2020-04-26 13:44:26
【问题描述】:

我想通过 websocket 从 kafka 向客户端发送消息, 我有 json 记录的 kafka 主题,例如:{...fields...., type:1}

客户端使用包含他感兴趣的类型的数组字段的 json 消息启动与 websocket 的连接,例如:{...fields..., types:[1,3,4]}

我尝试用 Nifi 来做,但我没有办法从 kafka 消费,同时过滤我得到的消息类型。

我很乐意在 Nifi 或任何其他方式(Streamsets、实现从 kafka 消费的定制化 websocket 等...)中获得建议

(我的代码是用java写的)

谢谢:)

【问题讨论】:

    标签: websocket apache-kafka apache-nifi


    【解决方案1】:

    使用 Nifi,但我没有办法从 kafka 消费,同时按类型过滤我收到的消息

    ConsumeKafka + RecordPath filter 应该可以工作很好......


    或者,您没有提到您的网络服务器正在运行什么类型的系统......

    您将 write it in Spring Boot... or Django, ... 或 Flask+Faust, or NodeJS 然后将 Kafka 消息从内置消费者转发到网络套接字。

    tl;dr 搜索你的语言 + websocket + kafka”......我确定会有结果的


    或者您可以使用 Kafka REST 代理,然后只使用 AJAX 而不是 WebSocket。


    例如,您还可以使用Kafka Connect HTTP Sink 仅将事件发送到打开的 webhook(例如 Nifi 的 ListenHTTP)。

    【讨论】:

    • 非常感谢!我使用了 kafka 连接 httpsinkconnector 并且它有效!关于你在 nifi 上所说的话。你不能在 consumeKafka 过滤器上使用 listenwebsocket json 消息(这是我的问题)。
    • 您可以使用ListenWebSocketProduceKafka,但这似乎与您所要求的不同
    • 我想从 kafka 中获取事件并对它们进行 ListenWebSocket msg 过滤器...但 Nifi 似乎不可能...再次感谢 :)
    • 对。 ListenWebSocket 需要向其发送 HTTP 消息,而不是 Kafka 消息
    猜你喜欢
    • 2014-05-10
    • 2012-01-18
    • 2015-01-17
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2023-03-11
    相关资源
    最近更新 更多