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主机同理) ![](https://i-blog.csdnimg.cn/direct/d7190f1fd89246749a622100eb2eda11.png) 保存退出,重新启动 修改 nginx 配置: \[root@Nginx \~\]# vim /usr/local/nginx/conf.d/vhosts.conf ![](https://i-blog.csdnimg.cn/direct/d8485f3eb94146e1b1694ff42c31bc8a.png) **最后测试:** ![](https://i-blog.csdnimg.cn/direct/c6b357932f5644d0b0009cad73f8e170.png) 停止60 的服务 ![](https://i-blog.csdnimg.cn/direct/41422489958f46c9b184574cce4444e5.png) ![](https://i-blog.csdnimg.cn/direct/bf36872254124ca18e8c1f7346b61851.png) 地址主机切换成50 ,并且数据还会保存并未更新。

相关推荐
观音山保我别报错8 分钟前
网络层 IP协议(第一部分)
服务器·网络·tcp/ip
爱睡觉的王宇昊31 分钟前
十四、【ESP32全栈开发指南:搭建轻量级HTTP服务器】
服务器·网络协议·http
小灰灰搞电子1 小时前
STM32+rt-thread判断是否联网
服务器·网络·stm32
2501_915909062 小时前
提升iOS开发效率:通过KeyMob等工具进行全面性能分析与调试
websocket·网络协议·tcp/ip·http·网络安全·https·udp
未来之窗软件服务2 小时前
thinkphp 一个系统在同一个域名下,一个文件夹下如何区分多站点——穷人的精致规划——仙盟创梦IDE
服务器·网络·数据库·仙盟创梦ide·东方仙盟·东方仙盟精致规划
chian-ocean3 小时前
深入理解 TCP 套接字:Socket 编程入门教程
网络·网络协议·tcp/ip
加油搞钱加油搞钱3 小时前
鹰盾Win播放器作为专业的视频安全解决方案,除了硬件翻录外还有什么呢?
网络·安全·音视频·视频加密·鹰盾播放器·鹰盾加密器
cetcht88883 小时前
从隐患频发走向精准防控:配电室电力安全监控系统
网络·人工智能
破刺不会编程3 小时前
谈文件系统
linux·运维·服务器·网络
Oliverro5 小时前
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
网络·人工智能