假如有如下需求请大家帮我分析一下该如何实现:一个电子商务网站,上面有数千家卖家,每个卖家要能够比较及时的知道是否有人下单,并且把订单信息打印到本地.
我目前的想法是:在每个卖家的本地电脑安装一个客户端软件,然后定时向服务器请求(假设3分钟)一次,通过WebService获取是否有新的订单,如果有新的订单然后下载进行打印,我担心的是,如果有数千个客户端非常频繁的去访问网站,服务器会不会承受不住,我入行不久恳请各位大牛们帮我分析一下如何设计比较好,谢谢!!!
客户端多的话,定时请求会增加,这样会给服务器造成压力。
可以在服务器端安装服务,定时检查服务器数据库是否有更新,然后分发给某个“卖家客户端”,客户端没必要一直定时请求。
也可以让服务器数据库和另一台共享数据库服务器同步,客户端请求另一台服务器的数据库。
http://www.cnblogs.com/daizhj/ 他写的几篇文章不错。
解决的方法其实有很多种,但是每种的成本是不一样的。
我想你自己也已经有想法了,是吧?看看你自己的资源,找一种最经济的方式
就几千用户的话也没必要太复杂,最新的订单都放在内存里面,轮询对DB压力也不大,只需查找内存,没秒1000的请求量应该是没有问题的
既然做客户端程序,就不要定时轮训了,从服务器推送数据岛客户端就OK了。
你的QQ肯定不是定时去请求腾讯服务器的。客户端订阅,服务器推
用服务端推送信息到客户端是肯定的!
每个客户端软件在登录后要在服务器上进行记录。在服务器出现新订单数据后更具登录信息中的地址iP。发送数据包。
客户端只要监控某个端口的数据就可以了。当然需要定义一个自己的专有协议。