首页 > 解决方案 > 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() ,建议使用后关闭生产者客户端。

但是,如果上面的错误信息实际上不是错误,是否关闭可能并不重要。

标签: amqpazure-eventhub

解决方案


谢谢yvgopal。发布您的建议作为帮助其他社区成员的答案。

该日志指出该服务在空闲时关闭了您的连接。SDK 必须将其记录为 WARN,以了解连接和链接发生的情况。

你能升级到最新版本的SDK吗?我们在以后的版本中将日志级别更改为 INFO。

您可以参考连接错误。'错误 {condition=amqp:connection:forced, description='连接处于非活动状态超过允许的 300000 毫秒,并被容器 'LinkTracker' 关闭。“连接处于非活动状态的时间超过允许的 60000 毫秒,并被容器“LinkTracker”关闭


推荐阅读