我在node.js中实现了Avro架构,其中架构与消息有效负载一起发送。它工作正常。我正在寻找是否有任何方法可以使用架构注册表与Kafka节点模块。我已经探索过,但找不到任何成功。
在每封邮件中发送架构会增加邮件大小吗?与使用模式注册表相比,它是否会影响性能?
我们将不胜感激。
答案 0 :(得分:1)
您可以使用“ avro-schema-registry”模块。 它为我工作。我也是Kafka的新手,只需尝试一下即可。
const kafka = require('kafka-node');
const avroSchemaRegistry = require('avro-schema-registry');
/* Configuration */
const kafkaTopic = 'newkafkatopic';//'kafka.test';
const host = 'localhost:9092';
const schemaRegistry = 'http://localhost:8081';
const Consumer = kafka.Consumer;
const Client = kafka.KafkaClient;
const registry = avroSchemaRegistry(schemaRegistry);
var client = new Client(host);
var topics = [{
topic: kafkaTopic
}];
var options = {
autoCommit: false,
fetchMaxWaitMs: 1000,
fetchMaxBytes: 1024 * 1024,
encoding: 'buffer'
};
var consumer = new Consumer(client, topics, options);
consumer.on('message', function(rawMessage) {
console.log("Raw Message", rawMessage);
registry.decode(rawMessage.value)
.then((msg) => {
console.log(msg)
})
.catch(err=>console.log(err))
});
consumer.on('error', (e) => {
console.log(e.message)
consumer.close();
})