大型WEB架构概况(笔记整理)一

1,大访问量
1,负载均衡:分担到不同的设备
a>Cisco以太网通道
b>Windows NLB技术
c>Linux LVS技术
客户->交换机->路由->LVS(NAT-地址转换,DR)->多台服务器
DR技术解决了NAT技术的一些瓶颈问题。
如何完成数据的同步(如SESSION,COOKIE)
负载调度器,服务器池,共享存储(数据的同步问题)。
d>F5等负载均衡器


客户->交换机->a,b,c,d中任意一台机器(轮循的形式)->多台服务器(都是激活等待)。->每台服务器有一个或者多个备份状态(集群)
2,冗余技术:一台设备挂掉,另一台机器立马上。心跳线检测激活服务器是否正常工作。
服务器集群,数据库集群,路由器集群,机器再多,只有一台机器处于激活状态。
a:Cisco HSRP热备份路由协议--网络不间断
b:WINDOWS集群技术    --服务器不间断
c:Linux HA集群技术   --服务器不间断
d:IBM AIX集群。      --服务器不间断


2,大数据存储:数据库表过大,引发操作系统负载过高。
MYSQL
MYSQL 主从数据库--binlog(记载增删改的操作,不会记录查询记录)
主库inodb,主要执行增,删改操作,从库执行查询操作。
合理的建立好索引。
垂直分表,水平分表。表过多php的路由层访问不同表如何实现。
分区技术
MYSQL 集群

ORACLE
DB2(IBM)
Nosql
MonogoDB基于分布式文件存储的数据库。C++语言编写
JSON,BJSON
查询,更改有优势。
建立索引,尤其是查询,速度上的提速。
3,网站加速
Squid反向缓存技术--动静分离(CDN技术主要使用的一种技术)
替代原地址转换技术
缓存池缓存静态数据,较小下载压力。
工作原理:将主服务器的数据缓存到具体地址的缓存池中。
第一步:某个地区客户->Squid反向代理服务器->sina主服务器->下载到Squid反向缓存代理服务器->返回客户
第二次:某个地区客户->当地Squid缓存代理服务器->缓存池->返回给客户
页面静态化缓存
1,使用现成的插件:比如Apache HTTP服务器的mod_rewrite等。
2,自己写代码实现静态化(主要的实现方式)
Smarty模板
ThinkPHP
zendframework框架
yii框架
3,使用Server.Transfer转换技术(主要使用js,ajax技术)


Memcache:分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,
端口:11211.
Memecached以守护程序方式运行与一个或多个服务器中。随时接收客户端的链接和操作。 首次访问:从RDBMS中取得数据放入memcached中
再次访问:直接从memcached中取数据。
缺点是:断电等故障内存数据丢失。

Sphinx搜索加速:Sphinx是一个基于SQL的全文检索引擎,可以结合mysql做全文索引。
php程序->Sphinx->mysql
4,网站服务,流量监控。
服务监控
1,apache web 服务监控
2,mysql数据库监控
3,磁盘空间监控
流量监控
1,网站流量监控。



我为什么管你,你为什么要我管:snmp软件(被监控的机器要安装,它会将所有设备的信息保存存下来,放入到它的数据库中mib,服务器中所有元素cpu,硬盘等标记为一个对象,用oid标识)。161,162端口。
linux开源软件:mrtg,cacti(监控smp软件,收集信息)
Linux邮件报警
1,postfix发邮件系统  25号端口 ----多数选定。
2,sendmail发邮件系统 25号端口,安装一个即可
3,dovecot收邮件系统。110端口收邮件


压力测试:1,apache自带的压力测试软件ab测试
2,apache benchmark,apache基准测试工具
3,有http-2.2.3-43.el5.centos软件提供。

mysql压力测试:mysqlslap模拟多个并发客户端访问mysql来执行测试。

























你可能感兴趣的:(大型WEB架构)