负载均衡实现方式分为两类:1硬件类,2软件类。
硬件类:F5(这是一种硬件,并不是刷新啊,不要误解) 优点:非常快,可靠性高,并发量大。缺点:太贵,成本高,不方便,最致命的是不能将动态请求和静态请求分离。
软件类:1.apache http server:可靠性高,可以动静请求分离,但是,效率低。(少用)
2.linux的LVS是基于Linux系统IP层面的负载均衡,可靠性非常高,简单易用,并发量大,缺点:最致命的是不能将动态请求和静态请求分离。
3.nginx 优点:非常快,可靠性高,并发量大,更重要的是可以将动态请求和静态请求分离。
这里为什么要说动静分离为什么那么重要呢?我们先看下图:
如果我们没有将动静分离,会有什么样的后果呢?1.看上图,如果静态资源的请求(即JS,CSS,图片等)和动态资源请求(数据库等)不分离,全部集中在Tomcat,那么Tomcat的压力不然会很大,而且请求时延很大。那么如果进行动静分离后,静态资源放在nginx的目录下
,静态请求的资源直接在nginx哪里获取,不需要走Tomcat,动态资源走Tomcat,这样效率大大提高,请求时延大大减低。
Tomcat的压力测试:
1.简单建立一个helloword页面,把工程打包后放在Tomcat的webapp目录下,启动Tomcat。
2.先从http://jmeter.apache.org/download_jmeter.cgi的download目录下载,如下图:
后缀为.tgz是linux的,zip是windows的。拿到解压后在bin目录启动就可以进行压力测试:如图
这里首先添加一个线程组,在线程组下面添加http请求,图形结果,观察树,和聚合报告。
线程组中的参数如图:
http的参数:
剩下的不用配置了。
测试结果:
最后一张图如上,当线程数很高的时候,Tomcat承受不聊了,图中Error代表错误率。Throughput代表Tomcat的吞吐量。这跟笔记一的Tomcat理论值很接近。具体业务不同,承受能力不同。