我是写代码出身,因为时间长了,后来做了一些服务器架构方面的工作,我很喜欢服务器架构的工作 感觉非常的有意思,也许是写代码写时间长了,写烦了吧。做大型项目服务器架构师是非常必要的,他们好比建筑行业的图纸设计师,如果没有好的设计,大楼盖到 一半有可能就倒了,程序人员好比是泥瓦匠,农民工。经常听到有人说代码农民工,是不是从这儿来的。我去过一家公司,他们有一个自己的网站,一天的pv流量 差不多有100多万,当时给了一个项目经理的虚名,你又要写代码,又要搞架构。他们服务器如下:
一台负载均衡服务器,二台mysql数据库服务器,一台文件服务器,二台web服务器,用了6台机子,机子有点多,不过都很老,应当是90年代的机子,还有软驱,我听以前的同事说,这些电脑是从一家倒闭公司,接手过来的。架构看下图: ![]() 服务器架构方案一 说明: 1,用lvs来做负载均衡还是比较好的,综合考虑,个人觉得lvs比haproxy,apache,nginx都要好一点。 2,对于动态请求转发到web服务器,如果是图片和静态文件,直接转到文件服务器,文件服务器用apache做了图片的cache 3,服务器用rsync时进行同步文件 4, 在web端和数据库服务器中间加了一层memcache以减少对数据库的请求,mysql的并发连接数1000多一点,如果是牛人,mysql在怎么优 化,我想不会超过2000,如果是大网站同时并发2000,太正常了,这个时候,我们要进行分流,或者减少对数据库的请求以减少mysql的并发连接数。 5,二台mysql服务器,用mysql replication进行同步,基本上可以做到二台服务器的数据的实时同步。 上面的架构有好多可以改进的地方,有好多可以分的更细一点,因为是根据上级的要求来做,所以就没有自做主张了。以下简单说一下架构的过程: 1,因为我电脑里面的linux系统是arch,装lvs有很多的不便,所以实验时我改装了haproxy。haproxy安装配置 2,apache自身带的mod_cache我觉得缓存的效果不好,不如varnish,squid。但是因为apache用的人多,所以当时决定用这个了。apache缓存的安装配置 3,现在有二台web服务器,如果改了一个文件,可以分别传到二台服务器上,如果是多台,手动传就比较麻烦了,推荐安装。rsync安装配置 4,memcache在减少对mysql的请求方面做了很大的贡献,memcache的安装配置 5,用mysql replication来同步数据库可以做到准实时,mysql replication安装配置 作者:海底苍鹰 地址:http://blog./server/912.html |
|