了解什么是Tomcat集群以及与Redis一起可以解决的问题。

对于不完全了解Apache Tomcat集群的人来说似乎有些不知所措,但是实际上,通过在优锐课的学习后就知道,它并不那么复杂。可以将群集定义为结合使用负载平衡,某种形式的会话复制以及多个服务器“工作人员”来处理平衡的负载。


Tomcat集群解决了什么问题?

Tomcat集群用于解决的一些问题包括以下内容。首先,当服务器接收到过多的传入请求时,它就无法有效地处理它们。其次,当有状态应用程序需要时(如果服务器发生故障),需要一种保留会话数据的方法。第三,开发人员想要一种不中断服务即可更改配置或更新其应用程序的方法。这些是我们需要使用Tomcat Cluster的主要原因。但是,有没有使用特别好的Tomcat群集的正确方法?


什么是Redis

Redis是一个内存中开源数据项目。实际上,它是当前最流行的内存数据库。特别是,Redisson可以用作Redis Java客户端。Redisson使用Redis来授权Java应用程序供公司使用。它旨在使你的工作更轻松,并更有效地开发分布式Java应用程序。Redisson提供由Redis支持的分布式Java对象和服务。


Redis如何用于Tomcat

RedissonTomcat Session Manager允许你在Redis中存储Apache Tomcat的会话。它使你能够在Tomcat服务器群集之间分配请求。这些都是在Redis支持的非粘性会话管理中完成的。替代选项可能会序列化整个会话。但是,使用此特定的Redis Tomcat Manager,每个会话属性在每次调用时都会写入Redis。得益于此优势,Redisson Session Manager在存储效率和优化写入方面击败了其他基于Redis的管理器。以此方式,Tomcat会话管理以最理想的方式使用。

Step 1

RedissonSessionManager添加到tomcat/conf/context.xml

 
  
          configPath="${catalina.base}/redisson.conf" readMode="MEMORY" updateMode="DEFAULT"/>

 

readMode——读取属性模式。有两种模式可用:

  • MEMORY——将属性存储在本地Tomcat SessionRedis中。进一步的会话更新使用基于Redis的事件传播到本地Tomcat会话。默认模式。

  • REDIS——仅将属性存储到Redis中。

updateMode——属性更新模式。有两种模式可用:

  • DEFAULT——会话属性仅通过setAttribute方法存储到Redis中。默认模式。

  • AFTER_REQUEST——每次请求后,所有会话属性都存储在Redis中。

Step 2

将两个jars复制到TOMCAT_BASE/lib目录中

·         redisson-all-3.10.6.jar

o    for Tomcat 6.x: redisson-tomcat-6-3.10.6.jar

o    for Tomcat 7.x: redisson-tomcat-7-3.10.6.jar

o    for Tomcat 8.x: redisson-tomcat-8-3.10.6.jar

o    for Tomcat 9.x: redisson-tomcat-9-3.10.6.jar

使用Redis Tomcat Manager进行Tomcat群集的原因是,如果你期望大量的Web流量,即你的站点是否正在扩展,或者你只是想获得更多帮助以增加负载,从而提高可用性


Redisson还能做什么? 

基于RedisTomcat会话管理不是Redisson能够提供的唯一功能。完成集群项目后,请检查它的其他好处。Redisson可以提供分布式Java应用程序。它提供了不同的缓存实现,例如JCache APIHibernate 2nd Level CacheSpring Cache。它支持数据库的读/写缓存,ExecutorServiceScheduledExecutorService的分布式实现,以及基于JavaMapReduce编程,以支持Redis中存储的“大量数据”。

总体而言,Redisson可以做很多事情。Tomcat会话管理看似不堪重负,但可以通过Redisson轻松解决。另外,你可能还会发现许多其他功能,这些功能可以满足你的需求。

 

感谢阅读!

最后奉上近期整理出来的一套完整的java架构思维导图,分享给大家对照知识点参考学习。

基于Redis的Tomcat会话管理_第1张图片