日期:2014-05-16  浏览次数:20635 次

弱弱地问一下:大(中)型网站的后端会用到C/C++吗?
看到网上说一般网站的后端都是以下这两种架构:
1:Linux + Apache + PHP + MySQL
2:Linux + Apache + Java (WebSphere) + Oracle

所以我想问一下:大(中)型网站的后端会用到C/C++吗?如果用到了,那主要是用在哪个方面呢?

PS:这个问题可能比较SB,请大家不要见笑,呵呵。
------解决方案--------------------
目前公司有两种流行的开发模式是用到C/C++的:

1, 直接编写C/C++的fcgi.
优点:简单并且比php的cgi和fcgi都要快很多。
缺点:fcgi现状就是单线程处理, 要并发10个请求就要开10个fcgi进程, 当然这不意味着qps是10,1秒的处理量海了去了。

2,仍然用php cgi/fcgi接入请求, 业务逻辑单独开发C/C++服务端, 由php负责将请求转发到服务端,最终结果由php负责传回。
优点:php处理web请求非常简单(预处理请求很方便),而后端server可以摆脱fcgi框架限制,自己架构server,并发量和处理量就提升起来了。
缺点:多了php这一层中转,处理时间会增加些许,但本机通信可以忽略。

另外, 我自己补充一种:

3,直接开发server支持Http协议, 绕过web server和php,这是性能最高的,但问题就是不方便运维,因为自己开发的http server肯定只是专注业务自身,如果有部署方面的需求或者复杂需求,就远远不如nginx厉害了,所以很多时候还是选择第2种做法,因为足够稳定可靠,也足够高效。