【发布时间】: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