轮询通常就是一些只做办公室裏的小OA程序的人用来“玩儿”的例子。
来假设一下就算是每隔2秒钟轮询一下,那么当你“新鲜劲一过”稍微测试,你就会发现测试者茬办公室里通讯聊天时的感觉是“一卡一卡”的一端发了信息,另外一端要等待2秒钟以上才能提示这时候用户体验已经特别糟糕(如果你想想不出来,那么就实际去试试)
而假设是1000人并发,那么2秒钟内就需要至少承载1000个数据库事务请求(实际上一个事务中可能不仅僅只有一条 select 语句)。腾讯有8亿用户10万台服务器,怎么查询
实际上办公室小OA这么搞,当有几十用户就崩溃了服务器卡死报废了。
2秒钟輪询一下这种即时通讯用户体验都会被用户嘲笑。但是弄到200毫秒轮询一下那么服务器更加是不能支撑几个用户并发使用了。这种“技術”适合初学者自己玩儿一旦实用才发现会迅速变low。
所以技术通讯都是双向的服务器直接把消息推给客户端。甚至比如说腾讯,当伱的QQ连某一个服务器上的时候它推送给其它服务器,经过2、3次服务器转发才最终推给客户端这在几亿用户之间是实时发送的信息。
设計这样的系统的人绝不可能满脑子是什么“数据库”。根本没有数据库概念这是通讯概念。