Tomcat集群同步原理入门

Tomcat集群同步原理

一、概述

随着C/S架构中,客户端对服务器的访问量及访问次数逐渐增多,单个服务器已经不能够满足客户端的请求了。于是现在大多数服务器都做成了集群的形式。而服务器集群会有一个很大问题,就是同步问题。

比如,现在我对一个有四台计算机的集群进行访问,这时假设根据负载均衡分配到了Node1,如果我在Node1上创建了一个session对象,这时,在服务器响应客户端之前,一定是要先将创建session对象的信息同步到其它节点上的。这样,我们在客户端第二次发起请求时,假设分到了Node2,我们也可以直接获取session信息。照常进行会话。如果我们在某个服务器上删除了会话,那么同样,在响应之前也会同步其它节点也删除会话。如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vQYkA6Nc-1583398580026)(C:\Users\wangqun\AppData\Roaming\Typora\typora-user-images\image-20200305164901952.png)]

二、同步组件

上述无论是发送还是接收信息的过程中,使用到的组件主要有三个:

  • Manager
  • Cluster
  • tribes

简单来讲,Manager的作用是将操作的信息记录下来,然后序列化后交给Cluster,接着Cluster是依赖于tribes将信息发送出去的。其余节点收到信息后,按照相反的流程一步步传到Manager,经过反序列化之后使该节点同步传递过来的操作信息。如图,假设我们访问的是中间的节点,该节点将信息同步出去。信息是以Cluster Message对象发送的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rZaeSoSy-1583398580028)(C:\Users\wangqun\AppData\Roaming\Typora\typora-user-images\image-20200305165050545.png)]

三、同步方式

关于集群的具体同步机制,tomcat共提供了两种。一种是集群增量会话管理器,另一种是集群备份会话管理器 。

  1. 集群增量会话管理器

这是一种全节点复制模式,全节点复制指的是集群中一个节点发生改变后会同步到其余全部节点。那么非全节点复制,顾名思义,指的是集群中一个节点发生改变后,只同步到其余一个或部分节点。
除了这一特点,集群增量会话管理器还具有只同步会话增量的特点,增量是以一个完整请求为周期,也就是说会在一个请求被响应之前同步到其余节点上。

  1. 集群备份会话管理器

全节点复制模式存在的一个很大的问题就是用于备份的网络流量会随着节点数的增加而急速增加,这也就是无法构建较大规模集群的原因。为了解决这个问题,tomcat提出了集群备份会话管理器。每个会话只有一个备份。这样就可构建大规模的集群。

发布了13 篇原创文章 · 获赞 1 · 访问量 246

猜你喜欢

转载自blog.csdn.net/weixin_46053707/article/details/104678489