You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用@azure/service-bus时AMQP会话类错误日志的原因及解决方法

Azure Service Bus @azure/service-bus 收发消息时的rhea-promise错误日志解析与解决办法

日志含义解析

这些日志并非真正的功能错误,只是底层AMQP库rhea-promise的调试信息被误标记为error级别了,你的收发功能正常也印证了这一点。具体拆解:

  • close receiver explicitly / close client explicitly:代码中显式触发了Receiver或Client的关闭操作
  • rhea-promise:error [connection-4] The receiver '***e87' on amqp session 'local-1_remote-1_connection-4' is open ? -> true:关闭前的状态检查,确认Receiver处于打开状态,属于正常流程的前置步骤
  • detach#16 {"closed":true}:发送AMQP协议的detach帧,正式关闭Receiver/Sender链接
  • receiver_close / sender_close:底层链接关闭的事件通知
  • end#17 {}:发送AMQP协议的end帧,关闭当前Session
  • session_close:Session关闭的事件通知
  • close#18 {}:发送AMQP协议的close帧,关闭整个Connection
  • connection_close:Connection关闭的事件通知

简单说,这是一套完整的资源清理流程日志,只是日志级别被错误标记为error,造成了误解。

解决办法

1. 直接忽略(推荐)

既然业务功能正常,这些日志不影响运行,可直接无视。

2. 调整日志级别

通过配置降低rhea和rhea-promise的日志输出级别,过滤掉这类调试信息:

// 调整rhea库的日志级别为warn及以上
const rhea = require("rhea");
rhea.set_log_level("warn");

// 或者使用@azure/logger统一控制Azure SDK日志
const { setLogLevel } = require("@azure/logger");
setLogLevel("warn");

3. 复用ServiceBusClient实例

如果每次收发都创建新的ServiceBusClient、Receiver或Sender,会频繁触发资源关闭流程,导致这类日志重复出现。建议全局复用一个ServiceBusClient实例:

// 全局初始化一次Client
const { ServiceBusClient } = require("@azure/service-bus");
const serviceBusClient = new ServiceBusClient("你的连接字符串");

// 收发消息时仅创建/关闭Sender/Receiver
async function sendMessage() {
  const sender = serviceBusClient.createSender("队列名称");
  await sender.sendMessages({ body: "测试消息" });
  await sender.close();
}

async function receiveMessages() {
  const receiver = serviceBusClient.createReceiver("队列名称");
  const messages = await receiver.receiveMessages(1);
  await receiver.completeMessage(messages[0]);
  await receiver.close();
}

// 程序退出时再关闭全局Client
process.on("exit", async () => {
  await serviceBusClient.close();
});

4. 升级SDK版本

检查并升级@azure/service-bus到最新版本,新版本可能已修复日志级别误标的问题,将这类调试日志调整为debug级别,不再混入error日志中。

内容的提问来源于stack exchange,提问作者Vincente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:20:54