首页 > 解决方案 > 使用 nodejs 查询 Kafka 主题

问题描述

我有点疑惑。是否真的没有 NodeJS API 来查询 Kafka 主题(例如,与 Kafka Streams 和 Java API 一样)?我错过了什么吗?

只是为了弄清楚这一点。仅被通知主题的最新事件/记录对我来说是不够的。我想查询和处理主题的记录 - 然后可能将聚合存储到另一个主题。

感谢您的想法,如果这仅适用于 nodejs 和库。

标签: node.jsexpressapache-kafkanestjs

解决方案


这对我有用,大多数人都在使用。

有限的解决方案

如果你很固执并且想坚持使用 node.js 库来为你打包:https ://nodefluent.github.io/kafka-streams/docs/

截至今天,他们提供:

  • 轻松访问流
  • 合并流
  • 拆分流

完整的解决方案

最简单的方法(从今天开始 - 有传言说 Confluent 正在创建更多库,还有一个用于 nodejs)可以通过REST API查询 kafka 。它是 ksqlDB 的一部分,而 ksqlDB 是 confluent 平台的一部分,该平台还附带 Zookeeper 和您可能已经拥有的 Kafka 实例。如果您想知道如何安装:

  1. 它使用docker yml 文件在 1 分钟内启动。

  2. docker-compose up -d

  3. 查看运行的端口和服务docker ps

  4. 只需发送一个 GET 请求到http://0.0.0.0:8088/. 它将返回服务信息。

     {
         "KsqlServerInfo": {
             "version": "6.2.0",
             "kafkaClusterId": "uOXfee3zQ76vCKBbREw1yg",
             "ksqlServiceId": "default_",
             "serverStatus": "RUNNING"
         }
     }
    

希望你们中的一些人从最初的研究中剥离出来。而且....如果我们幸运的话,很快就会有一个包装库。

然后根据您的主题创建一个流,瞧。您已准备好使用REST API查询您的主题(通过流) 。由于 REST API 提供 HTTP2,因此人们还可以期望对流中新到达的记录进行持续更新。为此应用推送查询。拉取查询将在结果交付后切断线路。


推荐阅读