python - IoT socket server 设备反控方案选择,Redis PubSub还是SQL ?
ringa_lee
ringa_lee 2017-04-17 17:53:29
0
0
401

一台面对物联网的套接字服务器,架构较为简单:

  1. Python Twisted socket server;

  2. Redis作为缓存

  3. MySQL作为持久层数据库;

  4. Python Web server作为用户界面。

客户要求能够反向控制及配置设备。即在Web端口可以发送命令给前端套接字服务器。

有两种解决方案:

  1. 利用Redis pubsub构成消息队列。

  2. 利用Redis/MySQL数据库作为消息缓冲,套接字服务器端采用轮询方式。

采用PubSub可以构成异步推送的方案。但是代价是每个协议对象需要保持三个长连接:

  1. Device

  2. Redis Sub(主要)

  3. Redis Pub(次要)

是否过于消耗存储器资源?现有的设计中与Redis连接采用连接池的设计,是否意味着重大的代码修改?

采用轮询方式,每次有设备活动,或者定时CallLater可以由协议对象去轮询一次数据库(Redis/SQL均可)。但是增加了Redis/TCP的无效通讯。

听听大家的意见?

ringa_lee
ringa_lee

ringa_lee

membalas semua(0)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!