我正在使用Ruby on Rails构建一个Web应用程序,它需要具有高度可扩展性.在此应用程序中,数据由移动客户端(大约20个字节)每秒产生.所有这些数据必须在某个时刻传输到服务器,最好尽快.
要完成此任务,我希望服务器充当RESTful服务.客户端可以缓冲位置(例如每5到30秒),然后将其作为HTTP put请求进行拍摄,然后服务器可以存储它们.我相信这个模型更容易实现,并且更好地处理大量流量,因为客户端可以保持缓冲数据,直到他们听到来自服务器的响应.
另一方面,我的老板想要使用套接字编程实现服务器.他认为套接字编程将导致更少的数据传输,这将提高系统的总效率.我不能不同意这一点,但我认为考虑到现代带宽,HTTP的额外开销是值得的.另外,我认为尝试维护数千(或数百万)的用户同时连接会导致自身问题,并大大增加服务器的复杂性.
老实说,我不知道解决这个问题的正确方法,所以我想我会在这里发布并获得比我更聪明的人的意见.如果有任何答案包括所提出的解决方案的优缺点,我将不胜感激.
谢谢.
更新
我们现在已经刷新了一些额外的要求.首先,移动客户端每月无法上传超过5 GB的数据.在这种情况下,我们每个月每天八小时通话一条消息.其次,我们希望尽可能少地组合消息.这是为了确保移动客户端发生某些事情(比如车祸),我们会尽可能少地丢失数据.