Tomcat7 Redis Session 共享
时间:2022-07-22
本文章向大家介绍Tomcat7 Redis Session 共享,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
关于负载均衡,导致需要实现Session共享。大概有两个解决办法:
- Nginx里面是有 ip_hash。但是同一局域网发出的请求,通常会是相同的IP地址。
- 实现不同实例之间Session共享
Tomcat Session 共享
https://github.com/jcoleman/tomcat-redis-session-manager
配置
- Tomcat配置 context.xml
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost" <!-- optional: defaults to "localhost" -->
port="6379" <!-- optional: defaults to "6379" -->
database="0" <!-- optional: defaults to "0" -->
maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) -->
sessionPersistPolicies="PERSIST_POLICY_1,PERSIST_POLICY_2,.." <!-- optional -->
sentinelMaster="SentinelMasterName" <!-- optional -->
sentinels="sentinel-host-1:port,sentinel-host-2:port,.." <!-- optional --> />
- 将以下jar包,放到 Tomcat 下面的 lib文件夹
- tomcat-redis-session-manager-VERSION.jar
- jedis-2.5.2.jar
- commons-pool2-2.2.jar
构建 tomcat-redis-session-manager
另外两个包比较容易找到。下面自己构建(之前网上找到都会报错)
- 克隆仓库
git clone git@github.com:jcoleman/tomcat-redis-session-manager.git
- 修改配置文件
# vim ~/tomcat-redis-session-manager/build.gradle
# 增加 49, 注释57-59
47 signing {
48 sign configurations.archives
49 required = false
50 }
51
52 uploadArchives {
53 repositories {
54 mavenDeployer {
55 beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
56
57 //repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
58 // authentication(userName: sonatypeUsername, password: sonatypePassword)
59 //}
60 //repository(url: "https://oss.sonatype.org/content/repositories/snapshots") {
61 // authentication(userName: sonatypeUsername, password: sonatypePassword)
62 //}
- 构建
gradle build --stacktrace
- 得到jar包
build
├── libs
│ ├── tomcat-redis-session-manager-2.0.0-javadoc.jar
│ ├── tomcat-redis-session-manager-2.0.0-sources.jar
│ └── tomcat-redis-session-manager-2.0.0.jar
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现扫一扫识别数字功能
- 通过SSH连接本地linux虚拟机的过程记录
- 实现Android 获取cache缓存的目录路径的方法
- Android 消息分发使用EventBus的实例详解
- 详解Android实现定时器的几种方法
- Android 实现带进度条的WebView的实例
- Android单元测试之对Activity的测试示例
- Android开发之手势检测及通过手势实现翻页功能的方法
- Android开发之CheckBox的简单使用与监听功能示例
- Android将图片上传到php服务器的实例代码
- Android图片识别应用详解
- Android 列表形式的切换的示例代码
- Android 拍照并对照片进行裁剪和压缩实例详解
- Android 多线程实现重复启动与停止的服务
- Android 简单的图片查看器源码实现