Azure 事件中心连接已关闭错误

问题描述 投票:0回答:1

我在使用 azure 事件中心发送事件消息时看到类似以下错误。但正如我在天蓝色门户中看到的那样,指标显示事件消息已发送到事件中心。所以我对这个错误消息的含义感到困惑。

当我从 azure 文档 (https://learn.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://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-java中的示例代码) -get-started-send),这个错误似乎不会再出现了。但是,如果这样做,当每次需要发送事件时,就意味着需要创建一个新的
EventHubProducerClient
。我不确定如果为每个发送事件创建新的
EventHubProducerClient
是否会产生另一个问题(例如创建新的
EventHubProducerClient
所需的时间和内存消耗),因为可能有很多事件要发送。

在另一次搜索中,我发现在如何在Eventhub中配置Producer.close(),建议使用后关闭生产者客户端。

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

amqp azure-eventhub
1个回答
0
投票

这实际上是微软知道的一个错误。他们没有根据规范实现 AMQP 协议,因此无论您是否发送流量,如果您使用 SASL 进行身份验证,他们都会在任意时间后断开您的连接。

他们有解决这个问题的方法,但你必须提出要求。

© www.soinside.com 2019 - 2024. All rights reserved.