azure-iot-hub - 需要在一天中的不同时间使用 Azure IoT 中心为设备提供每秒突发速度消息
问题描述
而 Azure 事件中心可以有成千上万?每秒消息数,Azure IoT 中心对此的限制非常低。
- S1 的速度为 12 msg/sec,但允许每天 400.000 msg pr。单元
- S2 的速度为 120 msg/sec,但每天允许 6.000.000 msg pr。单元
- S3 的速度为 6000 msg/sec,但允许每天 300.000.000 msg pr 单位。
想象一个 IoT 解决方案,您的设备通常每小时发送 1 条消息,但能够激活短暂的“实时”模式以每秒发送消息,持续时间约为 2 分钟。
示例:10.000 个物联网设备:
假设这些设备中有 20% 碰巧每天同时启动实时模式会话 4 次。(我们无法控制个人客户何时启动)。即 2000 个设备,所需的突发速度为 2000 msg/秒。
每日味精需求:
- 正常消息:10.000dev * 24hours = 240.000 msg/day
- 每日实时消息数:2.000dev * 120msg(2 分钟,每秒 1 条消息)* 每天 4 次 = 960.000 条消息每天需要的消息总数:240.000 + 960000 条消息 = 1.200.000 条消息/天。所需的 Azure IoT 中心层:S1 有 3 个单元,每天提供 1.200.000 条消息。(25 美元 * 3 个单位 = 75 美元/月)
所需的突发速度:
- 2000 台设备每秒同时发送几分钟,每天几次:2000 msg/秒。所需的 Azure IoT 中心层:具有 17 个单元的 S2 提供 2040 msg/秒的速度。($250 * 17units = $4250/月) 或者选择 1 个单元的 S3,速度为 6000 msg/秒。(2500 美元/月)
由于每天的消息数量适中,每日消息数量只需要较低的 IoT 中心层,但激活实时时对突发速度的需求需要不成比例的非常高的 IoT 中心层,这使解决方案的每月成本飙升(33 倍) ,毁了商业案例。
只要每日发送的消息总数不超过当前等级的最大限制,是否可以在一天中的不同时间允许临时突发速度?
我从 Nicole Berdy 2016 年的一篇文章中了解到,Azure IoT 中心的限制已经到位,以避免 DDOS 攻击和滥用。但是,为了能够使用 Azure IoT 中心模拟实时模式功能,我们需要更多的事件中心,例如消息/秒速度。这可以通过联系支持或其他方式打开吗?如果整个解决方案都存在于自己受保护的网络泡沫中,它会有所帮助吗?
谢谢,
解决方案
对于实时需求,请始终考虑Azure IoT Edge,并仔细检查是否可以在您的场景中实施它。
在您上面所做的计算中,例如 S2 的速度为 120 msg /sec。这并不完全正确。让我更好地解释一下:
- 仅当您超过 120 个发送操作/sec/unit时,才会应用设备到云发送的限制
- 每条消息最大为 256 KB,这是最大消息大小。
因此,要以尽可能低的成本成功实施方案,您需要回答的问题是:
- 我的设备的消息大小是多少?
- 我是否需要在客户的云环境中近乎实时地显示消息,或者我关心的是特定时间传感器的详细程度?
- 当我启用“突发模式”时,我是否在利用Azure IoT SDK的批处理模式?
对于您的问题:
只要每日发送的消息总数不超过当前等级的最大限制,是否可以在一天中的不同时间允许临时突发速度?
不,例如 S2 的限制是 120 设备到云发送操作/秒/单位。
这可以通过联系支持或其他方式打开吗?如果整个解决方案都存在于自己受保护的网络泡沫中,它会有所帮助吗?
不可以,唯一的例外是当您需要将可注册到单个 IoT 中心的设备和模块的总数增加到 1,000,000 以上时。在这种情况下,您应联系 Microsoft 支持。
推荐阅读
- python - Django 转储数据不适用于 CharField 或 TextField 中的表情符号
- python-3.x - 尝试使用python通过字典的返回列表进行映射
- reactjs - React/Redux 购物车未更新
- tensorflow - NotImplementedError:无法转换符号张量 (cond_2/strided_slice:0)
- arrays - 循环 json 数据并将数据添加到 textLabel
- node.js - 在 generateEmailVerificationLink() FirebaseAdmin SDK 上更改 URL 的语言
- java - getLayoutPosition() 和 getAdapterPosition() 有什么区别?
- java - 当我运行 Jar 文件时,我不断收到 NoClassDefFoundError
- node.js - 新表单的内容安全策略问题
- r - 如何根据所有列中的特定值对行进行子集化