大型web框架的解决方案
发布时间:2018/1/8 12:52:24 来源:郴邦科技 浏览:0

1. 大访问量如何处理:

一般有两种处理方法:负载均衡和冗余技术,将两者集合在一起就形成了我们想要的超级计算机,这就是负载冗余技术。

1. 负载均衡技术

把众多的访问流量分担到不同的网络设备以及服务器上,这个过程就叫负载均衡。 
流程:客户访问—>公司交换机—>公司路由器(F5等负载均衡器)—>公司内部服务器。 流量通过负载均衡器以轮循的形式分担到不同服务器上去,服务器都是激活状态。 
技术:Cisco以太网通道,Windows NLB技术(网络负载均衡),Linux LVS技术(Linux虚拟服务器技术),F5负载均衡器(华为、Cison的产品等) 
1.以太网通道:增加线缆,扩大带宽

2、3、4.都用到了:网络地址转换技术(nat),将用户的目的地址转换为公司内部服务器地址上;直接路由技术(DR) 
LVS结构:主要分成三层,负载调度器、服务器池、共享储存(保证不同服务器的数据是同步的,不然session和cookie可能会出问题,避免web开发问题) 
互联网用户—>LVS调度节点—>真实服务器节点—>数据/后台服务节点

2. 冗余技术

和负载均衡不同的地方是,需要在服务器旁边再放一台服务器作为备份,一旦原服务器当机,则启动备用服务器,避免出现单点故障。例如:网络技术,服务器集群,数据库集群等集群技术 
集群不是简单的把多台服务器做成一个集群变成一台超级计算机,集群设备无论多少,最多只有一台处于激活状态,为客户进行服务,而其他服务器都处于休眠状态。等服务器单点故障之后,休眠的服务器才激活为客户服务。 
技术:Cisco HSRP热备份路由,Windows集群技术,Linux HA集群技术,IBM AIX集群 
1.热备份路由:在网络层面进行线路的冗余,就是线路不间断,由两台路由器虚拟一个小型路由器,所有数据通过小型路由器选择通过哪台路由。

2、3、4.都是服务器的冗余技术,服务不间断

2. 大数据储存:

主流数据库:MySQL、Oracle、Db2、Nosql 
1.MySQL主从:做负载均衡,它主要依赖于Binary Log日志,记录增删改的所有操作,用以恢复数据。主从服务器同时活动,一般增删改进主服务器,查询和备份进从服务器,进行了负载。同时从服务器和主服务器进行同步,确保数据一致。 
2.MySQL分库分表:集群技术,如果表里面数据太多(超过一千万),负载就太高了。垂直分表和水平分表有缺陷,这就诞生了MySQL分区技术,逻辑上还是同一个表名,但是物理层面上储存在不同表中。

3. 网站加速:

技术:Squid代理缓存、页面静态化缓存、Memcache、Sphinx搜索加速

1. 动态和静态数据

静态数据主要指静态页面、图片、css、js 
动态数据主要是用户的请求从服务器的数据库或文件获取的记录

2. Squid反向缓存-动静分离

是一个软件代理服务器和web缓存服务器, 如果有人访问了总服务器,携带的动态图片等等会保存在它的缓存池当中,这时,其他人再次访问总服务器的话,相同的数据就直接呈现在浏览器上,不用访问总服务器。

3. 动态页面静态化

技术:Apache的rewrite功能,伪静态;使用模板技术,页面静态化缓存;使用HttpWebRequest请求客户端的方式 
目前主要使用的是模板技术来实现真正的静态化:Smarty模板

4. Memcache

高性能分布式内存对象缓存系统,在内存里维护一个巨大的hash表,通过将数据调用到内存中,再从内存中读取来提高读取速度,缺点是内存里面的数据容易出问题导致数据丢失。

5. Sphnix全文索引

一个机遇SQL的全文搜索引擎,储存了关键词和MySQL里面对应的id信息,当搜索开始的时候会在Sphnix里面查到文本id并直接访问数据库。

返回