我在nodejs中有一个简单的应用程序,我正在尝试在KafkaJS中创建一个事务。我跟踪了文档,并使用一个事务id连接了我的客户端,并创建了一个事务性生产者。
问题是,当我试图在docs中运行事务示例时,会得到以下错误:
KafkaJSError: The producer is disconnected
at validateConnectionStatus (/usr/local/apps/app/node_modules/kafkajs/src/producer/messageProducer.js:31:15)
我在网上查过了,但找不到任何相关的问题。我搞不懂为什么会出现这种情况,因为我在使用它之前创建了事务生成器。我也很肯定这与卡夫卡经纪人的连接没有任何问题,因为当我创建一个正常的制作人时,它没有问题地发送信息。
以下是代码:
const client = new Kafka({
clientId: 'app-transactional-clienet',
brokers: ['host.docker.internal:9092'],
})
const producer = client.producer({
transactionalId: 'transaction.connectedservice.producer',
maxInFlightRequests: 1,
idempotent: true
})
const transaction = await producer.transaction();
try {
const connectedAccountMsg: ConnectedAcccountMsg = {
userId: req.session.userId,
accountId: profile.id,
accountUsername: profile.username,
accountType: 'twitter',
authorized: true,
};
await transaction.send({
topic: 'user.connectedaccount.status',
messages: [{
value: JSON.stringify(connectedAccountMsg)
}],
})
await transaction.commit()
return done(null, profile);
} catch (error) {
console.log(error)
await transaction.abort()
}
https://stackoverflow.com/questions/72830451
复制相似问题