商业级全局负载均衡器 zeus.ZXTM 实施方案

Xiao.T

Xiao.T

管理员
技术员
2008-05-19
6,008
6,531
网址:http://www.zeus.com/products/traffic-manager

1. 什么是ZXTM:




1

总是在说ZXTM,什么是ZXTM呢?其实它是Zeus Technology(官网www.zeus.com)的产品Zeus Traffic Manager以前的称呼,是一个基于J2EE运行,为一些网络服务(比如web server,邮件服务器等)应用提供复杂的负载均衡商业软件。




2. 为啥要选择ZXTM LB的原因:

1 可以创建一个完全容错的服务器集群

2 高效,可靠,可扩展

ZXTM LB有非常严格的对性能和健康检查和监控机制,以及集群诊断。通过不断监控您的后端服务器的运行状况,失败的服务器会自动检测并从集群中删除,直到他们康复,对于网络中很小的健康问题它都能提供报警使管理者提高警惕。它对高性能SSL和内容压缩,内容识别交通管理规则等支持非常好

3 管理服务 ZXTM LB接近服务器管理,使复杂的负载均衡决策,并密切监察托管服务。 它可以平衡UDP或任何基于TCP的协议,包括Web,DNS的,邮件(SMTP /IMAP / POP)的,FTP和流媒体DENG ,负载均衡决策最大限度地提高服务响应速度和防止任何一个应用程序或服务器节点成为超载。

4 帮助性能改进 ZXTM LB能够大大提高应用程序的服务,通过流量优化和智能负载均衡性能。它可以让流量重定向使用内容感知路由策略服务器的特定设置,采取不同的应用功能并预留优质客户的能力。 ZXTM LB支持会话持久性方法,范围很广。

5 易于配置的GUI向导,以及RuleBuilderTM

图形用户界面RuleBuilder可以很容易创建负载平衡策略,以确定不同类型的流量和处理她们。

6 Connection Draining
它的特殊的“Connection Draining ”功能可以让你安全地把一台服务器进行维修服务,而无需中断任何用户连接或会话。

7 流量可视化,趋势分析和完整系统的故障诊断 ZXTM LB提供实时报告和灵活的查看某条件下的性能的历史趋势图。你以计划未来的能力要求,并且允许快速故障隔离,减少了时间来解决。统计数据收集的ZXTM LB,可以检索使用,易于集成到现有的网络基础设施的SNMP监控。



最大化速度
  利用全方位的加速和优化技术(包括 SSL、XSLT、压缩分工和 HTTP 内容缓存),不但确保了您的应用程序始终快速执行,还为您的应用程序和 web 服务器“减负”。Zeus Traffic Manager 可以减少高达70%的所需应用程序服务器的数量。
最大化可用性
  通过一系列负载均衡方式(会话保持和健康状况监控),将您的应用程序始终保持在线状态。Service Level Monitoring(服务级别监控)和 Bandwidth Management(带宽管理)确保用户获得合理的服务级别。充分利用云优势,并按需自动调节您的应用程序需要的计算机资源,以便在最小化基础设施成本的同时满足高峰时间段的需求。
最大化安全性
  利用服务保护功能,确保您的应用程序不受恶意的“拒绝服务”(D0S)攻击的侵扰。Application Firewall(应用程序防火墙)防范由 OWASP(开放式Web应用程序安全项目)定义的在企业内使用 web 应用程序所面临的十大风险。
监控性能
  监控您应用程序的实际响应时间,并利用一套日志、报告和图表跟踪 SLA(服务等级协议)。实时分析帮助您通过过滤问题发生时的连接模式,快速诊断这些问题。
终极控制
  利用 TrafficScript 和 Java Extensions 定制您的通信量管理策略。这帮助用户完全控制如何优化、路由和改变个别请求。利用这些功能,用户能够解决应用程序问题、消除故障和漏洞,并创建您从未料想过的出色工作流。
Zeus Technology Traffic Manager 是一种软件应用程序交付控制器,设计用于优化最常见的 Web/应用服务器和协议;目前,全球多家电信企业、whitepages.com 等网站和 BBC 都在使用这种工具。
● 针对速度:它利用了本文所述的多种加速和优化技术,例如 SSL、XSLT、压缩分载和 HTTP 内容缓存,以便在加速应用程序的同时降低服务器负载。
● 针对可用性:它利用了负载平衡方法、会话持久性和健康状况监视程序,确保应用程序处于联机状态,同时执行服务水平监视和带宽管理,从而确保用户能够获得合理的服务水平。
● 针对安全性:它利用了久经考验的应用程序防火墙,提供 DoS 攻击保护。
● 针对数据分析:您可以利用一组日志、报告和图形监视应用程序的实际响应时间,同时跟踪 SLA。实时分析允许您在发生问题时筛选连接模式,从而迅速诊断问题。
● 针对用户控制:您可以利用 TrafficScript 和 Java 扩展自定义您的流量管理策略。



