软负载均衡技术实现.ppt
《软负载均衡技术实现.ppt》由会员分享,可在线阅读,更多相关《软负载均衡技术实现.ppt(66页珍藏版)》请在三一文库上搜索。
1、软负载均衡技术实现,2014年01月 周洋,内容大纲,网站工作原理 负载均衡概述 DNS负载均衡 Apache负载均衡 Nginx负载均衡 LVS负载均衡 Squid负载均衡 数据库负载均衡,网站工作原理-一次请求访问,浏览器 输入地址,DNS 查找网站,服务器 响应请求,数据库 数据访问,用户交互,负载均衡,图片服务器 代理/缓存,图片,文件服务器,静态页面、文档等,Web服务器,应用服务器,缓存,数据库服务器,网站工作原理-网络,网站工作原理-网络,IP: 无连接、不可靠、寻址与路由、分段与重组 TCP: 面向连接、传输数据、可靠、TCP握手 UDP 无连接、传输数据、不可靠 DNS IP
2、地址映射、域名结构、DNS查询 速度、带宽、延迟 带宽:指给定连接在特定时间内能够传输的数据总量,通常用比特每秒来衡量 延迟:指给定请求收到响应所需要的时间,网站工作原理-HTML和web,HTML 特征:简单规范、基于文本、链接、超文本 HTML5: 实际指的是包括HTML、CSS和JavaScript在内的一套技术组合,希望能 够减少浏览器对于需要插件的丰富性网络应用服务,并且追加了本地数据 库等 Web 应用的功能 web内容 静态内容:图片、CSS、JS 动态内容:响应请求创建 加速动态内容:缓存,网站工作原理-影响网站性能因素,影响网站性能因素,除去硬件和通信部分,大概有以下: 高访
3、问高并发 用户访问量高,事务处理复杂占时 缓存 使用缓存可减小对服务器资源的消耗,大大提高网站性能 动态静态内容 划分动态静态资源,静态内容不应和应用服务放一起 图片分离 图片资源占用I/O和带宽,需要单独分离 数据库 数据库是一个很大瓶颈,数据库必须在硬盘上四处搜寻数据,负载均衡概述-负载均衡,负载均衡( Load Balance,又称为负载分担),其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。,需要说明的是:负载均衡设备不是基础网络设备,而是一种性能优化设备。对于网络应用而
4、言,并不是一开始就需要负载均衡,当网络应用的访问量不断增长,单个处理单元无法满足负载需求时,网络应用流量将要出现瓶颈时,负载均衡才会起到作用。,负载均衡有两方面的含义:首先,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高,这就是常说的集群(clustering)技术。第二层含义就是:大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,这主要针对Web服务器、FTP服务器、企业关键应用服务器等网络应用。,负载均衡概述-一些概念,正向代理 是一个位于客户端和原始服务器(origin server)
5、之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 纵向扩展 指企业后端大型服务器以增加处理器等运算资源进行升级以获得对应用性能的要求。 横向扩展 指企业可以根据需求增加不同的服务器应用,依靠多部服务器协同运算
6、,借助负载均衡及容错等功能来提高运算能力及可靠度。 去IOE IBM是服务器提供商,Oracle是数据库软件提供商,EMC则是存储设备提供商,三者构成了一个从软件到硬件的企业数据库系统。“去IOE”运动就是用成本更加低廉的软件,以消除“IOE”对自己数据库系统的垄断。 集群 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。 高可用HA 高可用性H.A.(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的
7、停机时间,以提高系统和应用的可用性。,负载均衡概述-技术实现,硬件 产品:F5 BIG-IP、A10、NetScaler等 特点:性能高、维护方便、价格昂贵 软件 产品:apache、nginx、LVS、squid等 特点:性能比硬件要差、开源免费、维护相对硬件复杂 四层负载均衡 所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。四层交换机主要分析IP层及RTCP/UDP层,实现四层流量负载均衡。 七层负载均衡 所谓七层负载均衡,也称为“内容交换”, 也就是主要通过报文中的真正有意义的应用 层内容,再加上负载均衡设备设置的
8、服务器 选择方式,决定最终选择的内部服务器。七 层交换机除了支持四层负载均衡以外,还有 分析应用层的信息,如HTTP协议URI或 Cookie信息。,负载均衡概述-技术实现,硬件七层负载均衡对比: NetScaler,负载均衡概述-技术实现,软件七层负载均衡对比: Nginx,负载均衡概述-可用的计算资源,服务器通常有四部分主要的资源,处理器、内存、网络和存储,了解这些资源情况,才能更好的利用,负载均衡才有意义。,DNS负载均衡,DNS负载均衡,它的工作机制非常简单,使用一种称为轮转的方式,来向特定域的一组服务器分发连接请求。这种操作是顺序执行的,要想服务器增加基于DNS的负载均衡,只需为域增
9、加多个A记录即可,BIND会负责完成其他工作。 DNS服务器软件:BIND(Berkeley Internet Name Domain伯克利互联网域名守护进程) 记录类型:NS记录代表名称服务器记录;MX记录代表邮件收发器记录; A记录将一个IP地址和一个域名链接起来;CNAME记录代表规范名称或别名; 优点: 简单、易于调试、容易扩展 缺点: 会话保持 负载处理方式(分配不均) 容错性(无法判别宕机),DNS负载均衡,查询域名 dig .hk 遍历查询 dig .hk +trace 测试DNS:nslookup 127.0.0.1,apache负载均衡,apache,jk2,tomcat,
10、apache负载均衡,主机配置 主机1: rhel5,ip:192.3.4.41 子网掩码:255.255.255.128,默认网关:192.3.4.10 主机2: centos6.4,ip:192.3.4.42 子网掩码:255.255.255.128,默认网关:192.3.4.10 客户机: win7,ip:192.3.4.59 子网掩码:255.255.255.128,默认网关:192.3.4.10 三个主机可以相互访问,安装JDK (jdk-1_5_0_22-linux-i586-rpm.bin)主机1和主机2均安装 安装tomcat (apache-tomcat-6.0.18-lin
11、ux.zip)主机1和主机2均安装,apache负载均衡,安装apache (httpd-2.2.26.tar.gz) rhel5(192.3.4.41)上安装 下载httpd-2.2.26.tar.gz 把httpd-2.2.26.tar.gz放到/soft 下 rootlocalhost #cd /soft rootlocalhost soft#tar zxvf httpd-2.2.26.tar.gz /解压apache的压缩包 rootlocalhost soft#cd httpd-2.2.6 /定位到httpd-2.2.6 文件夹下 rootlocalhost httpd-2.2.6#
12、./configure -prefix=/usr/local/apache -enable-so / 配置apache路径 rootlocalhost httpd-2.2.6#make /编译apache rootlocalhost httpd-2.2.6#make install /安装apache rootlocalhost httpd-2.2.6#cd /usr/local/apache /进入apache的目录 rootlocalhost apache# cd conf/ rootlocalhost conf#cp -a httpd.conf httpd.conf- /备份apache
13、配置文件 rootlocalhost conf#chkconfig -list httpd /查看httpd服务是否已存在 rootlocalhost conf#chkconfig httpd off /关闭系统自带了httpd的服务,如果存在httpd服务 rootlocalhost conf#service httpd status /查看自带httpd服务状态 rootlocalhost conf#/usr/local/apache/bin/apachectl -k start /linux启动apache命令 rootlocalhost conf#netstat -an | grep
14、:80 /查看linux80端口是否开启 rootlocalhost conf#ps -aux | grep httpd /linux下查看apache进程,apache负载均衡,安装jk2(tomcat-connectors-1.2.26-src.tar.gz)rhel5上安装 tar zxvf tomcat-connectors-1.2.26-src.tar.gz cd tomcat-connectors-1.2.26-src cd native ./configure -with-apxs=/usr/local/apache/bin/apxs -with-java-home=/usr/j
15、ava/jdk1.5.0_22 -with-java-platform=2 -enable-jni make cp apache-2.0/mod_jk.so /usr/local/apache/modules/ 注:如果此处的mod_jk.so是通过其它方法或者途径得到的,在后面启动apache的时候可能会提示:Cannot load /usr/local/termite/apache/modules/mod_jk.so into server: /usr/local/termite/apache/modules/mod_jk.so: invalid ELF header file mod_j
16、k.so 可能会显示 mod_jk.so: MS-DOS executable (EXE), OS/2 or MS Windows 而正确的应该显示mod_jk.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped cd /usr/local/apache/modules chmod 755 mod_jk.so,apache负载均衡,配置jk2 在/usr/local/apache/conf目录下新建mod_jk.conf文件,内容如下: LoadModule jk_module module
17、s/mod_jk.so JkWorkersFile conf/workers.properties JkMount /*.jsp controller JkMount /jkstatus status JkLogFile logs/mod_jk.log #Set the jk log level debug/error/info JkLogLevel debug #Select the log format JkLogStampFormat “%a %b %d %H:%M:%S %Y “ #JkOptions indicate to send SSL KEY SIZE, JkOptions +
18、ForwardKeySize +ForwardURICompat -ForwardDirectories #JkRequestLogFormat set the request format JkRequestLogFormat “%w %V %T“ 在/usr/local/apache/conf目录下httpd.conf文件末尾添加如下内容: #jk_module Include conf/mod_jk.conf,apache负载均衡,配置jk2 在/usr/local/apache/conf目录下新建workers.properties文件,内容如下: worker.list = cont
19、roller,status #=tomcat1= worker.tomcat1.port=8009 worker.tomcat1.host=192.3.4.41 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #=tomcat2= worker.tomcat2.port=8009 worker.tomcat2.host=192.3.4.42 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #=controller= worker.controller.type=lb work
20、er.controller.balanced_workers=tomcat2,tomcat1 worker.controller.sticky_session=1 #worker.controller.sticky_session_force=1 #- worker.status.type=status,apache负载均衡,Ajp13协议,8009端口监听,apache负载均衡,测试负载均衡 在Tomcat1和Tomcat2下新建站点 tomcat/webapps目录下新建test目录, test目录列表:index.jsp、WEB-INF, WEB-INF目录下web.xml文件,Tomc
21、at1 index.jsp Tomcat 1 ,Tomcat2 index.jsp Tomcat 2 ,web.xml index.jsp ,apache负载均衡,测试负载均衡 启动Tomcat1, Tomcat2 和Apache服务 Apache服务器ip:192.3.4.41 端口70 service apache start Tomcat1服务器ip:192.3.4.41 端口8080 ./startup.sh Tomcat2服务器ip:192.3.4.42 端口8080 ./startup.sh 首先验证Apache服务器的静态页面是否正常,访问:http:/192.3.4.41:70
22、/(若局域网内不能访问请检查防火墙设置) 验证tomcat和apache配置提供负载均衡,用不同的终端访问http:/192.3.4.41/test/index.jsp 如果你看到红色的页面,表示为tomcat1 服务器返回的, 如果你看到l蓝色的页面,表示为tomcat2 服务器返回的。 停止其中一台Tomcat服务,继续访问,验证负载均衡是否停止对失效服务的分发请求,apache负载均衡,Jkstatus 通过 jkstatus 可以监控 JK 目前的工作状态以及对到 tomcat 的连接进行设置 访问http:/192.3.4.41/jkstatus (http:/192.3.4.41:
23、70/jkstatus),apache负载均衡,配置tomcat绑定session 注意会话复制会消耗一定性能;会话保持和session独立管理都可以解决此类问题。 修改tomcat1, tomcat2的server.xml(tomcat/conf),tomcat1替换第一个如下: ,tomcat2替换第一个如下: ,apache负载均衡,tomcat1和tomcat2替换如下:,apache负载均衡,tomcat1和tomcat2替换如下:,修改tomcat1, tomcat2测试项目中的WEB-INF/web.xml 在web.xml加入 即可,apache负载均衡,测试tomcat绑定s
24、ession 重启apache,tomcat1,tomcat2, 用不同的终端访问:http:/192.3.4.41:70/test/index.jsp 可以看到Tomcat终端不再打印null,一方设置session双方都打印出session,实现session共享。 tail f tomcat/logs/catalina.out,Nginx负载均衡,使用Nginx做七层负载均衡的理由 高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到23万并发连接数。 内存消耗少:在3万并发连接下,开启的10个Nginx 进程才消耗150M内存(15M*10=150M)。 配置文件非常简单:风
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 负载 均衡 技术 实现
链接地址:https://www.31doc.com/p-2641358.html