amqp - Azure 事件中心连接已关闭错误
问题描述
我在使用 azure 事件中心发送事件消息时看到类似以下错误。但正如我在 azure 门户中看到的那样,该指标显示事件消息已发送到事件中心。所以我对这个错误信息的含义感到困惑。
正如我从 azure 文档 ( https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-amqp-troubleshoot ) 中读到的,它说“您在 AMQP 连接上看到以下错误时连接中的所有链接都已关闭,因为没有活动(空闲)并且 5 分钟内没有创建新链接。”
该文档还说“您可以通过在连接/链接上进行发送/接收调用来避免它们,这会自动重新创建连接/链接。”
对于这个错误信息应该怎么做?虽然可以发送事件消息,但我担心那里可能存在任何潜在问题。
" Error{condition=amqp:connection:forced, description='The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:00000000000000000000000000000000000_G21, SystemTracker:gateway5, Timestamp:2019-03-06T17:32:00', info=null} "
我曾经尝试过,如果我调用该close()
方法EventHubProducerClient
(通过参考https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-java-get-started-send中的示例代码),此错误似乎不再出现。但是,如果这样做,每次都需要发送事件时,就意味着需要创建一个新的EventHubProducerClient
. 如果为每个发送事件创建一个新事件,我不确定这是否会产生另一个问题(例如创建新事件所需的时间EventHubProducerClient
和内存消耗)EventHubProducerClient
,因为可能有很多事件要发送。
在另一次搜索中,我发现如何在 Eventhub 中配置 Producer.close() ,建议使用后关闭生产者客户端。
但是,如果上面的错误信息实际上不是错误,是否关闭可能并不重要。
解决方案
谢谢yvgopal。发布您的建议作为帮助其他社区成员的答案。
该日志指出该服务在空闲时关闭了您的连接。SDK 必须将其记录为 WARN,以了解连接和链接发生的情况。
你能升级到最新版本的SDK吗?我们在以后的版本中将日志级别更改为 INFO。
您可以参考连接错误。'错误 {condition=amqp:connection:forced, description='连接处于非活动状态超过允许的 300000 毫秒,并被容器 'LinkTracker' 关闭。和“连接处于非活动状态的时间超过允许的 60000 毫秒,并被容器“LinkTracker”关闭
推荐阅读
- postgresql - PostgreSQL 匹配任何字符串
- c - 仅在 linux 上获得无限循环溢出 - C
- javascript - ServiceWorker 脚本评估失败
- swift - ios swift如何以编程方式更改屏幕旋转时视图的背景颜色?
- c# - 为使用服务的端点编写单元测试时遇到问题,如何正确编写它?
- javascript - 如何在另一部分使用 CSS 动画时延迟图像的出现
- reactjs - 如何使用 redux-thunk 和 try-catch 处理多个调度结果?
- java - 有人可以解释一下这段代码中的布尔值是如何工作的吗?
- r - 替换行中的 na 值
- javascript - Nuxt - 无法删除事件监听器