服务器架构方案,支持百万级很轻松-阿里云开发者社区

开发者社区> 开发与运维> 正文

服务器架构方案,支持百万级很轻松

简介:

以前写过一篇关于服务器架构方面的文章,里面的架构,有一些地方是可以改进的,因为有一些其他原因,当时就没有改进。现在可以把可改进的地方说一下。费话不多说,看一下刚做得图片。

 

服务器架构方法二

服务器架构方法二

我把服务器架构分成5大块

一,负载均衡块

二,web服务器块

三,数据缓存块

四,数据库块,

五,文件服务器块

上面只是个人理解

1,负载均衡这一块的话,如果访问不是特别特别大的话,用软件来负载均衡就可以了。如果你觉得用软件不够好的话,你可以用f5,要花钱买的。软件做负载均衡个人觉得lvs是最好的,根据个人的实际情况来选择,haproxy,apache,nginx等。

2,web服务器这一块,可以用nginx+php-cgi,apache+php-cli,apache+php-cgi这样的配合,这三种组合的效果如何呢,我做过测试,nginx +php-cgi,apahce+php-cli,cgi的比较 ,经过这个测试我发现nginx+php-cgi的效果是比apache+php-cli,apache+php-cgi要好,所以web服务器这一块,我们可以用nginx+php-cgi

3,数据缓存块,在这里的缓存指的就是内存缓存,在web服务器和数据库之间,加上内存 缓存来减少对数据库的请求。数据库很容易产生瓶颈的地方,重点保护对像,哈哈。文件服务器上面装上varnish,用来缓存静态文件,个人觉得 varnish比,squid,apache,nginx对静态文件的缓存效果要好,varnish的命中率很高,缓存过一次后,一般情况下都不会 miss的。有空我把这几情缓存的效果做一下测试

4,数据库这一块,根据自己的实际情况来决定数据库服务器的台数,以及决定使用什么软件来实现数据库集群,常用的有MySQL replication,mysql proxy,mysql cluster,drdb等。我做过测试mysql proxy 的效果比较差。mysql proxy 问题 效率太差 慢 郁闷 

数据查寻这一块,引入了sphinx全文件检索,对于一般查询id啊,查询name之类简单的,我们直接用数据库的一般查询就行了,如果对于内容特别多的字段来进行查询的话,用like的话,效率太差了。例如:文章简介,文章内容。sphinx号称可以支持亿级检索。sphinx mmseg mysql 中文分词 ,现在有集成版的,coreseek 如果我没有记错的话,那个时候,集成版的,我的电脑还装不了。

5,文件服务器块,其实就是存放文件的地方,对存放的文件进行监控,在这里推荐一下 fastdfs,服务器端很小,支持集群,客户端有php,perl,Java版的等。对于做下载类,视频类的网站来说,文件服务器肯定很多,例如 youku,土豆等。做个集群还是很有必要的。FastDFS分布式文件服务器安装,及配置 FastDFS分布式文件客户端安装,以及fastdfsapi

不断的学习,不断的改进中。欢迎探讨

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章