You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
redisson/redisson-tomcat/README.md

81 lines
3.9 KiB
Markdown

8 years ago
Redis based Tomcat Session Manager
===
8 years ago
6 years ago
Stores session of [Apache Tomcat](http://tomcat.apache.org) in Redis and allows to distribute requests across a cluster of Tomcat servers. Implements non-sticky session management backed by Redis.
8 years ago
7 years ago
Supports Apache Tomcat 6.x, 7.x, 8.x, 9.x
8 years ago
6 years ago
<sub>Consider __[Redisson PRO](https://redisson.pro)__ version for advanced features and support by SLA.</sub>
6 years ago
8 years ago
Advantages
===
8 years ago
Current implementation differs from any other Redis based Tomcat Session Manager in terms of efficient storage and optimized writes. Each session attribute is written into Redis during each `HttpSession.setAttribute` invocation. While other solutions serialize whole session each time.
8 years ago
8 years ago
Usage
===
8 years ago
6 years ago
### 1. Add `RedissonSessionManager`
Add `RedissonSessionManager` into `tomcat/conf/context.xml`
8 years ago
8 years ago
```xml
<Manager className="org.redisson.tomcat.RedissonSessionManager"
6 years ago
configPath="${catalina.base}/redisson.conf" readMode="REDIS" updateMode="DEFAULT"/>
8 years ago
```
6 years ago
`readMode` - read Session attributes mode. Two modes are available:
6 years ago
* `MEMORY` - stores attributes into local Tomcat Session and Redis. Further Session updates propagated to local Tomcat Session using Redis-based events.
* `REDIS` - stores attributes into Redis only. Default mode.
7 years ago
<br/>
6 years ago
`broadcastSessionEvents` - if `true` then `sessionCreated` and `sessionDestroyed` events broadcasted across all Tomcat instances and trigger all registered HttpSessionListeners. Default is `false`.
`updateMode` - Session attributes update mode. Two modes are available:
7 years ago
* `DEFAULT` - session attributes are stored into Redis only through setAttribute method. Default mode.
* `AFTER_REQUEST` - all session attributes are stored into Redis after each request.
7 years ago
<br/>
8 years ago
`configPath` - path to Redisson JSON or YAML config. See [configuration wiki page](https://github.com/redisson/redisson/wiki/2.-Configuration) for more details.
8 years ago
6 years ago
#### Shared Redisson instance
6 years ago
`RedissonSessionManager` is created per Web Application and thus creates own Redisson instance. For multiple applications, which use the same Redis setup, amount of Redisson instances could be reduced using JNDI registry:
6 years ago
1. Add shared redisson instance produced by `JndiRedissonFactory` into `tomcat/conf/server.xml` in `GlobalNamingResources` tag area:
```xml
<GlobalNamingResources>
6 years ago
<Resource name="bean/redisson"
auth="Container"
6 years ago
factory="org.redisson.JndiRedissonFactory"
6 years ago
configPath="${catalina.base}/conf/redisson.yaml"
closeMethod="shutdown"/>
6 years ago
</GlobalNamingResources>
```
2. Add `JndiRedissonSessionManager` with resource link to redisson instance into `tomcat/conf/context.xml`
```xml
<ResourceLink name="bean/redisson"
global="bean/redisson"
type="org.redisson.api.RedissonClient" />
<Manager className="org.redisson.tomcat.JndiRedissonSessionManager"
readMode="REDIS"
jndiName="bean/redisson" />
```
6 years ago
### 2. Copy two jars into `TOMCAT_BASE/lib` directory:
8 years ago
6 years ago
[redisson-all-3.10.6.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=3.10.6&e=jar)
8 years ago
6 years ago
for Tomcat 6.x
6 years ago
[redisson-tomcat-6-3.10.6.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=3.10.6&e=jar)
6 years ago
for Tomcat 7.x
6 years ago
[redisson-tomcat-7-3.10.6.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=3.10.6&e=jar)
6 years ago
for Tomcat 8.x
6 years ago
[redisson-tomcat-8-3.10.6.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=3.10.6&e=jar)
6 years ago
for Tomcat 9.x
6 years ago
[redisson-tomcat-9-3.10.6.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-9&v=3.10.6&e=jar)
8 years ago