使用 nodejs 查询 Kafka 主题

Query a Kafka Topic with nodejs

我有点纳闷。真的没有 NodeJS API 来查询 Kafka 主题吗(例如 Kafka Streams 和 Java API)?我错过了什么吗?

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

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

这是对我和大多数人有用的东西。

有限解

如果你很固执,想坚持使用 node.js 库来为你整理:https://nodefluent.github.io/kafka-streams/docs/

截至今天,他们提供:

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

完整的解决方案

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

  1. 它在 1 分钟内旋转起来 docker yml file

  2. 运行 docker-compose up -d

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

  4. 只需向 http://0.0.0.0:8088/ 发送 GET 请求,即可开始从 REST API 请求状态。它将return服务信息。

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

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

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