【问题标题】:Azure event Hub connection is closed errorAzure 事件中心连接已关闭错误
【发布时间】:2021-11-12 19:58:57
【问题描述】:

我在使用 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} "

我曾经试过,如果我在EventHubProducerClient中调用close()方法(参考https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-java-get-started-send中的示例代码),这个错误似乎不会再次出现。但是,如果这样做,每次需要发送事件时,就意味着需要创建一个新的EventHubProducerClient。如果为每个发送事件创建一个新的EventHubProducerClient,我不确定这是否会产生另一个问题(例如创建新的EventHubProducerClient 所需的时间和内存消耗),因为可能有很多事件要发送。

又搜了How to configure Producer.close() in Eventhub,建议用完后关闭producer客户端。

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

【问题讨论】:

  • 得到了一些关于这个问题的进一步更新,不确定它是否可能与 close() 方法有关。但是,根据提供的答案,日志只是反映空闲一段时间后连接自动关闭,因此本质上不是错误。
  • 你可以在 GitHub 上打开一个问题:azure-service-bus-java

标签: amqp azure-eventhub


【解决方案1】:

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

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

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

可以参考Connection error. 'Error {condition=amqp:connection:forced, description='The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'.'The connection was inactive for more than the allowed 60000 milliseconds and is closed by container 'LinkTracker'

【讨论】:

    猜你喜欢
    • 2018-07-11
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    相关资源
    最近更新 更多