上面是自己搜的一些zeus相关的资料
下面是自己手写的

我们可以在web页面上针对zeus的一切操作,zxtm可以对mail ftp dns web websocket负载。

个人总结他的优点 就是操作简单,而且你的操作会有提示 或者 错误的指导改正。
当然zxtm的大多数功能在nginx端也都可以实现,只是要用nginx实现,我们要加各种的模块,搜查各种的功能使用方法。 不像zeus那样,把好多的功能都集成好了,需要提神的是 zeus的session cookie模块挺不错的,和haproxy很像的。记得在一个国外的论坛看过一个帖子说 hapxoy的几个主创就是从zeus出来的。

zxtm的缓存功能,他的缓存功能比nginx要强的,他的策略更多的和squid相像,zxtm有不少的缓存的规则供我们使用,当然了也可以自己写的。

让人超赞的是,zxtm 7.0 还支持类似 现在流行的squid二次开发技术coss硬盘热点 技术。 zxtm的热点技术还没有测试,但是听一个朋友说 还不错,虽然比squid二次开发后的coss差,但是比nginx的硬盘使用逻辑还是强不少的。

新版zxtm 可以做智能的负载,也就是根据后端的情况,进行改变负载的策略

zxtm组成集群相当的简单,他对于后端的后端也是有各种的方式 有curl 有ping 有调取接口 。。。 告警也是有好多的方法,可以用xmpp把信息推送到安卓上,邮件更不用说了,也可以用脚本的。
多个zxtm 组合起来也有类似 keepalived的功能的。

说起大家关心的性能,在同样的机器配置下,zxtm确实要比nginx差。但是相差在20%左右。去年的时候 我用r510搭建的环境, 让测试组的哥们折腾后的数据是相差10%左右。
国外一些个大牛 给的数据是 15%左右。
不知道他们是怎么具体测试的,反正就是zxtm要比nginx差点,我觉得zxtm的功能应用相对简单,学习起来也很容易,值得使用,还有就是常见的需求也都能实现,而且可以得到那边客服的支持。


下图是我做过的一个方案:
当然用的服务器的数量要比框架图多不少。应用的范围也很广的。
各种的应用负载都应用了。 比如 web,邮件,bind,接口



pdf文档
http://www.layer47.com/downloads/zeus_specsheet_zxtm_lb.pdf

大家可以申请free版本,当然网上也是有破解的版本。
http://www.layer47.com/zeus_download.html

破解的版本大家搜搜就可以搞到的








cd root
tar zxvf Zeus.ZXTM.Extensible.Traffic.Manager.v5.1.Linux.Incl.Keyfilemaker-EMBRACE.tar.gz
cd Zeus.ZXTM.Extensible.Traffic.Manager.v5.1.Linux.Incl.Keyfilemaker-EMBRACE
cp 9337698 ../
tar zxvf zxtm_51_linux-x86.tgz
cd ZXTM_51_Linux-x86
chmod 777 zinstall
./zinstall



#问你同意否?
accept
#安装的路径
回车
#是否要现在配置
Y





#要key的位置
/root/9337698
#是否指定这个mac使用
一路回车

到这一步
Which ZXTM cluster should this installation be added to?

C) Create a new cluster
1) Cluster 1: zxtm.localdomain:9090
S) Specify another machine to contact
R) Refresh the cluster list

选择C
然后输入密码



默认的路径是 /usr/local/zeus
服务是否运行 lsof -i :9090
web登录地址 http://10.96.60.26:9090
密码如果忘记的话 sh /usr/local/zeus/admin/bin/reset_password



cd ..

导入key./keygen把key导入




打开 http://10.96.60.26:9090




创建反向代理的步骤:
这里拿ops.xxx为例子
创建pool







Pool name:随便写
Nodes:后端的ip和端口
Monitor:监控的模式






这个是调节负载的方式


然后再创建rule 规则了



选用pool池



开启下 ops.xxx 服务



测试反向代理



这个rule 是让反向代理把远程的ip,传给客户端



正则的方式判断主机头


这个是sesson的保存方案,集群的时候会用到的。


安全相关的设置

Ip的并发限制
Ip的访问限制





主机的存活监控


限速方案


参数提高性能


Gzip压缩 特别说下ZXTM的压缩和缓存..它可以压缩动态内容! 内存缓存静态内容.




缓存的设置


经ZXTM转发后取得客户端真实IP方法
rule规则是





代码:
if( string.contains( http.getheader( “host” ), “ops.xxx” ) ){
http.addheader( “From”, request.getremoteip() );
}
 

ZIY 会员微信群