fiware - Fiware IoT Agent - 数据丢失问题
问题描述
我们正在观察 IoT 代理中的大量数据丢失。当 IoT 代理从我们的 VerneMQ MQTT 代理接收数据时,就会发生数据丢失。
我们的数据以 1000/min 的速度流动。启动 IoT 代理后,它可以正常工作大约 12 小时,但在 12 小时后,我们看到平均数据丢失率为 20%。
除了 IoT 代理之外,我们还有一个订阅者从 VerneMQ 主题接收相同的数据,并且该订阅者从 VerneMQ 接收所有数据。数据丢失仅在 IoT Agent 中。
我们正在使用 ECS/Fargate 服务在 AWS 环境中运行 IoT 代理和 Orion 上下文代理。每个 IoT 代理和 Orion 实例都在单独的专用容器中运行。
当 IoT Agent 在一个 ECS 容器上运行时,它可以正常工作而不会丢失数据,但是当 ECS 容器增加到多个时,似乎会丢失数据。您能否指导并帮助我们解决此问题。
关于我们的环境的详细信息:
- 物联网代理版本:
{ “libVersion”:“2.12.0-next”,“端口”:“4041”,“baseRoot”:“/”,“版本”:“1.14.0-next”}
- Orion 上下文代理版本:
{ "orion": { "version": "2.3.0", "uptime": "0 d, 3 h, 51 m, 36 s", "git_hash": "764f44bff1e73f819d4e0ac52e878272c375d322", "compile_time": "Tue Nov 5 09:38:37 UTC 2019", "compiled_by": "root", "compiled_in": "38ab37448d3a", "release_date": "Tue Nov 5 09:38:37 UTC 2019", "doc": "https://fiware-orion.rtfd.io/en/2.3.0/" } }
解决方案
当您说“数据丢失”时,您的意思是 VerneMQ 记录它正在丢弃消息吗?如果消费者超载,就会发生这种情况。在这种情况下,VerneMQ 将通过减载消息来保护它。
不过,您当前的消息率应该不是问题。
André(与 VerneMQ 项目一起)
推荐阅读
- c# - C#语音识别不会回答我
- c++ - 在 C++ 中将浮点数转换为本地化字符串
- python - 使用 url 循环列表时出现 TimeoutException
- python - 线性回归 (OLS):使用 Statsmodel summary_Frame() 未准确计算置信区间
- mysql - 尝试多次查询时“无法获取连接”
- spring-boot - 如何在 Spring Boot 应用程序中安装 Spring Web Flow 和 Java servlet faces 2?
- python-3.6 - ros2 rclpy.spin_once() 在线程中产生“生成已经执行”异常
- openlayers - OpenLayers - 如何将自定义切片图层投影到 [-200,-200,200, 200] 的视图?
- splunk - Splunk Rex:将字符串的字段提取为值
- ios - Ionic 4 IOS Socket.io 如何动态获取配置