免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ideawu
打印 上一主题 下一主题

[C++] [英雄贴]开发每日处理10亿请求的专用HTTP服务器 [复制链接]

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
11 [报告]
发表于 2013-08-15 11:07 |只看该作者
关键是这个HTTP请求对应的业务逻辑是怎样的,瓶颈不在通信上

论坛徽章:
0
12 [报告]
发表于 2013-08-15 11:21 |只看该作者
有什么特殊的要求一定要用长连接吗,采用短连接可不可以?每次响应一个WEB请求,建立一个连接,请求处理结束就释放,为了处理需要延迟一些时间的响应就在建立连接时记录时间点,开一个线程去不断的检测时间戳超时结束。

论坛徽章:
0
13 [报告]
发表于 2013-08-15 11:30 |只看该作者
回复 10# starwing83


对于HTTP解析, 网络框架, 未必不能使用现成的框架如libevent. 使用什么技术, 是技术判断力的体现. 光说不练, 分析起来头头是道, 做起来举步维艰. 至于用不用多线程, 用异步还是同步, 这就是技术. 只分析多线程好还是不好, 同步好还是异步好, 这都是空想理论, 解决了问题才是技术和工程.

对技术的整合, 本身也是一种技术(能力). 对技术的判断(能力), 也是一种技术(能力). 将技术落地, 也是一种技术(能力).

再明确一下主题: 解决好一个问题, 体现你的技术能力.

论坛徽章:
0
14 [报告]
发表于 2013-08-15 11:36 |只看该作者
koolcoy 发表于 2013-08-15 11:00
假定高峰期就3个小时, 差不多1w秒,一秒钟10w请求。 http是无状态协议,很容易上集群,一秒钟10w请求真的毫 ...


如果上集群, 会涉及到在线列表的集中存储, 要求的东西又更多了. 所以, 用单服务器处理每秒10亿请求并维护在线列表, 问题会简化很多.

论坛徽章:
0
15 [报告]
发表于 2013-08-15 11:37 |只看该作者
hellioncu 发表于 2013-08-15 11:07
关键是这个HTTP请求对应的业务逻辑是怎样的,瓶颈不在通信上

业务逻辑主要是维护一个和多个在线列表, 接受"整个平台的在线用户列表, 某个页面的在线用户列表"这样的业务请求.

论坛徽章:
0
16 [报告]
发表于 2013-08-15 11:41 |只看该作者
hededisanan00 发表于 2013-08-15 11:21
有什么特殊的要求一定要用长连接吗,采用短连接可不可以?每次响应一个WEB请求,建立一个连接,请求处理结束 ...

没有特殊的需求, 就是: 接受浏览器的心跳包, 生成在线列表, 接受"整个平台的在线用户列表, 某个页面的在线用户列表"这样的业务查询请求. 为了避免过多依赖和增加复杂度, 不应过多依赖, 单台服务器解决.

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
17 [报告]
发表于 2013-08-15 12:10 |只看该作者
ideawu 发表于 2013-08-15 11:37
业务逻辑主要是维护一个和多个在线列表, 接受"整个平台的在线用户列表, 某个页面的在线用户列表"这样的业 ...


这种列表应该不需要持久化,都记在内存就行,那难度降低很多。
用户的查找方式、列表的查询、排序条件、是否多页面在线等影响方案
对于海量用户,“整个平台的在线用户列表”似乎没什么意义,不可能显示完。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
18 [报告]
发表于 2013-08-15 12:32 |只看该作者
回复 18# hellioncu


    不,可能都不需要显示出来,很可能最终要求实现的API是jsonp那种,然后提供查询API(哪些人在线?)就可以了。这一点是不需要考虑的。

不过你说的一点很对,这不需要存储到数据库里面,纯内存操作应该快很多,这么说大约12个请求1ms应该难度不大。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
19 [报告]
发表于 2013-08-15 12:33 |只看该作者
回复 14# ideawu


    恩,这段话看起来倒挺有道理的,不过我可不打算做,我就准备说说

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
20 [报告]
发表于 2013-08-15 12:48 |只看该作者
starwing83 发表于 2013-08-15 12:33
回复 14# ideawu


我想知道,为什么他一发帖,就这么热闹;而我发的帖子,却很冷清???

难道是我不够嚣张?言辞不够激烈犀利?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP