python - IoT socket server 设备反控方案选择,Redis PubSub还是SQL ?

 董雅淑_420 发布于 2022-10-28 08:47

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

  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的无效通讯。

听听大家的意见?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有