• 谈点技术吧,6万人在线每秒实时更新的解决方案


    帮客户做了一个解决方案,要求是 6万个用户在线,每1秒他们都能获得实时的信息。

    开始想用静态页面做,测试下来,单台服务器IIS每秒处理几千个估计可以的,处理6万个带宽已经爆掉了,带宽估计200M以上。

    用Big5、NetScaler,太贵了。20几万以上,钱付得起了,带宽还是不太行。 

    用TCP连接,6万个TCP连接估计也没啥问题,但是就要考虑多线程,不能一个连接阻塞影响其它连接的处理,处理起来还是挺麻烦的,不小心程序就死掉了。 

    最后采用了UDP实现,效果非常好,一台服务器就搞定了,大概60M带宽。  UDP的好处是无连接的,服务器发掉就发掉,没有任何负担,程序死掉重启下就行了。 

    做法:

          C/S客户端发一个UDP包给服务器,服务器就知道客户端的IP和端口了,再把实时的信息发给客户端就行了。 客户端可以每N秒发送一个数据包,表明自己活着。

         

    有的时候担心是不是有的公司内网或者家里NAT(路由器什么的)不开UDP端口,一般来说客户端通过NAT先发送一个UDP数据包给服务器,NAT会打开端口,做好映射,这时候服务器向客户端发送UDP数据了,客户端就能收到UDP数据了。

    几十万用户测试下来,顶多有10%的机器不支持。因此又提供了一个 Web页面,UDP不通的时候用Web去拿XML数据。

    UDP真的很强,什么时候有空打算拿来做个群发器,在家里的电脑上就能给几千个人发消息,突破网络封锁,用来做很多合法或者不合法的事情了... 

    【代码怎么写?自己研究下好了,实在太简单了,让客户用Java实现的...】 

    【预告:下次讲讲音视频实时直播的方案,研究了两个月....】

  • 相关阅读:
    ecshop首页最新评论的调用
    在ECSHOP商品列表页显示每个商品的评论等级和评论数量
    ecshop 系统信息在哪个页面
    ECSHOP去版权_ECSHOP2.7.2去版权方法最新方法
    ECShop 自定义函数以及调用
    ecshop 首页如何调用积分商城里面的的商品
    回到顶部的js代码
    ./flow.php (购物流程)
    C#把字符串转时间格式
    如何将服务端的多个文件打包下载(转)
  • 原文地址:https://www.cnblogs.com/ttvnc/p/1613830.html
Copyright © 2020-2023  润新知