我想连接供应商提供的外部kafka主题;因为我们已经在Node JS之上开发了服务。
所以我正在寻找
NodeJS kafka使用者并具有SSL设置;
因为kafka服务器在握手时需要详细信息;
这是我已经在kafkajs
模块中尝试过的内容
var fs = require('fs');
var Kafka = require('kafkajs').Kafka;
var logLevel = require('kafkajs').logLevel;
var _kafka = new Kafka({
clientId: 'my-app',
brokers: ['broker:9093'],
logLevel: logLevel.DEBUG,
ssl: {
rejectUnauthorized: false,
ca: [fs.readFileSync('./cert/ca.trust.certificate.pem', 'utf-8')],
cert: fs.readFileSync('./cert/client-cert-signed.pem', 'utf-8'),
}
});
try {
const consumer = _kafka.consumer({ groupId: 'test-group' }, { maxWaitTimeInMs: 3000 });
consumer.connect();
consumer.subscribe({ topic: 'external-topic', fromBeginning: true });
consumer.run({
eachMessage: async({ topic, partition, message }) => {
console.log({
partition: 2,
offset: message.offset,
value: message.value.toString(),
})
},
})
} catch (err) {
console.log('Error while connect : ' + err);
}
正在给予
连接错误:101057795:错误:1408E0F4:SSL例程:ssl3_get_message:意外消息:openssl \ ssl \ s3_both.c:408:\ 在连接时;
请帮助我解决问题或为我提供任何npm模块,以便欢迎您尝试使用示例。
答案 0 :(得分:0)
忘记在key
选项中添加ssl
属性;因为这是握手时的必需条件;