JavaWeb高性能开发第2部分前端的高性能

上传人:汽*** 文档编号:403413609 上传时间:2022-09-19 格式:DOC 页数:15 大小:465.50KB
返回 下载 相关 举报
JavaWeb高性能开发第2部分前端的高性能_第1页
第1页 / 共15页
JavaWeb高性能开发第2部分前端的高性能_第2页
第2页 / 共15页
JavaWeb高性能开发第2部分前端的高性能_第3页
第3页 / 共15页
JavaWeb高性能开发第2部分前端的高性能_第4页
第4页 / 共15页
JavaWeb高性能开发第2部分前端的高性能_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《JavaWeb高性能开发第2部分前端的高性能》由会员分享,可在线阅读,更多相关《JavaWeb高性能开发第2部分前端的高性能(15页珍藏版)》请在金锄头文库上搜索。

1、引言精灵技术,GZIP压缩等这一部分,本文将讲解前端优化里重要的冲洗机制,动静分离,HTTP持久连接,HTTP协议的灵活应用,CDN等。结合这些技术或思想,相信会使的Java Web应用程序的性能更上一层楼。刷新机制的使用实际上在网络技术中,同花顺的Java Web技术中,实现冲洗非常简单,只要调用HttpServletResponse.getWriter输出流的冲洗方法,就可以将已经完成加载的内容写回给客户端。红晕动静分离所谓的动静分离,就是将网页应用程序中静态和动态的内容分别放在不同的网页JAVA的Web来讲解网络优化,而JAVA的Web的主流服务器软件是Tomcat的让人遗憾的是,TOM

2、CAT在并发和静态资源处理的能力上较弱,这也是Tomcat的为人诟病的地方,但是瑕不掩瑜,既然我们选择了JAVA雄猫Tomcat的篇幅于处理JSP / SERVLET的请求。对于静态资源处理的服务器软件,我们可以选择Nginx的,它是一款俄罗斯人开发的软件,似乎比阿帕奇Apache + Tomcat的的的清单1。动静分离的Apache的核心配置 BalancerMember http:/192.168.1.178:8080 loadfactor = 1 BalancerMember http:/192.168.1.145:8080 loadfactor = 1 了NameVirtualHost

3、 *:80 的 serverAdmin内 服务器名“, 的DocumentRoot / WWW 的DirectoryIndex index.shtml 全部设置AllowOverride 为AddType text / html类型的。shtml AddType的应用程序/ x-RAR RAR。 AddHandler的shtml的服务器解析。 选项+ IncludesNOEXEC RewriteEngine叙述上 ProxyRequests关闭的ProxyPass /静态/!的ProxyPass /平衡器:/ /代理/ProxyPassReverse /平衡器:/ /代理/ProxyPrese

4、rveHost上 从Apache的官方对mod_proxy的模块的介绍,我们可以知道PROXYPASS属性可以将一个远端服务器映射到本地服务器的的URL空间中,也就是说这是一个地址映射功能。在清单1的配置中,当访问的路径不在/静态/下时(表示非),就转发给后端的服务器(也就是Tomcat)的,否则如果是/静态/路径就访问本机。例如,当访问 192.168.1.178(或145):8080/index.jsp,这就实现了动静分离。在清单1的配置中实际也包含了简单的负载均衡(loadfactor因子)。的Linux的主机命令查看两个域名的IP地址,结果如图1所示。图1。某网站的动静分离可以看到,通

5、过查看IPIP),而图片内容和网页的动态内容并不在同一IP本文采用另一种策略对动静分离进行演示,它的大致结构如图2所示。图2。本文设计的动静分离结构在本文中,我们将静态资源放在主机的一个目录上,将动态程序放在乙主机上,同时在上安装Nginx的并且在乙上安装Tomcat的配置Nginx的,当请求的是HTML,JPG等静态资源时,就访问B服务器上,交由Tomcat的处理,再由Nginx的将结果返回给请求端。提到这,可能有您会有疑问,动态请求要先访问,转发访问B,再由乙返回结果给A,2点好处。第一,为负载均衡做准备,因为随着系统的发展壮大,只用一台乙来处理动态请求显然是是不够的,要有B1,B2等等才

