服务器端
负载均衡
LVS
简介:
LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。
分为三层结构 1.负载调度器 2.服务器池 3.共享存储
优点:
1、开源,免费
2、在网上能找到一些相关技术资源
3、具有软件负载均衡的一些优点
缺点:
1、具有开源产品常有的缺点,最核心的就是没有可靠的支持服务,没有人对其结果负责;
2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等;
3、开启隧道方式需重编译内核;
4、配置复杂;
5、只支持LINUX,如果应用还包括WINDOWS、 SOLIRIS等就不行了。
反向代理
简介:
指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器
DNS
简介:
DNS负载均衡的优点是经济简单易行,并且服务器可以位于internet上任意的位置。但它也存在不少缺点:
1. 为了使本dns服务器和其他dns服务器及时交互,保证dns数据及时更新,使地址能随机分配,一般都要将dns的刷新时间设置的较小,但太小将会使dns流量大增造成额外的网络问题。
2. 一旦某个服务器出现故障,即使及时修改了dns设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。
3. dns负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。
4. 要给每台服务器分配一个internet上的ip地址,这势必会占用过多的ip地址
服务器集群
LVS可以实现服务器集群功能
CDN
简介:
Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
包括分布式存储、负载均衡、网络请求的重定向和内容管理4个部分
特点
1、本地Cache加速 提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性
2、镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。
3、远程加速远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度
4、带宽优化自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
5、集群抗攻击广泛分布的CDN节点加上节点之间的智能冗于机制,可以有效地预防黑客入侵以及降低各种DDoS攻击对网站的影响,同时保证较好的服务质量。
关键技术包含以下几个方面;
(1)内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;
(2)内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
(3)内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
(4)性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态
IDC
简介:
Internet Data Center,就是电信部门利用已有的互联网通信线路、带宽资源,建立标准化的电信专业级机房环境,为企业、政府提供服务器托管、租用以及相关增值等方面的全方位服务。
作用:
就像骨干网、接入网一样,它提供了一种高端的数据传输(Data Delivery)的服务,提供高速接入的服务
它不仅是数据存储的中心,而且是数据流通的中心,它应该出现在Internet网络中数据交换最集中的地方。所以在网络中的位置和总的网络带宽容量,它构成了网络基础资源的一部分。它提供了一种高端的数据传输(Data Delivery)的服务,提供高速接入的服务
图片服务器
简介:
图片服务器需要与应用服务器相分离。因为页面中包含太多图片,每次的图片请求会增大服务器压力。把图片服务器分离出来,会降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃。图片服务器我们也会应用不同的应用策略,比如多台集群等
镜像服务器
简介:
镜像服务器(Mirror server)与主服务器的服务内容都是一样的,只是放在一个不同的地方,分担主的负载
数据库端
Mysql cluster(mysql 簇)
简介:
该技术允许在无共享的系统中部署“内存中”数据库的簇。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
NDB是一种“内存中”存储引擎,它具有可用性高和数据一致性好的特点。能够使用多种故障切换和负载平衡选项配置NDB存储引擎
集群中的每个数据库服务器可以用廉价PC代替,可以节约成本
数据库分布式系统
读写分离
简介:
设置主从服务器,主服务器负责增删改操作,从服务器负责查询操作。
页面对数据库进行不同类型的操作,可以访问不同的数据库,从而缓解主服务器的压力
主从服务器数据同步,可以用MySQL Proxy来完成之间的操作。因为服务器负载、网络拥堵等方面的原因,主与从之间的数据同步延迟是完全没有保证的。
MySQL Proxy:
MySQL Proxy是基于MySQL Client 和 MySQL Server之间的代理程序,能够完成对Client所发请求的监控、修改。从Client角度看,通过Proxy访问Server和直接访问Server没有任何区别
垂直拆分库:
简介:
认为是根据表,功能来拆分,如系统功能模块一个库,轨迹功能模块一个库,报警模块一个库等,那这些就可以根据功能拆分了。
拆分的优点有:
1. 数据库清析明确,相对程序模块也跟着清析,有点象模块化了
2. 维护也方便,问题定位快,
缺点:
1. 若有库之关的关联就不能使用数据库的关联完成,需要程序完成了
2. 数据库的事务处理也变复杂,维护也会带来困难了
水平拆分库
简介:
根据某一些表的行来拆分库,如用户表,有1亿一数据,若是放在一张表中,查死,可以根据某一规则拆分,如用户id小于多少一个库,id小于多少与大于多少一个库(这个可以为以后用户不断的增多时),也可以通过其它规则,如取模之类,这种拆分要求所有关系的数据表跟着一起拆分(只能尽量作到),如BBS中,1-10W的用户发的贴都会跟着存放到同一个库中,10W-20W的存在另一个库,,这样,可以应用到数据库的关系查询之类,也很好的事务处理了
优点:
表关联,事务处理,应用程序处理方便,基本不会有很大的表处理
缺点:
切分相对复杂,后期维护人员难度增加,问题跟踪也比较难,系统中各模块耦合度较高,可能会对后面数据的适移拆分造成一下的困难
内存数据库
简介:
用内存来支撑IOPS。将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道
相关产品
内存数据库有美国MCObject公司的eXtremeDB、Oracle公司的TimeTen
Oracle公司的timeten示意图
代码端
动态页面静态化
简介
1.加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;
2.减轻服务器负担,浏览网页无需调用系统数据库;
3.有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;
4.安全,静态页面从理论上讲是没有攻击漏洞的
Smarty:
简介:
它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离
1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。
2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件
Rewrite模块
简介:
一种服务器的重写脉冲技术,它使得服务器可以支持 URL 重写,是一种最新流行的服务器技术
Memorycache
简介:
是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。
Sql语句优化
1. 分析sql语句,把常用的sql建立索引
2. 根据个人经验,有若干技巧sql写法的技巧。例如select 不要写*,需要写出每一个表中列名称
Js/css文件优化
Js/css 文件用工具(YUI yuicompressor-x.y.z.jar )进行压缩,以压缩包的形式嵌入网页中。这样可以减少css/js加载时间,提高网页速度。