我有一个约有2000台设备的IoT系统。我希望每个设备都将数据上传到MongoDB实例。
每个设备每8-12秒连接一次,并进行一次输入。实际的条目写入大约需要50毫秒。
我的MongoDB的最大连接数为100。尽管这不太可能,但由于最大连接数,总有2000个设备同时连接并被db拒绝的可能性。
我的所有设备都可以向其发送数据的预先存在的排队服务吗?我不想编写一个中间人服务器来从IoT设备收集所有数据并将其转发到数据库。
所以基本上不是:
|设备| -------->数据库
我需要:
|设备| ------->服务------>数据库
我只是不确定这个“服务”是什么。这样的事情存在吗?我应该找什么?我尝试使用AWS SQS,但是我不太清楚如何从AWS SQS向mongo db进行输入。这是正确的工具还是其他服务?
答案 0 :(得分:0)
您可以尝试使用消息队列。
Rabbit MQ是一个不错的选择,因为它支持MQTT(非常适合设备到云通信)和AMQP(0.9.1)(非常适合云到云通信)
您还可以使用任何标准的MQTT代理(EMQTT,Mosquito,Hive等),并在两者之间实现对MongoDB客户端的MQTT。将MQTT clean_session标志设置为false将使代理充当高速缓存。