【发布时间】:2021-10-28 02:05:21
【问题描述】:
我正在使用 .NET Web 应用程序作为 IoT 设备和 IoT 中心之间的缓冲区。 IoT 设备将数据发送到 Web 应用程序,然后将该数据路由到 Azure IoT 中心。我正在使用设备客户端来执行此操作。在我们投入生产后请求数量开始增长之前,它一直运行良好。
这是向 IoT 中心发送数据的代码。
public async Task SendDataToIoTHub(Message eventMessage, string deviceId, string deviceKey)
{
string connectionString = $"HostName=" + IoTHubHostname + ";DeviceId=" + deviceId + ";SharedAccessKey=" + deviceKey;
using (DeviceClient deviceClient = DeviceClient.CreateFromConnectionString(connectionString))
{
if (deviceClient == null)
{
return;
}
await deviceClient.SendEventAsync(eventMessage);
}
}
我每分钟大约有 3k-4k 个请求,并且每个请求都会调用上面的代码。自从请求率达到这个数量以来,它真的开始变得不可靠了。在短时间内出现“TCP 连接过多”警告,导致整个应用程序开始显着减速。
我想知道设备客户端的这种初始化是否正确,或者是否有更好的方法。
谢谢!
【问题讨论】:
标签: c# asp.net api azure-iot-hub