node.js - 当我在 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 客户端的默认行为吗?我该如何解决这个问题。
提前致谢。
解决方案
推荐阅读
- python - 通过将单词与英语单词白名单进行比较来检查单词是否为英语的快速(er)方法?
- java - 运行 Testcase Corda enterprise 3.1 时找不到类
- ios - 约束未能添加填充
- javascript - NodeORM 按日期月份分组
- wordpress - 如何修复 Godaddy 中的 508 资源限制。进入过程显示最大超过
- clojure - 有条件地绑定来自 Clojure 核心的动态 var 以实现向后兼容性
- excel - 如果出现错误,则出现“下一步”问题“错误”结束 VBA
- angular - Angular 6验证数字输入
- azure - 无法使用 NotificationHub + ApnsCredentials 部署 arm 模板
- scala - 错误:值 toDF 不是 org.apache.spark.rdd.RDD[org.apache.kafka.clients.consumer.ConsumerRecord[String,String]] 的成员