首页 > 解决方案 > 当我在 subscription.on('message') 函数中抛出错误时,node-nats-streaming 客户端断开连接

问题描述


我在我的 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 客户端的默认行为吗?我该如何解决这个问题。
提前致谢。

标签: node.jsnats.ionats-streaming-server

解决方案


推荐阅读