If you want to go with redis in HA environment. You should opt redis
sentinel over master-slave architecture.
On Tue 19 Feb, 2019, 12:29 AM Herb Burnswell On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
> ch...@christopherschultz.net> wrote:
>
> > -BEGIN PGP SIGNED MESSAGE-
> > Hash: SHA256
> >
> > Herb,
> >
> > On 2/14/19 12:41, Herb Burnswell wrote:
> > > Tomcat 8.5.23 RHEL 7.5
> > >
> > > We are looking to set up session management via Redisson to offload
> > > the CPU consumption of using Tomcat's built in clustering session
> > > management. We have CPU licensing limits and need to conserve as
> > > much CPU as possible.
> >
> > Dumb question: aren't you just going to move the CPU cycles to another
> > system?
> >
>
> Thanks for the reply. Short answer, yes. But that is the idea. We can
> only use 2 CPU's per application node (3 nodes) with our licensing
> structure so we do not want to take cycles away from the application to
> manage sessions.
>
>
> > Another dumb question: do you actually need clustering?
> >
>
> If I'm using the term correctly, yes. The idea would be for HA
> functionality; If users were connected to node 3 and the node failed for
> some reason, their session would be picked up by node 1 or 2
> uninterrupted. Sorry if I confused the intent.
>
>
> >
> > > I have never set up a configuration this way, however I have Redis
> > > set up and running as 1 Master, 1 Slave. I seemingly just need to
> > > point our application to it. I have read this doc on how to:
> > >
> > > https://github.com/redisson/redisson/tree/master/redisson-tomcat
> > >
> > > It seems pretty straight forward except for the redisson.conf
> > > configuration:
> > >
> > > Add RedissonSessionManager into tomcat/conf/context.xml
> > >
> > > > > configPath="${catalina.base}/redisson.conf" readMode="REDIS"
> > > updateMode="DEFAULT"/>
> >
> > I would do this in the application's context.xml file instead of the
> > global/default one. That means modifying the application's
> > META-INF/context.xml file, or, if you deploy via files from outside
> > your WAR/dir application, then conf/[engine]/[hostname]/[appname].xml.
> >
>
> Yes, this is requiring the editing a application specific xml file.
>
>
> >
> > > I am more familiar with YAML so plan on configuring the
> > > redisson.conf as such. I have read the referenced configuration
> > > wiki page:
> > >
> > > https://github.com/redisson/redisson/wiki/2.-Configuration
> > >
> > > However, it has a great deal of options and I'm not sure what is
> > > and is not needed.
> > >
> > > I am reaching out here on the Tomcat user group to see if anyone
> > > else is using Redisson for session management and if maybe I can
> > > get some guidance on a basic redisson.conf configuration. I'd also
> > > be interested in comments on if there are better options or things
> > > to watch out for.
> >
> > I don't have any experience with either Redis or Redisson, but what is
> > wrong with the default/sample configuration you have provided above?
> >
>
> I have through much trial and error been using this config:
>
> {
>"masterSlaveServersConfig":{
> "idleConnectionTimeout":1,
> "connectTimeout":1,
> "timeout":3000,
> "retryAttempts":3,
> "retryInterval":1500,
> "failedSlaveReconnectionInterval":3000,
> "failedSlaveCheckInterval":6,
> "password":"",
> "subscriptionsPerConnection":5,
> "clientName":true,
> "subscriptionConnectionMinimumIdleSize":1,
> "subscriptionConnectionPoolSize":50,
> "slaveConnectionMinimumIdleSize":32,
> "slaveConnectionPoolSize":64,
> "masterConnectionMinimumIdleSize":32,
> "masterConnectionPoolSize":64,
> "readMode":"SLAVE",
> "subscriptionMode":"SLAVE",
> "slaveAddresses":[
> " ],
> "masterAddress":":6379",
> "database":0
>},
>"threads":0,
>"nettyThreads":0,
>"transportMode":"NIO"
> }
>
> However, I am getting a couple exceptions and am not sure what might be the
> issue:
>
> INFO | jvm 1| main| 2019/02/18 10:09:33.068 | Feb 18, 2019
> 10:09:33 AM org.apache.catalina.core.StandardContext startInternal
> INFO | jvm 1| main| 2019/02/18 10:09:33.068 | SEVERE: The session
> manager failed to start
> INFO | jvm 1| main| 2019/02/18 10:09:33.068 |
> org.apache.catalina.LifecycleException: Failed to start component
> [org.redisson.tomcat.RedissonSessionManager[]]
> INFO | jvm 1| main| 2019/02/18 10:09:33.068 | at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
> INFO | jvm 1| main| 2019/02/18 10:09:33.068 | at
>
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5224)
> INFO | jvm 1| main| 2019/02/18 10:09:33.068 | at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> INFO | jvm 1| main| 2019/02/18 10:09:33.068 |