首页 - 网站建设 - 常见的网站服务器架构

常见的网站服务器架构 返回列表

瑞瑞2018-09-19编辑发布,已经有2104个小可爱看过这篇文章啦

初级篇:(单机模式)

假设配置:(Dual core 2.0GHz,4GB ram,SSD)基础框架:apache(PHP) + Mysql / IIS + MSSQL(最基础框架,处理一般访问请求)

进阶1 : 替换Apache为Nginx,并在数据库前加上cache层 【数据库的速度是最大的瓶颈】

Nginx(PHP) + Memcache + Mysql (此时已经具备处理小型访问量的能力)

进阶2:随着访问量的上涨,最先面临的问题就来了:CGI无法匹配上Nginx的高IO性能,这时候可以通过写扩展来替代脚本程序来提升性能,C扩展是个好办法,但是大家更喜欢用简单的脚本语言完成任务,Taobao团队开源了一个Nginx_lua模块,可以用lua写Nginx扩展,这时候可处理的并发已经超越进阶1 一个档次了。
Nginx(nginx_lua or C) + Memcache + Mysql (此时处理个同时在线三四千人没有问题了)

进阶3:随着用户的增多,Mysql的写入速度成了又一大瓶颈,读取有memcache做缓存,但写入是直接面对Mysql,性能受到了很大阻碍,这时候,要在Nginx和Mysql中间加入一层写缓存,队列系统就出场了,就以RabbitMQ为例,所有写入操作全部丢到这只兔子的胃里面,然后屁股后面写个接应程序,一条条的拉出来再写入mysql。而RabbitMQ的写入效率是Mysql的N倍,此时架构的处理能力又上一阶层。

|----write------>RabbitMQ--------
Nginxlua or c----- |--------->Mysql
|----read------>Memcache--------

(此时的并发吞吐能力已经可以处理万人左右在线)



consistent hashing大概的思路就是,把hash后的值保证在 0 ~ (2^32)-1 的数值上,然后把这一连串数字对应映射到一个想象的圆上。

把要存储的各个值hash后,放到圆上

然后把cache节点也用同样的hash方法,映射到圆上,然后每个刚才hash过的value顺时针寻找离自己最近的节点,这个节点就是存储它的节点。

为了提高存储的平衡性,算法还可以加入虚拟节点的概念,即每个实际cache节点,会在圆上对应N个虚拟的节点,这样可以提高算法的命中率,更加平衡。consistent hashing原理:Consistent hashing and random trees完结。


针对不同的项目情况,输煤这边会根据实际情况进行针对性的采用不同的服务器架构,以确保网站上线后的稳定运行。


相关新闻

-->
友情链接:    365彩票-首页   金泰彩票网址   速中彩票网址   金泰彩票网址   电子彩票-首页