如题,设想做一个项目需要接收大量物联网硬件设备上传数据信息(当然,数据量不大,每次不超过512字节),最高同时在线5000个设备(TCP连接可双方通信收发数据),需要这么一个接收程序,该用什么框架?
见到一些做类似物联网设备的GPS系统的服务器,成千上万辆车在里面监控也很稳定,这其中要注意什么。
描述不明白的我会在下面做补充的。
PHP中文网2017-04-17 11:47:16
如果是 Windows 下,建議了解「IOCP」,如果是 Linux 下,建議了解「epoll」。
如果業務不複雜,只是收發大量資料的話,應該就夠了。
當然不是一定要 C/C++ 的話,可以試試Python 的「tornado」
PS:LZ你說的這個數據量主流的技術都 hold 的住
伊谢尔伦2017-04-17 11:47:16
如果有 C++ 背景可以考慮用 Thrift,這個需要伺服器和客戶端一起使用。
如果只考慮伺服器,Go 和 NodeJS 都是不錯的選擇,看看官方的例子就已經比較清楚了。
至於socket 連線的穩定性,主要還是在於TCP 心跳偵測和資料重傳做的好不好,對於通道不好的情況,例如使用3G 卡做連網時,要每隔幾十秒就發一個沒有資料的心跳包,保證儘早偵測到斷線請求,儘早重連。伺服器端效能應該問題不大,就算設備每秒鐘都發資料只要業務不太複雜就不會遇到什麼瓶頸。