【发布时间】:2019-05-31 01:54:19
【问题描述】:
我正在使用 express 和 kafka-node 构建一个简单的 node.js API,当收到 HTTP 请求然后关闭连接时,它会从请求的 Kafka 主题和消费者组返回未读消息。我不需要也不希望消费者继续等待新消息。
在 kafka-node 中,检查是否已到达主题末尾的正确方法是什么,如果是,则关闭与代理的连接并退出应用程序以防止读取新消息?
这是我的 consumer.js。它与 kafka-node 文档中给出的示例几乎相同。
"use strict";
const kafka = require("kafka-node");
let topicName = "testTopic-01",
groupName = "testGroup-01",
consumerOptions = {
kafkaHost: "localhost: 9092",
groupId: groupName,
sessionTimeout: 15000,
protocol: ["roundrobin"],
fromOffset: "earliest",
encoding: "utf8"
};
const consumerGroup = new kafka.ConsumerGroup(consumerOptions, topicName);
consumerGroup.on("message", message => {
console.log(`Message: ${message.value}`);
});
consumerGroup.on("error", error => {
console.error(error);
});
console.log(`Consumer started on topic ${topicName} on group ${groupName}`);
【问题讨论】:
标签: node.js apache-kafka