kafka 接收结构化数据 得到结果
protoc 生成的js 文件
node 接收代码
kafka 接收结构化数据 得到结果
protoc 生成的js 文件
node 接收代码
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
要将接收到的消息转换为对象,你需要在Node.js中使用JSON.parse()函数。下面是一个示例,展示了如何从Kafka消息中解析JSON并将其转换为一个对象:
const Kafka = require('kafka-node');
const { Client } = require('kafkajs');
// 创建Kafka客户端实例
const client = new Kafka.Client({
clientId: 'my-kafka-client',
brokers: ['localhost:9092']
});
client.connect().then(() => {
// 创建消费者实例
const consumer = new Kafka.Consumer(client, {
groupId: 'test-group',
topic: 'index-vehicle',
partitions: [0]
});
consumer.on('message', (msg) => {
try {
// 将消息转换为JavaScript对象
const parsedMessage = JSON.parse(msg.value.toString());
console.log(parsedMessage);
} catch (error) {
console.error(`Error parsing message: ${error}`);
}
});
consumer.on('error', (err) => {
console.error(err);
});
// 开始消费
consumer.subscribe();
}).catch((err) => {
console.error(err);
});
这段代码首先创建了一个新的Kafka客户端实例,并设置了连接到指定的服务器和主题。然后,它创建了一个新的消费者实例,并设置其组ID、主题和分区。
接着,消费者监听到消息时调用on('message')方法。在这个方法中,我们尝试将接收到的消息值(通过msg.value获取)转换为JavaScript对象。如果成功,我们将转换后的对象输出到控制台;否则,捕获错误并在控制台上打印出来。
最后,消费者订阅了主题,并开始接收消息。注意,这个例子使用的是kafka-node库,但你也可以使用其他类似的库来实现类似的功能。例如,你可以使用kafka-node库的Consumer类中的subscribe方法来订阅主题,并使用on('message')方法来处理接收到的消息。