社区
C++ 语言
帖子详情
服务器的多线程的服务机制
wensheng_zh2007
2009-11-09 11:42:45
类似QQ这样的服务器,如何同时为那么多的客户端提供服务。
服务器是如何启动多线程的,启动的这些多线程是如何分配给这么多客户端服务的。
...全文
303
20
打赏
收藏
服务器的多线程的服务机制
类似QQ这样的服务器,如何同时为那么多的客户端提供服务。 服务器是如何启动多线程的,启动的这些多线程是如何分配给这么多客户端服务的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lang0728
2011-10-10
打赏
举报
回复
学习了
do_fork
2009-11-12
打赏
举报
回复
[Quote=引用 16 楼 daidodo 的回复:]
引用 15 楼 do_fork 的回复:
引用 14 楼 daidodo 的回复:
引用 11 楼 do_fork 的回复:
引用 10 楼 daidodo 的回复:
引用 9 楼 do_fork 的回复:
处理QQ登陆就有几万台了,加上互娱的N台服务器
何以知之?
随便找个参加过R线入职培训的人问问就知道了
问过了,回复:“不可信”
真问了? 问的是R线员工?
我听即通的经理亲口说的,
当时还有人提问,跟skype只花了50多台机器,解决3000万在线用户问题做了对比。
放心,身边还是能找到几个腾讯人的。
[/Quote]
我估计你问的那个人,他自己都不知道,在凭想象说话
深圳电信IDC,整个一层楼全是QQ的服务器,天津西安北京也都有机房
超过10G的独享带宽,每天的带宽费用都过万了
上次西安机房的主机爬虫爬的太猛,让某网站很怒,他们以为百度在搞鬼,谁也没想到qq在西安还有机房
猫已经找不回了
2009-11-12
打赏
举报
回复
[Quote=引用楼主 wensheng_zh2007 的回复:]
类似QQ这样的服务器,如何同时为那么多的客户端提供服务。
服务器是如何启动多线程的,启动的这些多线程是如何分配给这么多客户端服务的。
[/Quote]
连接池,数据库还有缓存,涉及到太多东西了,内存管理,各种算法。
3000万连接瓶颈问题,楼上是在说ice么?
daidodo
2009-11-12
打赏
举报
回复
[Quote=引用 15 楼 do_fork 的回复:]
引用 14 楼 daidodo 的回复:
引用 11 楼 do_fork 的回复:
引用 10 楼 daidodo 的回复:
引用 9 楼 do_fork 的回复:
处理QQ登陆就有几万台了,加上互娱的N台服务器
何以知之?
随便找个参加过R线入职培训的人问问就知道了
问过了,回复:“不可信”
真问了? 问的是R线员工?
我听即通的经理亲口说的,
当时还有人提问,跟skype只花了50多台机器,解决3000万在线用户问题做了对比。
[/Quote]
放心,身边还是能找到几个腾讯人的。
[Quote=引用楼主 wensheng_zh2007 的回复:]
类似QQ这样的服务器,如何同时为那么多的客户端提供服务。
服务器是如何启动多线程的,启动的这些多线程是如何分配给这么多客户端服务的。
[/Quote]
对于底层的后台服务器来说,一般只区分2种类型的服务:tcp和udp。比如维护qq的在线状态,是udp服务器;而修改个人信息,访问的是tcp服务器。
从架构上来讲,udp服务器简单得多,服务的客户端数量也大的得多;
而tcp服务器,必须采用非阻塞socket,用epoll实现(ET模式),并且精巧的设计架构、流程,才能达到不错的并发量。
当然,真正提供服务的只是若干个线程,所以有可能一个服务器“进程”既可以处理tcp请求, 也可以处理udp请求。
为大量“客户端提供服务”的服务器,有协议、架构、是否分布式结构等区别,甚至采用多线程或多进程,也不一定。
当然我个人是认为多线程服务器在多CPU系统里能达到最好的效果,但不排除有牛人能优化内核、编写nb多进程架构的可能性。
“如何启动多线程”:只是简单的函数掉用。
“这些多线程是如何分配给这么多客户端服务的”:可以用超市的收银员做比喻:虽然顾客很多,但是同时进行付账动作的,只有少数。对服务器来说,大部分客户端都在等待,可能是IO,或数据库,或其他事件;而真正需要马上处理的客户端,总是少数。
daidodo
2009-11-12
打赏
举报
回复
口水战,没兴趣。。。
evansun922
2009-11-11
打赏
举报
回复
这个是个很复杂的体系,先从简单的服务器模型练起吧。
do_fork
2009-11-11
打赏
举报
回复
[Quote=引用 10 楼 daidodo 的回复:]
引用 9 楼 do_fork 的回复:
处理QQ登陆就有几万台了,加上互娱的N台服务器
何以知之?
[/Quote]
随便找个参加过R线入职培训的人问问就知道了
wensheng_zh2007
2009-11-11
打赏
举报
回复
感谢楼上的解释
daidodo
2009-11-11
打赏
举报
回复
[Quote=引用 9 楼 do_fork 的回复:]
处理QQ登陆就有几万台了,加上互娱的N台服务器
[/Quote]
何以知之?
do_fork
2009-11-11
打赏
举报
回复
[Quote=引用 8 楼 daidodo 的回复:]
引用 3 楼 do_fork 的回复:
QQ有N(N>=10)万台服务器,不是几百台
这个有点夸张。。。
[/Quote]
处理QQ登陆就有几万台了,加上互娱的N台服务器
daidodo
2009-11-11
打赏
举报
回复
[Quote=引用 3 楼 do_fork 的回复:]
QQ有N(N>=10)万台服务器,不是几百台
[/Quote]
这个有点夸张。。。
do_fork
2009-11-11
打赏
举报
回复
[Quote=引用 14 楼 daidodo 的回复:]
引用 11 楼 do_fork 的回复:
引用 10 楼 daidodo 的回复:
引用 9 楼 do_fork 的回复:
处理QQ登陆就有几万台了,加上互娱的N台服务器
何以知之?
随便找个参加过R线入职培训的人问问就知道了
问过了,回复:“不可信”
[/Quote]
真问了? 问的是R线员工?
我听即通的经理亲口说的,
当时还有人提问,跟skype只花了50多台机器,解决3000万在线用户问题做了对比。
daidodo
2009-11-11
打赏
举报
回复
[Quote=引用 11 楼 do_fork 的回复:]
引用 10 楼 daidodo 的回复:
引用 9 楼 do_fork 的回复:
处理QQ登陆就有几万台了,加上互娱的N台服务器
何以知之?
随便找个参加过R线入职培训的人问问就知道了
[/Quote]
问过了,回复:“不可信”
sharkhuang
2009-11-11
打赏
举报
回复
cluster
cattycat
2009-11-10
打赏
举报
回复
qq服务器是linux,多台服务器集群处理,每台开辟大量的线程池进行请求处理,采用的是事件模型,具体是epoll,像上面说的处理大量连接的C10k问题。像百度,腾讯等服务器一般都是linux,自己定制内核,使性能最优。技术很复杂的,你搞清楚了,离大牛也不远了。
xingzhe2001
2009-11-10
打赏
举报
回复
听说qq对服务器的操作系统作了特别的优化
do_fork
2009-11-09
打赏
举报
回复
lz可以搜索下 c10k问题
do_fork
2009-11-09
打赏
举报
回复
QQ有N(N>=10)万台服务器,不是几百台
wang_wuhui
2009-11-09
打赏
举报
回复
服务器开着监听,只要有客户端请求连接就生成一个SOCKET线程处理吧.
jackyjkchen
2009-11-09
打赏
举报
回复
大型服务器肯定是链接池,保持N个并发连接不动,来了连接请求就用其中一个链接来响应
Linux系统管理与配置
Linux是一套免费使用和自由传播的类Unix操作系统内核,是一个基于POSIX和Unix的多用户、多任务、支持
多线程
和多CPU的操作系统内核。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了...
多线程
Web
服务器
的搭建与实现
多线程
Web
服务器
的搭建...以JDK为开发工具,利用Socket通信机
制
实现一个
多线程
的WEB
服务器
,该
服务器
具有以下功能: 1, 能够并行服务于多个请求。 2,对于每个请求,显示接收到的HTTP请求报文的内容,并产生适当的响应
QTcpSocket
服务器
多线程
Qt
多线程
服务器
端通信,利用moveToThread()将Socket在子线程中初始化
阻塞IO
服务器
模型之
多线程
服务器
模型
针对单线程
服务器
模型的特点,我们可以对其进行改进,使之能对多个客户端同时进行响应。最简单的改进即是使用
多线程
(或多进程)
服务器
模型,在应用层级别,我们一般...
多线程
服务器
模型核心就是利用
多线程
机
制
,为每个
计算机网路实验二
多线程
Web
服务器
的设计与实现
(1)以JDK为开发工具,利用Socket通信机
制
实现一个
多线程
的WEB
服务器
,该
服务器
具有以下功能: 能够并行服务于多个请求。 对于每个请求,显示接收到的HTTP请求报文的内容,并产生适当的响应(若找到用户...
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章