C++的天空

常用链接

统计

最新评论

高并发和高负载

能不能接受爆发连接(并发度如何),主要是取决于accept的速度。一个TCP连接的建立,要在client和server之间,完成三次握手,然后连接会被放到完成队列中,accept从完成队列中取出连接并返回。任何影响accept取连接的因素,都会影响并发度。一般策略是,1 独立处理accept,2 使用epoll处理accept,这两种情况,并发度都是不错的。
并发地接受了这么多连接,并不代表能完全处理。假如有很多连接同时在线,server accept成功并收到了数据,这时消息被放到消息队列中,等待逻辑线程来处理。因为生产者(收数据)的速度总是大于消费者(处理数据)的速度,因此消息队列会有考虑流控,以免系统资源被耗光。这样,有些消息就可能丢失。这就是同时在线连接数的问题。
前者是高并发,后者是高负载。设计时会权衡偏向。

posted on 2008-03-24 22:36 ecopgm 阅读(1236) 评论(0)  编辑 收藏 引用 所属分类: Server Programming


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理