- 浏览: 21437 次
最新评论
基于四层交换技术的负载均衡:
基于四层交换技术的负载均衡 ---- 这种技术是在第四层交换机上设置Web服务的虚拟IP地址,这个虚拟IP地址是DNS服务器中解析到的Web服务器的IP地址,对客户端是可见的。
当客户访问此Web应用时,客户端的Http请求会先被第四层交换机接收到,它将基于第四层交换技术实时检测后台Web服务器的负载,根据设定的算法进行快速交换。常见的算法有轮询、加权、最少连接、随机和响应时间等。
基于七层交换技术的负载均衡:
基于七层交换技术的负载均衡 ---- 基于第七层交换的负载均衡技术主要用于实现Web应用的负载平衡和服务质量保证。
它与第四层交换机比较起来有许多优势:
第七层交换机不仅能检查 TCP/IP数据包的TCP和UDP端口号,从而转发给后台的某台服务器来处理,而且能从会话层以上来分析Http请求的URL,
根据URL的不同将不同的Http请求交给不同的服务器来处理(可以具体到某一类文件,直至某一个文件),
甚至同一个URL请求可以让多个服务器来响应以分担负载(当客户访问某一个URL,发起Http请求时,它实际上要与服务器建立多个会话连接,得到多个对象,例如.txt/.gif/.jpg文档,
当这些对象都下载到本地后,才组成一个完整的页面)。
DNS负载均衡:
DNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,
可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。
因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的Web 服务器,从而达到负载均衡的目的。
这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,
首先这种方案不是真正意义上的负载均衡,DNS 服务器将Http请求平均地分配到后台的Web服务器上,
而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的 Web服务器将成为系统的瓶颈,
处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS 请求分配到这台故障服务器上,导致不能响应客户端。
最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为几十分钟甚至更长)。
反向代理负载均衡:
使用代理服务器可以将请求转发给内部的Web服务器。比如apache,nginx,squid等服务器均支持反向代理。
但是,对于连接请求数量非常大的时候,代理服务器的负载也会非常之大,在最后反向代理服务器会成为服务的瓶颈。
F5:
F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、
IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、
选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙---包过滤、包消毒等功能。
F5 BIG-IP用作HTTP负载均衡器的主要功能:
① F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
② F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,
从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,
F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
③ F5 BIG-IP具有动态Session的会话保持功能。
④ F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。
LVS:
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);
支持十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。
三种负载均衡技术介绍如下:
1.Virtual Server via Network Address Translation(VS/NAT)
通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;
真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
2.Virtual Server via IP Tunneling(VS/TUN)
采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。
为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。
由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。
3.Virtual Server via Direct Routing(VS/DR)
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地提高集群系统的伸缩性。
这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。
杂项 VS/NAT VS/TUN VS/DR
服务器操作系统 任意 支持隧道 多数(支持Non-arp )
服务器网络 私有网络 局域网/广域网 局域网
服务器数目(100M网络) 10-20 100 多(100)
服务器网关 负载均衡器 自己的路由 自己的路由
效率 一般 高 最高
Haproxy:
HAProxy提供高可用性、负载均衡 以及基于TCP和HTTP应用的代理,它是免费、快速并且可靠的一种解决方案。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。
HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,
同时可以保护你的web服务器不被暴露到网络上。
优点:
支持session保持,同时支持通过获取指定的url来检测后端服务器的状态。
支持tcp模式的负载均衡。比如可以给mysql的从服务器集群和邮件服务器做负载均衡。
缺点:
不支持虚拟主机。
Nginx负载均衡:
优点:
性能好,可以负载超过2万的并发。
功能多,除了负 载均衡,还能作Web服务器,而且可以通过Geo模块来实现流量分配。
社区活跃,第三方补丁和模块很多。
支持gzip proxy。
缺点:
不支持session保持。
对后端realserver的健康检查功能效果不好。而且只支持通过端口来检测,不支持通过url来检测。
nginx对big request header的支持不是很好,如果client_header_buffer_size设置的比较小,就会返回400bad request页面。
nginx负载均衡配置参考:
upstream bakend{#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
proxy_pass http://bakend/;
每个设备的状态可以设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
keepalived:
keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,
当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
HeartBeat:
HeartBeat用于搭建双机热备环境,可以通过专门的心跳线来连接双机,也可以通过普通的网线来连接。
Heartbeat是linux的HA插件,它可以通过主备的互相检测来到达主服务器倒了,自动切换备服务器。不仅可以用于lvs,其他服务也可以使用。
Heartbeat软件不仅可以作为高可靠性的HA软件独立使用,也可以配合其它IP分发器做Balancing Cluster应用。
Heartbeat包括以下几个组件:
heartbeat - 节点间通信校验模块
CRM - 集群资源管理模块
CCM - 维护集群成员的一致性
LRM - 本地资源管理模块
Stonith Daemon - 提供节点重启服务
logd - 非阻塞的日志记录
apphbd - 提供应用程序级的看门狗计时器
Recovery Manager - 应用故障恢复
底层结构--包括插件接口、进程间通信等
CTS - 集群测试系统,集群压力测试
DRBD:
DRBD由PhilippReisner and LarsEllenberg 开发维护,它是基于Linux系统下的块复制分发设备。它可以让你把本地磁盘镜像复制到远程主机上。
把它加上心跳(heartbeat,HB)功能,就可以构建Linux下的高可用(HA)集群环境。
DRBD也可以成为网络RAID-1,当数据写入本地文件系统时,数据还将会发送到网络中另一台主机上,以相同的形式记录在该主机的文件系统中。
DRBD的工作原理如下图:
+------------+
| 文件系统 |
+------------+
|
V
+---------------+
| 块设备层 |
| (/dev/drbd1) |
+---------------+
| |
| |
V V
+-------------+ +--------------+
| 本地硬盘 | | 远程主机硬盘 |
| (/dev/hdb1) | | (/dev/hdb1) |
+-------------+ +--------------+
rsync:
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了------remote sync。
它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
rsync的主页地址为:http://rsync.samba.org/
使用rsync+inotify配置触发式(近实时)远程同步。
sersync 服务器实时镜像、自动同步程序:
sersync主要用于服务器同步,web镜像等功能。基于 boost1.41.0,inotify api,rsync command.开发。
目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),
这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:
1. sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),
所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
2. 相比较上面两个项目,sersync配置起来很简单,其中bin目录下已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。
3. 另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
4. 本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则每10个小时对同步失败的文件重新同步。
5. 本项目自带crontab功能,只需在 xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。
6. 本项目socket与http插件扩展,满足您二次开发的需要。
原理:
使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,
并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,
不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常 高。
应用:
金山游戏官网的 CMS 内容发布系统。无论编辑通过 Web 还是 FTP 上传图片、视频、附件,还是系统工程师直接去CMS发布服务器上增加、修改、删除文件,
干完这些事情后不用做任何处理,sersync 会自动将发生增、删、改事件的文件同步到远程服务器,并可以在文件同步完成后,
自动调用 CDN(ChinaCache)缓存刷新接口,刷新发生修改、删除的文件的访问 URL。
基于四层交换技术的负载均衡 ---- 这种技术是在第四层交换机上设置Web服务的虚拟IP地址,这个虚拟IP地址是DNS服务器中解析到的Web服务器的IP地址,对客户端是可见的。
当客户访问此Web应用时,客户端的Http请求会先被第四层交换机接收到,它将基于第四层交换技术实时检测后台Web服务器的负载,根据设定的算法进行快速交换。常见的算法有轮询、加权、最少连接、随机和响应时间等。
基于七层交换技术的负载均衡:
基于七层交换技术的负载均衡 ---- 基于第七层交换的负载均衡技术主要用于实现Web应用的负载平衡和服务质量保证。
它与第四层交换机比较起来有许多优势:
第七层交换机不仅能检查 TCP/IP数据包的TCP和UDP端口号,从而转发给后台的某台服务器来处理,而且能从会话层以上来分析Http请求的URL,
根据URL的不同将不同的Http请求交给不同的服务器来处理(可以具体到某一类文件,直至某一个文件),
甚至同一个URL请求可以让多个服务器来响应以分担负载(当客户访问某一个URL,发起Http请求时,它实际上要与服务器建立多个会话连接,得到多个对象,例如.txt/.gif/.jpg文档,
当这些对象都下载到本地后,才组成一个完整的页面)。
DNS负载均衡:
DNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,
可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。
因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的Web 服务器,从而达到负载均衡的目的。
这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,
首先这种方案不是真正意义上的负载均衡,DNS 服务器将Http请求平均地分配到后台的Web服务器上,
而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的 Web服务器将成为系统的瓶颈,
处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS 请求分配到这台故障服务器上,导致不能响应客户端。
最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为几十分钟甚至更长)。
反向代理负载均衡:
使用代理服务器可以将请求转发给内部的Web服务器。比如apache,nginx,squid等服务器均支持反向代理。
但是,对于连接请求数量非常大的时候,代理服务器的负载也会非常之大,在最后反向代理服务器会成为服务的瓶颈。
F5:
F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、
IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、
选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙---包过滤、包消毒等功能。
F5 BIG-IP用作HTTP负载均衡器的主要功能:
① F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
② F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,
从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,
F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
③ F5 BIG-IP具有动态Session的会话保持功能。
④ F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。
LVS:
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);
支持十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。
三种负载均衡技术介绍如下:
1.Virtual Server via Network Address Translation(VS/NAT)
通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;
真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
2.Virtual Server via IP Tunneling(VS/TUN)
采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。
为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。
由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。
3.Virtual Server via Direct Routing(VS/DR)
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地提高集群系统的伸缩性。
这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。
杂项 VS/NAT VS/TUN VS/DR
服务器操作系统 任意 支持隧道 多数(支持Non-arp )
服务器网络 私有网络 局域网/广域网 局域网
服务器数目(100M网络) 10-20 100 多(100)
服务器网关 负载均衡器 自己的路由 自己的路由
效率 一般 高 最高
Haproxy:
HAProxy提供高可用性、负载均衡 以及基于TCP和HTTP应用的代理,它是免费、快速并且可靠的一种解决方案。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。
HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,
同时可以保护你的web服务器不被暴露到网络上。
优点:
支持session保持,同时支持通过获取指定的url来检测后端服务器的状态。
支持tcp模式的负载均衡。比如可以给mysql的从服务器集群和邮件服务器做负载均衡。
缺点:
不支持虚拟主机。
Nginx负载均衡:
优点:
性能好,可以负载超过2万的并发。
功能多,除了负 载均衡,还能作Web服务器,而且可以通过Geo模块来实现流量分配。
社区活跃,第三方补丁和模块很多。
支持gzip proxy。
缺点:
不支持session保持。
对后端realserver的健康检查功能效果不好。而且只支持通过端口来检测,不支持通过url来检测。
nginx对big request header的支持不是很好,如果client_header_buffer_size设置的比较小,就会返回400bad request页面。
nginx负载均衡配置参考:
upstream bakend{#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
proxy_pass http://bakend/;
每个设备的状态可以设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
keepalived:
keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,
当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
HeartBeat:
HeartBeat用于搭建双机热备环境,可以通过专门的心跳线来连接双机,也可以通过普通的网线来连接。
Heartbeat是linux的HA插件,它可以通过主备的互相检测来到达主服务器倒了,自动切换备服务器。不仅可以用于lvs,其他服务也可以使用。
Heartbeat软件不仅可以作为高可靠性的HA软件独立使用,也可以配合其它IP分发器做Balancing Cluster应用。
Heartbeat包括以下几个组件:
heartbeat - 节点间通信校验模块
CRM - 集群资源管理模块
CCM - 维护集群成员的一致性
LRM - 本地资源管理模块
Stonith Daemon - 提供节点重启服务
logd - 非阻塞的日志记录
apphbd - 提供应用程序级的看门狗计时器
Recovery Manager - 应用故障恢复
底层结构--包括插件接口、进程间通信等
CTS - 集群测试系统,集群压力测试
DRBD:
DRBD由PhilippReisner and LarsEllenberg 开发维护,它是基于Linux系统下的块复制分发设备。它可以让你把本地磁盘镜像复制到远程主机上。
把它加上心跳(heartbeat,HB)功能,就可以构建Linux下的高可用(HA)集群环境。
DRBD也可以成为网络RAID-1,当数据写入本地文件系统时,数据还将会发送到网络中另一台主机上,以相同的形式记录在该主机的文件系统中。
DRBD的工作原理如下图:
+------------+
| 文件系统 |
+------------+
|
V
+---------------+
| 块设备层 |
| (/dev/drbd1) |
+---------------+
| |
| |
V V
+-------------+ +--------------+
| 本地硬盘 | | 远程主机硬盘 |
| (/dev/hdb1) | | (/dev/hdb1) |
+-------------+ +--------------+
rsync:
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了------remote sync。
它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
rsync的主页地址为:http://rsync.samba.org/
使用rsync+inotify配置触发式(近实时)远程同步。
sersync 服务器实时镜像、自动同步程序:
sersync主要用于服务器同步,web镜像等功能。基于 boost1.41.0,inotify api,rsync command.开发。
目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),
这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:
1. sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),
所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
2. 相比较上面两个项目,sersync配置起来很简单,其中bin目录下已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。
3. 另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
4. 本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则每10个小时对同步失败的文件重新同步。
5. 本项目自带crontab功能,只需在 xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。
6. 本项目socket与http插件扩展,满足您二次开发的需要。
原理:
使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,
并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,
不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常 高。
应用:
金山游戏官网的 CMS 内容发布系统。无论编辑通过 Web 还是 FTP 上传图片、视频、附件,还是系统工程师直接去CMS发布服务器上增加、修改、删除文件,
干完这些事情后不用做任何处理,sersync 会自动将发生增、删、改事件的文件同步到远程服务器,并可以在文件同步完成后,
自动调用 CDN(ChinaCache)缓存刷新接口,刷新发生修改、删除的文件的访问 URL。
发表评论
-
服务器优化Tip-Tomcat优化
2012-11-14 12:43 848优化Tomcat的server.xml参数: 在tomcat ... -
服务器优化Tip-Squid优化
2012-11-14 12:41 1150关于Swap: 关闭swap,squid是个大进程,使用sw ... -
服务器优化Tip-Apache的KeepAlive On是否要开启长连接
2012-11-14 12:40 1691apache配置: vi /usr/local/apache ... -
Timer,ScheduledExecutor ,Quartz,JCronTab任务调度的 Java 实现方法与比较
2012-11-01 15:00 2061任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执 ... -
浅析JVM崩溃的原因及解决方法
2012-11-01 14:56 1442VM崩溃错误信息如下:# # An unexpected e ... -
深入jar包:从jar包中读取资源文件
2012-11-01 14:45 816我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。 ... -
Intellij IDEA 使用技巧和快捷键-2
2012-11-01 14:31 8301、写代码时用Alt-Insert ... -
Intellij IDEA 使用技巧和快捷键
2012-11-01 14:30 11281. Ctrl + Space 完成类、 ... -
mysql JDBC URL参数解析
2012-11-01 14:27 0mysql JDBC URL格式如下: jdbc:mysql ...
相关推荐
本文探讨了如何基于CORBA实现分布式服务的高可用性,这对于处理海量数据和满足关键业务对服务可用性的高要求至关重要。在信息技术领域,对于银行、电信等关键行业以及搜索、即时通信、网上交易和在线娱乐等新兴服务...
本文主要探讨了如何利用Java应用程序构建一个高并发、高可用性的集群服务器,并详细介绍了采用的技术和实施步骤。 首先,该集群服务器采用了Linux操作系统作为基础平台,结合Nginx作为负载均衡器,MySQL作为数据库...
在云计算技术中,高可用性(High Availability,简称HA)是至关重要的组成部分,指的是系统无故障运行的能力,即系统在遇到故障或进行维护时,仍能保持服务不中断或最小程度的中断。 OpenStack高可用指南提供了一...
在本文中,我们将介绍如何搭建 SqlServer2016 高可用性方案,使用 AlwaysOn 技术来实现数据库的高可用性。本方案将指导您从头开始搭建 Server2016 及 SqlServer2016 高可用方案,确保您的数据库始终保持高可用性。 ...
云平台的高可用需求 在云平台的高可用需求方面,需要确保基础平台的稳定性,并能够监控业务并快速恢复。此外,在云平台升级过程中,需要...对于IT行业的从业者来说,不断学习和实践高可用技术是保证服务质量的关键。
本文将重点介绍MySQL高可用性的演变历程、常用解决方案,以及InnoDB Cluster和群组复制(MySQL Group Replication)的详解。 ### MySQL高可用性的演变 MySQL的高可用性经历了多次技术演进。从早期的版本3.23开始,...
本文档主要介绍了基于DLedger构建高可用RocketMQ集群的实践经验,旨在解决RocketMQ多副本架构的演进和容灾切换问题。下面是本文档中提到的关键知识点: 1. DLedger简介: DLedger是一个高性能、高可用性的分布式...
本文将详细介绍一个可扩展、高可用、负载均衡网站架构设计方案,该方案旨在解决高访问量网站的性能和可靠性问题。该方案包括以下几个方面: 一、基本需求 1. 高可用性:将停止服务时间降低到最低甚至是不间断服务 ...
本文将详细介绍SAP高可用性HA方案的核心概念、实施步骤以及关键组件。 #### SAP HA考虑因素 SAP HA方案主要关注两个方面的保护:**Component Failure**和**Service Failure**。 1. **Component Failure**: - **...
根据给定文件的信息,以下是关于“GBase 8t的企业级高可用技术及实践”的知识点。 高可用性技术是信息系统的核心组成部分,尤其对于需要7*24小时不间断服务的业务系统来说。高可用性可以防范多种故障,包括但不限于...
本文主要介绍了构建高可用Linux服务器的知识点,包括高可用服务器的定义和重要性、Linux作为高可用服务器平台的优势、文章的目的和结构、高可用Linux服务器的基础知识等。 高可用服务器的定义和重要性: 高可用...
在中国电信综合平台开发运营中心技术部总监兼架构师高保庆的《高可用电信统一账号认证平台技术架构实践》主题分享中,详细介绍了中国电信统一帐号认证平台的技术架构设计与实践经验。以下是从标题、描述以及提供的...
在《互联网运营智慧:高可用可扩展网站技术实战》中,也穿插了一些非技术方面的描述,如在系统运营中,有哪些日常事务、服务扩展该怎么着手,以及在运营中有哪些策略及技巧等。《互联网运营智慧:高可用可扩展网站技术...
文档接着介绍了双节点HA(High Availability)部署的概念,指出在OpenStack生产环境中建议部署高可用性,以确保服务的连续性和稳定性。其中涉及到了多个组件,例如haproxy、Mariadb/galera、Rabbitmq、Pacemaker等。...
总结来说,"linux高可用性方案",尤其是RHEL5中的Heartbeat应用,是一种通过集群技术和心跳检测实现服务连续性的解决方案。它涉及多个配置步骤,包括安装、配置以及资源管理,以确保在主节点故障时,服务能够无缝地...