1
mhycy 2015-06-02 11:12:24 +08:00 1
第一层:
单点/多点出口,利用DNS负载均衡,使用nginx反向代理. (此法入口单点失效不会全挂) 第二层: Apache/PHP服务器 Session使用网络方式单点储存/实现一个同步分发机制 静态文件需要依据业务实现一个同步分发机制. 最优做法是静态文件独立储存与访问, 需要同步的仅仅是网站源码 第三层 MySQL实现一主多从结构,主写从读. |
2
9hills 2015-06-02 11:38:42 +08:00 1
VIP + LVS(两台)+ NGINX(N台)+ 应用服务器(N台)+ 数据库服务器(一主多从1备)
其中NGINX可和应用放到同一台机器上。 |
3
Jacklee OP @mhycy 感谢,这个方向从成本和性能上都很不错,目前我们静态文件已经是独立服务器,所以要做的工作集中于你所提的第一层、第二层中的“session使用网络方式单点储存/实现一个同步分发机制 (这一点能否cookie存在客户端代替?)”以及第三层,这个我需要研究研究,目前还在收集一些资料
|
4
Jacklee OP @9hills 好高端,这个方案不知道成本方面,以及涉及session方面是如何解决的呢,因为VIP + LVS我都不太了解
|
5
mhycy 2015-06-02 14:10:52 +08:00
@Jacklee
Cookie就没这方面考虑了. 因为Session的特殊性所以需要同步而已.(因为Session数据存在于服务器端) 关于第三点, 一般而言LAMP站点压力最大的不是静态文件就是数据库, 所以一主多从结构可以优化访问. 主数据库负责写入的原因是为了数据一致性, 因为读取对时效性/一致性要求不高, 所以从库读取减轻压力. (也没哪些应用是写入压力高于读取压力的) |
8
Jacklee OP @mhycy 恩恩,很有道理,除了某些用户量很大的应用,基本都是读操作压力最大;我们之前就遇到大量读取导致数据库too many connections崩掉的,所以才考虑做这个事情
|
9
mhycy 2015-06-02 14:24:50 +08:00
|
13
mhycy 2015-06-02 14:32:36 +08:00
|
15
9hills 2015-06-02 14:50:36 +08:00
@Jacklee
确定高可用方案,首先要确定可用性等级。非常简单的说一说: 99.99% 架构,最少两个IDC,保证数据一致性,进行流量切换。。。很麻烦 99.9%架构,只需要一个IDC,但需要用VIP+LVS做前端的秒级切换(最少需要2台机器),后端配NGINX再做代理,之后是应用服务器(NGINX和应用可以放到同一台机器,最少两台)和数据库服务器(最少三台,主从备) 99.5% 架构,直接配两台NGINX做proxy,DNS解析到两台机器即可。但是即时你TTL设的很小,因为互联网的特性,实际生效时间根本无法控制。。。 |
19
popu111 2015-06-02 18:50:03 +08:00
前面的大神都是大企业级别的解决方案。。。我会说我就搞了个CDN和用CloudXNS设置了备用IP么?
|