将事件发送到Azure事件中心时的高延迟

问题描述

我有一个采用json对象并将其转发到Azure Event Hub的API。运行带有.NET Core 3.1和EventHub SDK 3.0的API,它还配置了Application Insight以收集依赖项遥测,包括事件中心。

在Application Insight中使用以下kusto查询,我发现有一些对Event Hub的调用具有非常高的延迟(最高为60秒,平均大约3-7秒)。

dependencies 
| where timestamp > Now()-7d
| where type == "Azure Event Hubs" and duration > 3000 
| order by duration desc

另外值得注意的是,它在460万个Azure Event Hubs依赖结果中返回了890个结果

我已经检查了Azure Portal上的事件中心指标刀片,平均(以1分钟时间间隔)传入/传出请求的方式低于吞吐量单位(我在EH名称空间中有2个事件中心,1个TU,自动缩放到20个最大值),每秒大约50-100条消息,传入和传出字节大约100kB。 0个受限制的请求,不时出现1-2个服务器/用户错误

存在峰值,但没有超过吞吐量限制,并且慢速依赖性时间戳也与这些峰值不匹配

我还手动将吞吐量单位提高到2,并且它没有任何改变

我的问题是:

  1. 有时对事件中心的延迟过高是正常的吗?还是只要少量就可以接受?

  2. 代码排列,仅使用1个EventHubClient实例发送所有请求,这是一种不好的做法,还是应该使用其他类似客户端池的内容

  3. 我还有一个支持工程师告诉我,在一个时间戳中,我在Application Insight中具有高延迟,事件中心日志似乎没有这么高的延迟(最大322ms),无需详细说明,这是Application Insight可能产生错误性能遥测?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)