您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 类excel报表开发工具FineReport教程之服务器性能优化
类excel报表开发工具FineReport教程之服务器性能优化:集群服务器集群原理1.前述Windows集群同J2EE的集群不同,因为它是操作系统自带的集群支持,它没有J2EE集群对java的web应用的良好支持,例如session粘滞。所以对Windows集群,需要特别配置一下,以此来支持集群的功能。2.原理均衡负载会根据情况,将外部请求分配给集群内的服务器处理。当一个会话(Session)在A服务器上产生并开始,产生了一部分会话信息将保存到A服务器的内存中。假如这次会话中的一次请求被均衡负载调度器分配到了B服务器去处理,那么问题就产生了,B服务器中的内存中并没有这个会话的信息,那么就会报查询超时(sessiontimeout)。而我们通过配置文件的配置,会在集群的服务器间建立联系。当B服务器收到请求,发现这个请求的会话不是自己产生的,那么它会根据请求中的信息,判断出这个会话是由哪台服务器产生。接着它会将这个请求通过内网转发给相应的那台服务器去处理。这样相当于就实现了J2EE集群的会话粘滞的功能。简单的说,会话粘滞就是保持一个会话中的多次交互都由一台集群中的服务器处理。这样就不会再产生上述的问题。3.前提集群的服务器间,需要有内网间通信的支持。不同服务器上的报表应用必须是一致的。Tomcat服务器集群1.环境准备Apache:Apache是http服务器,我们利用其对Tomcat进行负载均衡,下载地址,这里使用的版本是ApacheHTTPServer2.0.64;Tomcat:Tomcat7.0.6;JK:JK是Tomcat提供给http服务器的插件,这里使用的版本是tomcat-connectors-1.2.37-windows-i386-httpd-2.0.x,下载地址;系统:win7。2.软件安装2.1Apache下载完成之后,直接安装apache,安装完成之后,在浏览器中输入,能够看到下图则说明安装成功:2.2Tomcat解压下载好的tomcat压缩包,复制三分解压好的tomca文件夹,分别重命名为tomcat1,tomcat2,tomcat3。3.配置过程3.1Apache配置修改修改httpd.conf我的Apache安装在C:\ProgramFiles(x86)\ApacheGroup\Apache2,找到conf目录下的httpd.conf,在文件的最后一行添加:1.includeC:\ProgramFiles(x86)\ApacheGroup\Apache2\conf\mod_jk.conf新建mod_jk.conf文件在conf目录下新建mod_jk.conf文件,内容如下:1.LoadModulejk_modulemodules/mod_jk.so2.JkWorkersFileconf/workers.properties3.JkMount/*.jspcontroller注:第一行最后的文件名为jk的文件名,根据下载的jk的名字不同而不同。第二行表示指定哪些请求交给tomcat处理,controller为在workers.propertise里指定的负载分配控制器名,第三行表示可以进行集群的文件类型,这里写*.jsp表示集群的文件只能是jsp文件,如果不区分文件类型,则直接写成JkMount/*controller即可。jk解压下载的jk文件,将里面的so文件复制到Apache安装目录的modules目录下,这里下载的jk文件名为mod_jk.so。新建并编辑workers.properties文件在conf文件夹下新建workers.properties,内容如下:1.#server2.worker.list=controller3.#========tomcat1========4.worker.tomcat1.port=110095.worker.tomcat1.host=localhost6.worker.tomcat1.type=ajp137.worker.tomcat1.lbfactor=18.#========tomcat2========9.worker.tomcat2.port=1200910.worker.tomcat2.host=localhost11.worker.tomcat2.type=ajp1312.worker.tomcat2.lbfactor=113.#========tomcat3========14.worker.tomcat3.port=1300915.worker.tomcat3.host=localhost16.worker.tomcat3.type=ajp1317.worker.tomcat3.lbfactor=118.19.#========controller,负载均衡控制器========20.worker.controller.type=lb21.worker.controller.balanced_workers=tomcat1,tomcat2,tomcat322.worker.controller.sticky_session=false23.worker.controller.sticky_session_force=124.#worker.controller.sticky_session=1如果需要配置远程的tomcat服务器的话,只需要将worker.tomcat3.host=localhost中的localhost改为远程服务器的IP地址即可。本次配置都是本地的tomcat,并且在一台机器上,所以端口号都不相同,如果在不同服务器上,端口号则不需要更改。3.2Tomcat配置前面已经将tomcat复制了三份,修改每一份中的server.xml配置,打开conf/server.xml文件,修改如下图:tomcat1:tomcat2:tomcat3:注:由于我这三个tomcat全是本地的,并且在一台服务器上,所以需要修改三种类型的端口号,如果是远程服务器,则只需要修改AJP13的connector的port,其他端口号不需要修改。不论是本地服务器还是远程服务器,AJP13的connector的jvmRoute名称和workers.properties中配置都必须对应。4.结果测试在tomcat下面的项目文件夹中修改web.xml,如这里使用test项目,则修改三个tomcat下面的test项目中的web.xml,在每个web.xml的display-name节点后添加新的节点distributable/。在每个test项目文件夹下新建test.jsp,内容如下:1.%@pagecontentType=text/html;charset=GBK%2.%@pageimport=java.util.*%3.htmlheadtitleClusterAppTest/title/head4.body5.ServerInfo:6.%7.out.println(request.getLocalAddr()+:+request.getLocalPort()+br);%8.%9.out.println(brID+session.getId()+br);10.//如果有新的Session属性设置11.StringdataName=request.getParameter(dataName);12.if(dataName!=null&&dataName.length()0){13.StringdataValue=request.getParameter(dataValue);14.session.setAttribute(dataName,dataValue);15.}16.out.println(bSession列表/bbr);17.System.out.println(============================);18.Enumeratione=session.getAttributeNames();19.while(e.hasMoreElements()){20.Stringname=(String)e.nextElement();21.Stringvalue=session.getAttribute(name).toString();22.out.println(name+=+value+br);23.System.out.println(name+=+value);24.}25.%26.formaction=test.jspmethod=POST27.名称:inputtype=textsize=20name=dataName28.br29.值:inputtype=textsize=20name=dataValue30.br31.inputtype=submit32./form33./body34./html4.1session测试项目部署好之后,启动三个tomcat以及Apache,启动顺序随意,然后再浏览器中输入,结果如下图:刷新页面,如下图:再次刷新,如下图:多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。那么session中的存储的东西呢,在输入框中分别输入1、1,2、2,3、3后,显示结果如下图:4.2节点插拔测试关闭Tomcat关闭tomcat3,刷新页面,可以不断访问tomcat1和tomcat2,再关闭tomcat2,只能够访问tomcat1,说明节点关闭时运行正常。启动tomcat如果重启Tomcat2,无论怎么刷新,始终访问Tomcat3,无法访问tomcat2,这时利用另外台机器访问页面,发现Tomcat2正常,然后在刷本地页面,又可以访问Tomcat2了。对于每个新来的session,Apache按照节点配置中的lbfactor比重选择访问节点,如果某节点node1不能访问,则寻找下一可访问节点,并且将此node1就在该访问session的访问黑名单中,以后该session的访问直接不考虑node1,即使node1又可以访问了。而新来的session是无黑名单的,如果新的session能够访问到node1了,则会将node1在其他所有session访问的黑名单删除,这样其他session就又能访问node1节点了。经过以上测试,说明Tomcat集群和负载均衡已经实现了。报表集群配置步骤集群内的每台安装有报表应用的服务器都需要这样配置。1.关闭现在的报表服务2.增加配置文件cluster.xml将配置包resource文件夹下的cluster.xml打开,如果没有cluster.xml,则新建一个,基本内容如下:1.?xmlversion=1.0encoding=UTF-8?2.ClusterConfiguseCluster=true//useCluster=”true”表示启用集群配置3.ClusterService4.ServiceNameA/ServiceName//给这台服务器取一个区别于其他机器的别名5.ip192.168.0.1/ip//这台服务器在内网中的IP地址6.port8080/port//报表应用的端口7.WebAppNameWebReport/WebAppName//报表应用的名称8./ClusterService9.ClusterSe
本文标题:类excel报表开发工具FineReport教程之服务器性能优化
链接地址:https://www.777doc.com/doc-1600637 .html