我在我的 Nodejs 应用程序中使用 Nats 流、node-nats-streaming。
我在 kubernetes 集群上运行了两个服务,使用 Nats 相互通信。
问题是当我的侦听器内部发生错误时,nats 客户端会断开连接,并且再也不会出现在 Nats 服务器的客户端列表中。
客户端在 kubernetes 集群内运行,连接到它的数据库,但它失去了与 Nats 流的连接并且永远不会重新连接。
subscription.on('message', (msg: Message) => {
const data = msg.getData();
const order = Order.findById(data.orderId);
if (!order) {
// by throwing this error NATS client gets disconnected, and never connects again
throw new Error('Order not found');
}
// doing some modification with the order object
//...
msg.ack();
});
我的问题是,它是 node-nats-streaming 客户端的默认行为吗?我该如何解决这个问题。
提前致谢。