php mysql架构_PHP+MySQL网站架构方面的一些认识

目前网站架构一般分成负载均衡层、WEB层和数据库层
负载均衡层-- LVS,
WEB层--使用了服务器,
数据库层--我们使用了db集群方案 。
网站概况
浏览量(PV)
独立访客(UV)
访问次数(VV)
独立IP
发帖量
注册会员数
跳出率
平均在线时长
今日
80,973
37,999
42,573
27,979
624
140
72.27%
00:07:56
昨日
179,250
74,584
88,986
54,021
1,400

php mysql架构_PHP+MySQL网站架构方面的一些认识

文章插图
285
77.48%
00:10:00
历史平均
154,020
60,927
71,924
47,883
1,936
201
78.24%
00:10:00
历史***
238,993
94,647
110,552
72,692
6,602
468
89.04%
00:11:02
1 代码提交系统
这是在代码进入生产环境前的必须要经历的 。
在测试服务器上开发OK后,我们提交给SVN服务器,然后进入代码提交服务器 。
进入代码提交服务器后,有两步要走的,我理解为一个拉,一个推 。
a 我们使用SVN up 将本地文件更新
b 使用rsync推送到生产环境服务器
php mysql架构_PHP+MySQL网站架构方面的一些认识

文章插图
以上两部分 我分别写成一个shell文件
运行 bash xxx.sh 即可
2 用户访问网站的流程,基本是这样的:
网站使用了动态CDN,起到加速的作用,我们先把动态CDN放到一边,说说下面发生的事情 。
在前端我们使用了LVS,关于LVS我使用百科上的文章,给予解释下:
LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡 。LVS是Linux的缩写,意思是Linux虚拟服务器 。
LVS集群采用IP负载均衡技术和基于内容请求分发技术 。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器 。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序 。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性 。
一般来说,LVS集群采用三层结构,其主要组成部分为:
A、负载调度器(load ),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的 。
B、服务器池( pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等 。
C、共享存储( ),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务 。
A LVS
1 核心是它的负载调度器
2 塔负责维护一个路由表
3 实时监控真实健康状况
B LVS必须有个热备 hot back,万一LVS坏了,那就完蛋了 。这样,当LVS万一坏了,可以备份LVS接管工作 。
C 源站192.168.1.156/157 对外虚拟一个VIP 115 。DNS解析域名的时候就解析到这个VIP上 。至于具体用户访问是哪台服务器,对用户而言是透明的,LVS根据 IP负载均衡技术 为用户分配源站地址 。
D 两台源站服务器,为了可以保证某些地方的数据同步,我做了:
1 两台源站服务器之间的缓存通过NFS挂载,保持同步;
2 中写入计划任务,同步相关ssi文件;
E 后端DB的连接,我们使用了2主2从DB集群
两台主库77、78对外虚拟成VIP 110,原理,当任何一台DB挂掉后,另外一台立即接管其 。两台db互为主从 。通过监测各自生存状态 。