ps做网站首页设计教程,郑州seo优化外包热狗网,设计网站源代码,潍坊网站关键字优化session共享有两种方式#xff1a; 1、session共享#xff0c;多个服务器session拷贝保存#xff0c;一台宕机不会影响用户的登录状态#xff1b; 2、请求精确集中定位#xff0c;即当前用户的请求都集中定位到一台服务器中#xff0c;这样单台服务器保存了用户的sessi…session共享有两种方式 1、session共享多个服务器session拷贝保存一台宕机不会影响用户的登录状态 2、请求精确集中定位即当前用户的请求都集中定位到一台服务器中这样单台服务器保存了用户的session登录信息如果宕机则等同于单点部署会丢失 apache中针对上述两个方法提供了不同的配置项 (a) session replication会话复制即上述的方法一 (b)session sticky会话不复制即上述的方法二 选取Apache HTTP Server作为前端的负载服务器后端选取两个Tomcat作集群。 一、采用粘性Session 这种方式将同一用户的请求转发到特定的Tomcat服务器上避免了集群中Session的复制缺点是用户只跟一种的一台服务器通信如果此服务器down掉那就废了。 采用的model为mod_proxy_ajp.so整个配置在tomcat的配置文件中都有相关的注释只需作相应修改就OK。 我们选取的是Apache HTTP Server2.2.4Tomcat5.5.16。 首先安装Apache HTTP Server然后修改其配置文件http.conf首先load三个model代码如下 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 然后在此配置文件末端加入以下代码 ProxyPass / balancer://tomcatcluster/ lbmethodbyrequests stickysessionJSESSIONID nofailoverOff timeout5 maxattempts3 ProxyPassReverse / balancer://tomcatcluster/ Proxy balancer://tomcatcluster BalancerMember ajp://localhost:8009 routea BalancerMember ajp://localhost:9009 routeb /Proxy 以上代码配置了Proxy的相关参数Proxy模块定义了均衡负载的配置其中两个Tomcat Server都配置在同一台服务器上端口分别为8009、9009并配置各自的route这样Apache Server就能根据route将请求转发给特定的Tomcat。 接下来修改Tomcat的server.xml文件如下 !-- Define an AJP 1.3 Connector on port 8009 -- Connector port8009 enableLookupsfalse redirectPort8443 protocolAJP/1.3 / 其中的port为前面Proxy中设定的端口还要配置其route代码如下 !-- Define the top level container in our container hierarchy -- Engine nameCatalina defaultHostlocalhost jvmRoutea jvmRoute也须同前面的设置一样。 下面用JMeter对配置后的负载均衡做一测试首先先启动两个Tomcat Server随后启动Apache Server在JMeter中新建测试计划在两个Tomcat Server中的jsp-examples下新建test.jsp此jsp自己随便写两句就成然后进行测试以下是部分取样器结果 HTTP response headers: HTTP/1.1 200 OK Date: Wed, 11 Jul 2007 02:17:55 GMT Set-Cookie: JSESSIONIDAC7EF1CAA8C6B0FEB68E77D7D375E2AF.b; Path/jsp-examples Content-Type: text/html;charsetISO-8859-1 Content-Length: 3 Keep-Alive: timeout5, max79 Connection: Keep-Alive 以上红色代码表示用户的http请求中的JSESSIONID中已经附带了route后缀.b表示此请求将转发到route为b的Tomcat Server上你将会发现其中的一部分请求的JSESSIONID后缀为.a也就是转发给route为a的Tomcat Server上。 二、采用Session复制 修改apache http server配置文件http.conf首先load三个model代码如下 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 然后在此配置文件末端加入以下代码 ProxyPass / balancer://tomcatcluster/ ProxyPassReverse / balancer://tomcatcluster/ Proxy balancer://tomcatcluster BalancerMember ajp://localhost:8009 routea BalancerMember ajp://localhost:9009 routeb /Proxy 接下来修改Tomcat的server.xml文件如下 !-- Define an AJP 1.3 Connector on port 8009 -- Connector port8009 enableLookupsfalse redirectPort8443 protocolAJP/1.3 / 其中的port为前面Proxy中设定的端口还要配置其route代码如下 !-- Define the top level container in our container hierarchy -- Engine nameCatalina defaultHostlocalhost jvmRoutea jvmRoute也须同前面的设置一样。 另外还需要在tomcat中将以下配置打开 Cluster classNameorg.apache.catalina.cluster.tcp.SimpleTcpCluster managerClassNameorg.apache.catalina.cluster.session.DeltaManager expireSessionsOnShutdownfalse useDirtyFlagtrue notifyListenersOnReplicationtrue Membership classNameorg.apache.catalina.cluster.mcast.McastService mcastAddr228.0.0.4 mcastPort45564 mcastFrequency500 mcastDropTime3000/ Receiver classNameorg.apache.catalina.cluster.tcp.ReplicationListener tcpListenAddressauto tcpListenPort4001 tcpSelectorTimeout100 tcpThreadCount6/ Sender classNameorg.apache.catalina.cluster.tcp.ReplicationTransmitter replicationModepooled ackTimeout15000 waitForAcktrue/ Valve classNameorg.apache.catalina.cluster.tcp.ReplicationValve filter.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;/ Deployer classNameorg.apache.catalina.cluster.deploy.FarmWarDeployer tempDir/tmp/war-temp/ deployDir/tmp/war-deploy/ watchDir/tmp/war-listen/ watchEnabledfalse/ ClusterListener classNameorg.apache.catalina.cluster.session.ClusterSessionListener/ /Cluster 最后要在我们的应用程序里的web-inf下的web.xml文件web-app元素的最后加上 distributable/ 。 服务器down掉错误信息
org.apache.catalina.tribes.group.interceptoers.TcpFailureDetector memberDisappeared
Verification complete. Member still alivce[org.apache.catalina.tribes.membership.MemberImpl[tcp://172.16.3.107]