找回密码
 立即注册
收起左侧

qt开发高并发服务器,能够支持20W 左右的用户吗

18
回复
32079
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2014-1-14 17:07:20 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我要用qt socket来做高并发的tcp服务器,是否能够承载20W左右的tcp socket并发链接。请大神指教!每个线程池管理1W个tcp链接,分20个线程管理。能否抗住压力?
回复

使用道具 举报

累计签到:181 天
连续签到:1 天
2014-1-14 17:27:22 显示全部楼层
这个情况,并不建议用QT来做。建议只用QT来做界面。线程池和socket监听这些要求效率的部分使用C的API或者专业的库来实现。但如果你的服务器超级超级强劲,哪就随便你用什么做了。
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-1-14 18:45:40 显示全部楼层
hzzhou 发表于 2014-1-14 17:27
这个情况,并不建议用QT来做。建议只用QT来做界面。线程池和socket监听这些要求效率的部分使用C的API或者专 ...

qt socket select机制做不到么。我打算用120G的内存和1**处理器来做
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-1-14 18:46:51 显示全部楼层
hzzhou 发表于 2014-1-14 17:27
这个情况,并不建议用QT来做。建议只用QT来做界面。线程池和socket监听这些要求效率的部分使用C的API或者专 ...

用的是qt5.2的版本。考虑用其他库太麻烦了
回复 支持 反对

使用道具 举报

尚未签到

2014-1-14 22:39:24 显示全部楼层
jasonsalex 发表于 2014-1-14 18:46
用的是qt5.2的版本。考虑用其他库太麻烦了

这种大负载的真的不能用qt,还是建议用网上成熟的框架,比如Apache的那些

如果你真的有能力可以像facebook那样用c++写底层,不过难度也是世界顶级的啦
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-1-15 14:35:45 显示全部楼层
Joey_Chan 发表于 2014-1-14 22:39
这种大负载的真的不能用qt,还是建议用网上成熟的框架,比如Apache的那些

如果你真的有能力可以像faceb ...

我做了一个测试,一个线程一万个用户同时并发.一个用户连接200个槽函数,才耗时300毫秒.应该承载20W用户同时操作没啥问题吧?
回复 支持 反对

使用道具 举报

尚未签到

2014-1-15 16:32:57 显示全部楼层
jasonsalex 发表于 2014-1-15 14:35
我做了一个测试,一个线程一万个用户同时并发.一个用户连接200个槽函数,才耗时300毫秒.应该承载20W用户同 ...

鼓励一下你继续吧,哈哈,有些不去试是不知道的
回复 支持 反对

使用道具 举报

尚未签到

2014-1-15 16:47:53 显示全部楼层
千万别用Qt做网络并发处理!!或者说不要用Qt网络模底层接口模块部分!血的教训!
以前我们用C和Qt对比过,效率低下且丢包严重!
直接用Unix的tcpip调用,如select系统调用
这一点Qt工程师亲口承认!另外Qt对该模块已多年未更新也是事实!慎虑!
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-1-15 23:39:32 显示全部楼层
begboy 发表于 2014-1-15 16:47
千万别用Qt做网络并发处理!!或者说不要用Qt网络模底层接口模块部分!血的教训!
以前我们用C和Qt对比过,效率 ...

不会吧.我一台服务器也是用用qt写的,承载几百人没出过什么丢包的情况
回复 支持 反对

使用道具 举报

累计签到:1635 天
连续签到:1 天
2014-1-16 11:11:13 显示全部楼层
jasonsalex 发表于 2014-1-15 23:39
不会吧.我一台服务器也是用用qt写的,承载几百人没出过什么丢包的情况

其实这个到底可行不可行,很难有定论,因为很多公司现在依然只用Qt做图形界面,底层的数据处理都是用纯C写的,或者用一些成熟专业的框架或技术来完成。

理论上来说,如果硬件够强大,使用Qt完成要求应该没有问题。但是,具目前国内或者大家了解的实例来看,这样的案例不多。

不过,依然推荐尝试一下,如果长时间运行没有问题,那也挺好的。
回复 支持 反对

使用道具 举报

尚未签到

2014-1-16 15:03:07 显示全部楼层
jasonsalex 发表于 2014-1-15 23:39
不会吧.我一台服务器也是用用qt写的,承载几百人没出过什么丢包的情况

举个简单的例子您试一下就明了:
你用任何一个软件打开一个文本文件,如写字本,WORD,或者Vi………
当这个文本文件是500k时,你用表看看打开所需时间,当文件变成5M时,时间又是多少?当文件变成500M又是多少时间,当变成5G又会多长时间?当变成500G又会怎样?当5T呢?
当5T文本文件时请你告知我用什么软件才能打开他?
做完这个试验你就知道大家给你忠告是什么原因了。
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-1-16 15:49:33 显示全部楼层
begboy 发表于 2014-1-16 15:03
举个简单的例子您试一下就明了:
你用任何一个软件打开一个文本文件,如写字本,WORD,或者Vi………
当这 ...

这算是文件系统的io吧。跟套接字的io概念是不一样的,而且数据量也没那么大
回复 支持 反对

使用道具 举报

尚未签到

2014-1-16 16:13:51 显示全部楼层
本帖最后由 begboy 于 2014-1-16 16:25 编辑
jasonsalex 发表于 2014-1-16 15:49
这算是文件系统的io吧。跟套接字的io概念是不一样的,而且数据量也没那么大 ...

万物皆文件!这是UNIX的经典。套接字socket是从UNlX发展起来的,您说有不同吗?
有空请看看UNlX操作系统设计一书(1986年出版)。
这里并不是要你放弃Qt开发服务器进程程序。但如果您是用于商业交付大负荷处理的,请再三思虑!但如果只是用于小微企业,那么是沒什么问题的,差错容许度和响应时间长短在不同环境要求不同。您说呢?
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-1-16 17:02:28 显示全部楼层
begboy 发表于 2014-1-16 16:13
万物皆文件!这是UNIX的经典。套接字socket是从UNlX发展起来的,您说有不同吗?
有空请看看UNlX操作系统设 ...

试试吧,反正socket接口封装好了。如果不行的话,换个网络模块就好了,没什么大事吧
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2014-2-7 09:10:03 显示全部楼层
用Nginx做服务器吧!
QT和服务器用json交互!
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2014-2-27 22:18:53 显示全部楼层
一般几万块钱的服务器估计无法达到,目前业界Nginx+mysql+linux能达到3万并发已经非常不错了,同事还得考虑带宽,换成其它erlang、go语言开发可以达到100万并发。
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2014-12-18 14:32:24 显示全部楼层
jasonsalex 发表于 2014-1-15 23:39
不会吧.我一台服务器也是用用qt写的,承载几百人没出过什么丢包的情况

高手啊,我现在也想做一个qt并发的通信的程序,想着50个tcp同时并发,能给点思路吗?
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2015-8-19 11:46:37 显示全部楼层
我就要Qt做的服务端,刚开始还好好的。
用了一天卡爆了。。。
可能是我C++菜吧,果断用JAVA做服务端了。
回复 支持 反对

使用道具 举报

尚未签到

2022-1-18 16:45:00 显示全部楼层
麦田长实 发表于 2014-12-18 14:32
**** 作者被禁止或删除 内容自动屏蔽 ****

qt 如何实现高并发呀? 是有现成的类?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了