6、行。那么基于图2的结构,就可以直接扩展的B1,B2,再修改Nginx的的配置就可以实现B1和B2作为服务器,那么凡是静态资源,如图片,CSS代码,就需要编写类似这样的访问代码:,IMG SRC =“地址,无需关心具体放置资源的服务器的地址,因为具体的地址Nginx的为帮您绑定和选择。按照图2所示的架构图,安装好需要的软件Nginx的和Tomcat的。按照设想,对Nginx的的配置文件nginx.conf中进行配置,其中与本文该部分相关的配置如清单2所示。清单2。动静分离的Nginx的配置 转发的服务器,上游用于负载均衡做准备 上游tomcat_server 服务器192.168.1.117:8

7、080; 服务器 听9090; 本地服务器名; 指数的index.html index.htm的index.jsp的; 字符集KOI8-R; 静态资源存放目录 根/ home/wq243221863/Desktop/ROOT; 的access_log日志/ host.access.log的,主要的; 动态请求的转发 位置*。JSP $ proxy_pass http:/tomcat_server; proxy_set_header $ host主机; 静态请求直接读取 位置* (GIF | JPG | JPEG | PNG | BMP |瑞士法郎| CSS)$ 到期30D; .清单2十分简洁,

8、其目的和我们预期的一样,动态的请求(以。jsp的结尾)发到B(192.168.1.117:8080,即tomcat_server)上,而静态的请求(GIF | JPG等)则直接访问定义的根(/ home/wq243221863/Desktop/ROOT)的目录,这个根目录我直接将其放到的Linux的桌面ROOT文件夹。接下来在Tomcat的中新建的Web项目,很简单,我们只为其添加一个的test.jsp文件,目录结构如图3所示。图3。乙上的测试项目结构而我们定义了一张测试用的静态图片,放置在的桌面根/单独的目录下。结构如图4所示图4。上的静态资源文件夹结构注意:这里的单独的目录名是与乙的项目文

9、件夹同名的。再查看图3中的的test.jsp的源码。如清单3所示。清单3。的test.jsp源码 html4/loose.dtd“ 动静分离的测试 这是动态脚本处理的结果 - - 这是静态资源的请求结果 - 清单3是一个非常简单的JSP页面,主要是使用IMG标签来访问jquery.gif,我们知道的test.jsp在乙服务器上,而jquery.gif在服务器上。用于访问jquery.gif的代码里不需要指定A的地址,而是直接使用相对路径即可,就好像该图片也在乙上一样,这就是本结构的一个优点了。我们在上访问的test.jsp文件。结果如图5所示。图5。的test.jsp的结果非常顺利,完全按照我

10、们的想法实现了动静分离!Tomcat的服务器也迁移到服务器上,同时将jquery.gif拷贝一份到单独的项目目录下,图3的结构变为图6所示。图6。拷贝jquery.gif的单独项目我们将Tomcat的的端口设置为8080,Nginx的的端口依然是9090。现在访问http:/localhost:9090/separate/test.jsp(未使用动静分离)和访问http:/localhost:8080/separate/test JSP(使用了动静分离)的效果是一样的了。只是8080端口的静态资源由Tomcat的处理,而9090则是由Nginx的处理。我们使用的Apache的AB压力测试工具,

11、对分别进行压力和吞吐率测试。首先,对静态资源(jquery.gif)的处理结果如清单4所示。清单4。静态资源的AB测试测试脚本:AB-C 100-N 1000 http:/localhost的:端口 /单独/ jquery.gif 9090端口,也就是Nginx的的测试结果: 并发等级:100 所需的时间测试:0.441秒 完整的要求:1000 失败的请求:0 写错误:0 转让总计:4497000字节 HTML转移:4213000字节 /秒(平均每秒请求:2267.92) 每次请求时间:44.093毫秒(均值) 每次请求0.441毫秒(意思是,在所有的并发请求) 传输速率:9959.82千字节/秒收到 8080端口,也就是Tomcat的的测试结果: 并发等级:100 的时间测试1.869秒的 完整的要求:1000 失败的请求:0 写错误:0 转让总计:4460000字节 HTML转移:4213000字节 /秒(平均每秒请求:535.12) 每次请求时间:186.875毫秒(均值) 每次请求1.869毫秒(意思是,在所有的并发请求) 传输速率:2330

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号