专栏首页若是烟花Tomcat7 Redis Session 共享

Tomcat7 Redis Session 共享

关于负载均衡,导致需要实现Session共享。大概有两个解决办法:

  • Nginx里面是有 ip_hash。但是同一局域网发出的请求,通常会是相同的IP地址。
  • 实现不同实例之间Session共享

Tomcat Session 共享

https://github.com/jcoleman/tomcat-redis-session-manager

配置

  1. 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 --> />
  1. 将以下jar包,放到 Tomcat 下面的 lib文件夹
  • tomcat-redis-session-manager-VERSION.jar
  • jedis-2.5.2.jar
  • commons-pool2-2.2.jar

构建 tomcat-redis-session-manager

另外两个包比较容易找到。下面自己构建(之前网上找到都会报错)

  1. 克隆仓库
git clone git@github.com:jcoleman/tomcat-redis-session-manager.git
  1. 修改配置文件
# 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       //}
  1. 构建
gradle build --stacktrace
  1. 得到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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git 分布式版本控制 -- (1、基本使用)

    一个很适合入门的教程。即使你不知道什么叫版本控制,看完也应该能会使用Git了。笔记以后再做吧。

    lpe234
  • Laravel框架学习 -- php artisan down/up

    由于某种原因,公司整体框架由python的flask框架,转换为php的laravel。在断断续续几个月的时间里,边继续写着flask框架,边学着laravel...

    lpe234
  • 七日Python之路--第十天

    试用一下,目前VIM只是当做记事本来用,还有好多命令不熟悉,基本就把VIN浪费了。由于之前Java使用Eclipse,这个IDE貌似跟那个差不多,试试吧。官网下...

    lpe234
  • lua执行redis脚本找不到脚本的问题

    有个项目,利用redis做统计功能。一向对性能追求极致的我怎么能随便写几条redis的统计语句就应付呢。于是我打算使用lua脚本把用到的几条redis指令封装一...

    用户7634691
  • java学习与应用(4.7)--redis、maven和说明

    redis一款NOSQL(not only sql)非关系型数据库(键值对数据库)(对关系型数据库进行弥补),数据之前没有关联,存储在内存中更快(关系型数据库存...

    嘘、小点声
  • 我用Python画了个“一拳超人”

    Turtle库是Python中一个非常好玩的画图小工具。可以想象一个小乌龟在纸上爬,爬出了一个有趣的图案。为了熟悉Turtle的使用,我用它画了个“一拳超人”!

    三猫
  • 不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪

    最近由于工作比较忙,所以会转载一些大佬们的优秀文章。今天有些时间,想着写点什么呢?快到万圣节了既然秉承着寓教于乐的python学习态度,不如就用Python画一...

    猴哥yuri
  • 【编程课堂】海龟作图

    0、前言 turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟作图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初...

    Crossin先生
  • 【每周一坑】阿姆斯特朗数

    这是一个很经典的编程练习题: 如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋数、自幂数)。 如 407 = 43 + 03 + 73 ...

    Crossin先生
  • 七夕如何向心爱的ta表白,看这里

    又双叒叕到了一年一度的中国传统情人节——七夕,那么思考一下自己有对象了吗,是否还是单身,或者想清楚怎么跟心动的ta表达心意了吗?不知道,那来看看如何利用我们的技...

    用户7466307

扫码关注云+社区

领取腾讯云代金券