Tocmat集群中最重要的交换信息就是会话消息,对某个tomcat实例某会话做的更改要同步到集群其他tomcat实例的该会话对象,这样才能保证集群所有实例的会话数据一致。在tribes组件的基础上完成这些工作就相当容易些,tribes是tomcat实现的一个通信框架。

如下图,tomcat实现会话同步的过程中大致会使用如下组件,现在假设中间的tomcat实例的会话改变了,它会通过会话管理器Manager将改变的动作消息封装成消息然后调用集群对象Cluster,通过Cluster将消息发送出去,同时Cluster又依赖于tribes,最后消息其实是交由tribes真正发送的,通信过程是以ClusterMessage为对象传输的,它会先被序列化进行传输,到达左边和右边的tomcat实例时会被反序列化,消息由tribes接收后往Cluster上传,最后到达会话管理器Manager,Manager根据动作消息去同步会话。

所以Cluster其实就是实现了ChannelListener的监听类,当tribes接收到消息后就会调用此监听器的messageReceived方法处理逻辑,此方法又会继续往上通知Manager的messageDataReceived方法,此方法内完成会话同步处理逻辑。关于会话具体的同步机制tomcat提供了两种,分别是“集群增量会话管理器——DeltaManager”和“集群备份会话管理器——BackupManager”。

  • DeltaManager会话管理器

DeltaManager会话管理器是tomcat默认的集群会话管理器,它主要用于集群中各个节点之间会话状态的同步维护。集群增量会话管理器的职

Tomcat集群如何同步会话相关推荐

  1. Tomcat集群应用同步 —— 源码分析

    文章目录 前言 一.应用同步的配置与实现原理 二.应用同步源码分析 三.如何获取集群的节点列表 四.通讯模块Tribe 五.集群的Session同步 六.集群的Session共享 总结 前言 相信大家 ...

  2. apache+jk+tomcat集群+session同步

    说明借前人之鉴写一篇关于tomcat集群及session同步的问题首先介绍tomcat集成及做集群的原因和必要性session同步的作用.然后包括各软件的安装配置. 原理tomcat 做个WEB服务器 ...

  3. window xp Apache与Tomcat集群配置--转载

    转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...

  4. Nginx+tomcat集群的session共享问题

    请求负载过程中会话信息不能丢失.那么需要在多个tomcat中session需要共享.所以需要进行相关问题的解决 配置Tomcat的session共享可以有三种解决方案: 第一种:是以负载均衡服务器本身 ...

  5. Tomcat集群实现源码级别剖析

    随着互联网快速发展,各种各样供外部访问的系统越来越多且访问量越来越大,以前Web容器可以包揽接收-逻辑处理-响应整个请求生命周期的工作,现在为了构建让更多用户访问更强大的系统,人们通过不断地业务解耦. ...

  6. windows下tomcat集群配置(两种方法)

    两种方法只是在配置上不同原理一样,因为apache2.X后其自身集成了mod_jk功能,相对于1.3版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化. 一.软件需求 操 ...

  7. MSM实现tomcat集群的session共享

    本文首发于我的个人网站: https://hewanyue.com/ 本文作者: Hechao 本文链接: https://hewanyue.com/blog/6254cc16.html 会话保持起源 ...

  8. tomcat集群配置

    首先准备两个tomcat包 分别修改config目录下server.xml文件中的端口号 <Server port="8015" shutdown="SHUTDOW ...

  9. Windows下搭建Tomcat集群的配置详解

    < Windows下搭建Tomcat集群基础入门详解 > 前言 在搭建 < Apache + Tomcat 实现Web服务器集群 > 前我们还需要实现 Tomcat集群实现Se ...

最新文章

  1. JAVA——改变观感
  2. Uipath 学习栏目基础教学:13、Uipath调用python代码
  3. tensorboard 使用教程
  4. ups容量计算和配置方法_UPS电路设计的空开、电缆及电池如何配置,计算依据是什么...
  5. APMServ5.2.6 升级php5.2 到 5.3版本及Memcache升级!
  6. mysql 5.5 编译安装教程,Centos6下mysql 5.5.* 编译安装步骤详解
  7. 技术人必读:如何让自己成长为IT项目管理者
  8. SAP FICO面试题
  9. java程序启动端口_查看项目端口和启动情况
  10. mysql codesmith_CodeSmith连接不上MySQL的解决方法
  11. 计算机英语写作,计算机英语8.4_电邮写作+.ppt
  12. 2022拼多多详情/拼多多商品详情/拼多多sku详情
  13. java 数字转英文_Java如何将数字转成英文
  14. 装完虚拟机后键盘无法使用
  15. bzoj 4318 osu 【三次方问题】【dp】
  16. 蓄电池测量原理——TFN DC36060A 高精度充电机 蓄电池放电容量测试仪
  17. 互联网思维不重要,重要的是玩法变了
  18. 前端学习笔记:省市区三级联动
  19. Python控制自己的手机摄像头拍照,并把照片自动发送到邮箱
  20. win10系统重装win7系统bios设置方法

热门文章

  1. 完美解决:针对tensorflow中,tf.logging.set_verbosity(tf.logging.ERROR)问题。
  2. 2023年全国最新道路运输从业人员精选真题及答案7
  3. 三星A7计算机,三星A72手机参数怎么样?三星a72参数一览
  4. 【随记】Flink 时间窗口的起始时间
  5. 基于Java EE的企业资金管理系统设计与实现
  6. react使用mockjs模拟数据
  7. 比例阀放大器10KΩ电位器控制指令输入接线图
  8. 正点原子linux阿尔法开发板使用——驱动开发篇
  9. windows下oracle数据库的备份和还原
  10. 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(五)代码复用...