博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站的伸缩性
阅读量:6123 次
发布时间:2019-06-21

本文共 1650 字,大约阅读时间需要 5 分钟。

一、两个网站的伸缩性目标

大型网站都是从小型网站逐步演化而来的,Google诞生的时候也只有一台服务器。中航网需要设计成一个能从廉价PC服务器演化成大型系统的架构体系。为了实现网站的伸缩性中航网要设计成以下两个维度的可分离:

1、服务器分离

 

 

 

 

 

每次分离都会有更多的服务器加入网站,使用新增的服务器处理某种特定服务。

2、业务模块分离

 

 

 

 

 

业务分离的粒度要可以非常小, 甚至可又一个关键网页部署一个独立的服务。

二、 网站伸缩性拓扑设计

 

 

 1、硬件防火墙

选用华赛或JUNIPER系列硬件防火墙,主要作用是用来防DDoS和端口映射。

 

2、静态资源服务器

对于图片型等静态内容,前端缓存的意义重大。可以自己搭建CDN系统或租赁别人的CDN。推荐以租赁CDN为主,把更多的资金投入到后端的文件存储和数据库上。

 

3、负载均衡(HAProxy

HAProxy性能优异,稳定性强, 自带强大的监控页面,并且支持动静分离。HAProxy+Keepalived已经实现了亿级/日的网站,并且在高并发的业务时间段也没有发生过宕机情况。

HAProxy在高并发的情况下比较消耗CPU资源,建议使用Dell PowerEdge R710

 

4、Web缓存层

使用Squid作为中航网的Web缓存层。为什么前端已经有CDN缓存,还需要架设一层Web缓层?因为高并发高流量的项目,后端的NFS文件服务器的IO压力是巨大的,有时甚至会发生拒绝提供服务的现象。有了Web缓存层,可以起到加速后端Web服务及减小NFS磁盘IO压力的作用。

5、Web服务器

关于Web服务器的选择,Apache作为服务器,用于电子商务/电子广告/页游网站是非常稳定的,在8GB内存的标准配置下,抗并发能力非常不错的。许多公司的网站架构都是从一台Apache Web服务器发展起来的。

 

6、文件服务器

随着客户越来越多,I/O的压力也会越来越大。这个时候就该考虑分布式文件存储方案。在初期阶段宜采用DRBD+Heartbeat+NFS高可用文件服务器,维护方便,也不存在单点故障。  

随着访问量的增大,后期可以采用MFSGluster。分布式文件系统是解决文件服务器压力过大的最终途径,但也存在缺点,网站功能越多,摊子越大,机器越多,维护起来越复杂。

 

7、Session的处理

Session数据默认是在各个服务器上分别存放的,Apache将请求发送到了集群中的另外一台机器,那么就会导致Session的丢失。所以要采用一台独立memcached服务器来存储整个网站的session数据。

 

不能不session放进mysql, 因为在高流量的网站中, 数据库的压力是非常大的,我们不能让session问题再增加数据库方面的压力。

 

8、数据库的减压

数据库架构采用一主多从,读写分离的方案,用LVS+Keepalived作为数据库的负载均衡器,计写通过程序上实现分离,前后台业务逻辑分离,针对后台的查询全部转到从机器上, 这样就算查询业务量很大也不影响主要业务逻辑。尽量做到以下几点:

l 尽量把用户往外面推,减小源站的压力

l 保证网站的高可用

l 保证网站高可扩展性

l 合理优化数据库

 

三、 实施图纸(PV百万级以下)

服务器用途

数量

型号

软件配置

负载均衡

2

HP380  2Cell, 4GB

Nginx

Web缓存

2

HP380  2Cell,4GB

Squid

Web服务器

2

HP380  2Cell,8GB

apache

数据库服务器

2

HP580  4Cell, 32GB2TB 

mysql

数据库负载均衡

1

HP380  2Cell,4GB

Lvs+keepalive

Session服务器

1

HP380  2Cell,8GB

memcache

文件服务器

1

HP580  4Cell, 32GB2TB

NFS

 

转载于:https://www.cnblogs.com/tingfeng/articles/5120807.html

你可能感兴趣的文章
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>