加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

最简配置!3 步完成Nginx+tomcat负载均衡的会话保持

发布时间:2019-06-22 07:47:02 所属栏目:业界 来源:拜托了王教授
导读:什么是会话保持 会话是指一个终端用户与交互体系举办通信的进程,好比从输入账户暗码进入操纵体系到退出操纵体系就是一个会话进程。会话较多用于收集上,TCP的三次握手就建设了一个会话,TCP封锁毗连就是封锁会话。 Http协议是一种无状态协议,以是必要使

2.manager抉择怎样打点集群的session信息

  • className-指定实现org.apache.catalina.ha.ClusterManager接口的类,用于信息之间的打点.
  • expireSessionsOnShutdown-配置为true时,一个节点封锁,将导致集群下的全部Session失效
  • notifyListenersOnReplication-集群下节点间的Session复制、删除操纵,是否关照session listeners

3.Channel是Tomcat节点之间举办通信的器材。

  • Channel包罗5个组件:Membership、Receiver、Sender、Transport、Interceptor

4.Membership维护集群的可用节点列表。用于检测新增节点及掉线节点

  • address-组播地点(恣意界说组播地点),假如必要阿里云ECS陈设tomcat,由于ECS不支持组播,提议改用memcache或redis存储session实现会话保持
  • port-组播端口 (两个tomcat组播端口要同等)
  • frequency-发送心跳(向组播地点发送UDP数据包)的时距离断(单元:ms)。默认值为500
  • dropTime-Membership在dropTime(单元:ms)内未收到某一节点的心跳,则将该节点从可用节点列表删除。默认值为3000

5.Receiver : 吸取器

  • address-吸取动静的地点(默认auto,可是在假造机上开启tomcat会报错,提议设置本机IP地点)
  • port-吸取动静的端口(假如在一台处事器设置多个tomcat,需区分初步口)
  • autoBind-端口的变革区间

假如port为4000,autoBind为100,吸取器将在4000-4099间取一个端口,举办监听

  • selectorTimeout-NioReceiver 轮询超时时刻
  • maxThreads-线程池的最大线程数

6.sender:发送器认真发送动静

  1. <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
  2.  <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
  3.  </Channel> 

7.Valve :过滤器

8.Deployer:同步集群下的全部节点的同等性

9.ClusterListener : 监听器,监听Cluster组件吸取的动静,行使DeltaManager时,Cluster吸取的信息通过ClusterSessionListener转达给DeltaManager

设置web.xml

在web.xml中添加属性,用于汇报web容器,该项目属于漫衍式项目

添加标签到web项目WEB-INF目次

最简设置!3 步完成Nginx+tomcat负载平衡的会话保持

会话保持验证

webapps/ROOT/index.jsp 建设测试页面获取sessionID

  1. tomcatA 
  2.  <%@ page language="java" %> 
  3.  <html> 
  4.  <head><title>TomcatA</title></head> 
  5.  <body> 
  6.  <h1><font color="red">TomcatA</font></h1> 
  7.  <table align="centre" border="1"> 
  8.  <tr> 
  9.  <td>Session ID</td> 
  10.  <% session.setAttribute("TomcatA","TomcatA"); %> 
  11.  <td><%= session.getId() %></td> 
  12.  </tr> 
  13.  <tr> 
  14.  <td>Created on</td> 
  15.  <td><%= session.getCreationTime() %></td> 
  16.  </tr> 
  17.  </table> 
  18.  </body> 
  19. </html> 
  20. tomcatB 
  21. <%@ page language="java" %> 
  22. <html> 
  23.  <head><title>TomcatB</title></head> 
  24.  <body> 
  25.  <h1><font color="red">TomcatB</font></h1> 
  26.  <table align="centre" border="1"> 
  27.  <tr> 
  28.  <td>Session ID</td> 
  29.  <% session.setAttribute("TomcatB","TomcatB"); %> 
  30.  <td><%= session.getId() %></td> 
  31.  </tr> 
  32.  <tr> 
  33.  <td>Created on</td> 
  34.  <td><%= session.getCreationTime() %></td> 
  35.  </tr> 
  36.  </table> 
  37.  </body> 
  38. </html> 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读