tomcat的session会话保持

1.Memcached****简介


Memcached 只支持能序列化的数据类型,不支持持久化,基于 Key-Value 的内存缓存系统。
memcached虽然没有像redis 所具备的数据持久化功能,比如 RDB 和 AOF 都没有,但是可以通过做集群同步的方式, 让各memcached 服务器的数据进行同步,从而实现数据的一致性,即保证各 memcached 的数据是一样的,即使有任何一台 memcached 发生故障,只要集群中有一台 memcached 可用就不会出现数据丢失,当其他memcached 重新加入到集群的时候 , 可以自动从有数据的 memcached 当中自动获取数据并提供服务。
Memcached 借助了操作系统的 libevent 工具做高效的读写。 libevent 是个程序库,它将 Linux 的 epoll、 BSD类操作系统的 kqueue 等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥高性能。memcached 使用这个 libevent 库,因此能在 Linux 、 BSD 、 Solaris 等操作系统上发挥其高性能Memcached 支持最大的内存存储对象为 1M ,超过 1M 的数据可以使用客户端压缩或拆分报包放到key中,比较大的数据在进行读取的时候需要消耗的时间比较长, memcached 最适合保存用户的session实现 session 共享Memcached存储数据时 , Memcached 会去申请 1MB 的内存 , 把该块内存称为一个 slab, 也称为一个 page Memcached 支持多种开发语言,
包括: JAVA,C,Python,PHP,C#,Ruby,Perl 等

1.memcached****的安装与启动
[root@tomcat ~]# yum install memcached -y
[root@tomcat ~]# vim /etc/sysconfig/memcached

修改里面的参数:(60主机同理)

[root@tomcat ~]# systemctl enable --now memcached
[root@tomcat ~]# netstat -antlupe | grep memcache
2.memcached****操作命令

五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:

set
add
replace
get
delete
#前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令,都使用如下所示的语法:
command <key> <flags> <expiration time> <bytes>

参数说明如下:
command set/add/replace
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节数
value 存储的值(始终位于第二行)
#增加key,过期时间为秒,bytes为存储数据的字节数
add key flags exptime bytes

2.session****共享服务器


msm ( memcached session manager )提供将 Tomcat 的 session 保持到 memcached 可以实现高可用。

1.配置所需参数

(可在官网 https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration 查照找)

kryo-3.0.3.jar
asm-5.2.jar
objenesis-2.6.jar
reflectasm-1.11.9.jar
minlog-1.3.1.jar
kryo-serializers-0.45.jar
msm-kryo-serializer-2.3.2.jar
memcached-session-manager-tc9-2.3.2.jar
spymemcached-2.12.3.jar
memcached-session-manager-2.3.2.jar

[root@tomcat-1 ~]# vim /usr/local/tomcat/conf/context.xml(60主机同理)

保存退出,重新启动
修改 nginx 配置:
[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

最后测试:

停止60 的服务


地址主机切换成50 ,并且数据还会保存并未更新。

相关推荐
docuxu几秒前
软考-信息安全-基础知识
网络·安全·web安全
Ja_小浩12 分钟前
【计算机网络】socket编程 && 几个网络命令
服务器·网络·计算机网络
马丁的代码日记17 分钟前
深入剖析 Netty 中 TCP 粘包和拆包问题的解决之道
服务器·网络·tcp/ip
小白电脑技术30 分钟前
OpenWRT有三个地方设置DNS,究竟设置哪个地方会更好?
网络
姜西西_2 小时前
[网络编程]通过java用TCP实现网络编程
java·网络·tcp/ip
萌新小码农‍3 小时前
matlab基本语法
网络·数据结构·matlab
Feng_Sean3 小时前
01_Python基本语法
开发语言·网络·python
乱搭巴士3 小时前
【IP网址正则表达式匹配】java,IPv4网址正则表达式匹配
java·网络协议·tcp/ip
weixin_586062024 小时前
网络运维故障处理案例
运维·网络·智能路由器
小白爱电脑4 小时前
路由器WAN口和LAN口有什么不一样?
网络·智能路由器