Re: Tomcat session management with Redisson
On Mon, Feb 18, 2019 at 11:13 AM Harpreet Sandhu wrote: > If you want to go with redis in HA environment. You should opt redis > sentinel over master-slave architecture. > Thanks Harpreet. I did switch to using the sentinel configuration as I have: sentinel 1 -- sentinel 2 sentinel 3 redis master --- redis slave However, the application says it cannot connect to the sentinel servers: INFO | jvm 1| main| 2019/02/18 15:23:11.722 | [localhost-startStop-1] WARN org.redisson.connection.SentinelConnectionManager - Can't connect to sentinel server. Unable to connect to: node1:26379 INFO | jvm 1| main| 2019/02/18 15:23:11.722 | [localhost-startStop-1] WARN org.redisson.connection.SentinelConnectionManager - Can't connect to sentinel server. Unable to connect to: node2:26379 INFO | jvm 1| main| 2019/02/18 15:23:11.722 | [localhost-startStop-1] WARN org.redisson.connection.SentinelConnectionManager - Can't connect to sentinel server. Unable to connect to: node3:26379 I posted a question on the redis-db google group as I thought it may not be appropriate for this Tomcat User Group: https://groups.google.com/forum/#!topic/redis-db/-mTTnahSgZo If you have experience with the Tomcat --> Sentinel connectivity, I'd be grateful for any guidance.. thanks, HB > On Tue 19 Feb, 2019, 12:29 AM Herb Burnswell wrote: > > > 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, > > "subscriptionCo
Re: Tomcat session management with Redisson
On Mon, Feb 18, 2019 at 12:27 PM John Dale wrote: > Regarding clustering and state recovery, I opted some time ago to > store session information in the database - I prefer full control over > session state for security/obscurity reasons. > > Load balancing is straightforward this way. > > I'm not sure I would ever need more than 2 nodes for my purposes, > though, since Java can address such a huge memory space. It's an > amazing computing environment now compared to what we had 20 years > ago. > Thanks John, this is my motivation. I really want the insight and load balancing capability. Do you use Redis for the DB or other? HB > > On 2/18/19, Christopher Schultz wrote: > > -BEGIN PGP SIGNED MESSAGE- > > Hash: SHA256 > > > > Herb, > > > > On 2/18/19 13:59, Herb Burnswell wrote: > >> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz < > >> ch...@christopherschultz.net> wrote: > >> > >> 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. > > > > Okay, so if you move the session-management to another machine, you > > don't have to pay app-license fees for the session-management server? > > Fair enough. > > > > Just remember that you still need code "managing" sessions from your > > Tomcat note to your Redisson server. I can't imagine that the > > Tomcat->Resisson code would be any less complicated than the Tomcat -> > > Tomcat code. You might want to validate that assumption before > > committing any resources toward solving a problem by adding complexity > > to your deployments. > > > >> 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. > > > > That's exactly what you will get. > > > > If you do NOT use clustering, a failed node will require the users who > > were on the failed node to re-login to a surviving node. Only you can > > determine whether that is an acceptable consequence of a failed node > > for your users and application. I, as well as many others, have > > decided that fail-over is such a rare event and logins such a > > non-issue that introducing the complexity of clustering is not justified > > . > > > > 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 > > > > > className="org.redisson.tomcat.RedissonSessionManager" > > 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. > > > > Good. > > > > 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:
Re: Tomcat session management with Redisson
This might be what you're looking for: Unsubscription: Send a blank email to users-unsubscr...@tomcat.apache.org http://tomcat.apache.org/lists.html On 2/18/19, Malith Pamuditha Fernando wrote: > How to unsubscribe this? > > Thank You > > Regards > Malith Pamuditha Fernando > Director > RevPort (Pvt.) Ltd. > malith.ferna...@revport.net | +94 713 76 92 17 > > > > > From: John Dale > Sent: Tuesday, February 19, 2019 1:57:10 AM > To: Tomcat Users List > Subject: Re: Tomcat session management with Redisson > > Regarding clustering and state recovery, I opted some time ago to > store session information in the database - I prefer full control over > session state for security/obscurity reasons. > > Load balancing is straightforward this way. > > I'm not sure I would ever need more than 2 nodes for my purposes, > though, since Java can address such a huge memory space. It's an > amazing computing environment now compared to what we had 20 years > ago. > > > > On 2/18/19, Christopher Schultz wrote: >> -BEGIN PGP SIGNED MESSAGE- >> Hash: SHA256 >> >> Herb, >> >> On 2/18/19 13:59, Herb Burnswell wrote: >>> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz < >>> ch...@christopherschultz.net> wrote: >>> >>> 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. >> >> Okay, so if you move the session-management to another machine, you >> don't have to pay app-license fees for the session-management server? >> Fair enough. >> >> Just remember that you still need code "managing" sessions from your >> Tomcat note to your Redisson server. I can't imagine that the >> Tomcat->Resisson code would be any less complicated than the Tomcat -> >> Tomcat code. You might want to validate that assumption before >> committing any resources toward solving a problem by adding complexity >> to your deployments. >> >>> 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. >> >> That's exactly what you will get. >> >> If you do NOT use clustering, a failed node will require the users who >> were on the failed node to re-login to a surviving node. Only you can >> determine whether that is an acceptable consequence of a failed node >> for your users and application. I, as well as many others, have >> decided that fail-over is such a rare event and logins such a >> non-issue that introducing the complexity of clustering is not justified >> . >> >>>>>> 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 >>>>>> >>>>>> >>>>> className="org.redisson.tomcat.RedissonSessionManager" >>>>>> configPath="${catalina.base}/redisson.conf" readMode="REDIS" >>>>>> updateMode="DEFAULT"/> >&
Re: Tomcat session management with Redisson
How to unsubscribe this? Thank You Regards Malith Pamuditha Fernando Director RevPort (Pvt.) Ltd. malith.ferna...@revport.net | +94 713 76 92 17 From: John Dale Sent: Tuesday, February 19, 2019 1:57:10 AM To: Tomcat Users List Subject: Re: Tomcat session management with Redisson Regarding clustering and state recovery, I opted some time ago to store session information in the database - I prefer full control over session state for security/obscurity reasons. Load balancing is straightforward this way. I'm not sure I would ever need more than 2 nodes for my purposes, though, since Java can address such a huge memory space. It's an amazing computing environment now compared to what we had 20 years ago. On 2/18/19, Christopher Schultz wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Herb, > > On 2/18/19 13:59, Herb Burnswell wrote: >> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz < >> ch...@christopherschultz.net> wrote: >> >> 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. > > Okay, so if you move the session-management to another machine, you > don't have to pay app-license fees for the session-management server? > Fair enough. > > Just remember that you still need code "managing" sessions from your > Tomcat note to your Redisson server. I can't imagine that the > Tomcat->Resisson code would be any less complicated than the Tomcat -> > Tomcat code. You might want to validate that assumption before > committing any resources toward solving a problem by adding complexity > to your deployments. > >> 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. > > That's exactly what you will get. > > If you do NOT use clustering, a failed node will require the users who > were on the failed node to re-login to a surviving node. Only you can > determine whether that is an acceptable consequence of a failed node > for your users and application. I, as well as many others, have > decided that fail-over is such a rare event and logins such a > non-issue that introducing the complexity of clustering is not justified > . > >>>>> 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 >>>>> >>>>> >>>> className="org.redisson.tomcat.RedissonSessionManager" >>>>> 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. > > Good. > >>>>> I am more familiar with YAML so plan on configuring the >>>>> redisson.conf as such. I have read the referenced >>>>> configuration wiki pag
Re: Tomcat session management with Redisson
Regarding clustering and state recovery, I opted some time ago to store session information in the database - I prefer full control over session state for security/obscurity reasons. Load balancing is straightforward this way. I'm not sure I would ever need more than 2 nodes for my purposes, though, since Java can address such a huge memory space. It's an amazing computing environment now compared to what we had 20 years ago. On 2/18/19, Christopher Schultz wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Herb, > > On 2/18/19 13:59, Herb Burnswell wrote: >> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz < >> ch...@christopherschultz.net> wrote: >> >> 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. > > Okay, so if you move the session-management to another machine, you > don't have to pay app-license fees for the session-management server? > Fair enough. > > Just remember that you still need code "managing" sessions from your > Tomcat note to your Redisson server. I can't imagine that the > Tomcat->Resisson code would be any less complicated than the Tomcat -> > Tomcat code. You might want to validate that assumption before > committing any resources toward solving a problem by adding complexity > to your deployments. > >> 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. > > That's exactly what you will get. > > If you do NOT use clustering, a failed node will require the users who > were on the failed node to re-login to a surviving node. Only you can > determine whether that is an acceptable consequence of a failed node > for your users and application. I, as well as many others, have > decided that fail-over is such a rare event and logins such a > non-issue that introducing the complexity of clustering is not justified > . > > 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 > > className="org.redisson.tomcat.RedissonSessionManager" > 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. > > Good. > > 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,
Re: Tomcat session management with Redisson
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Herb, On 2/18/19 13:59, Herb Burnswell wrote: > On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > > 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. Okay, so if you move the session-management to another machine, you don't have to pay app-license fees for the session-management server? Fair enough. Just remember that you still need code "managing" sessions from your Tomcat note to your Redisson server. I can't imagine that the Tomcat->Resisson code would be any less complicated than the Tomcat -> Tomcat code. You might want to validate that assumption before committing any resources toward solving a problem by adding complexity to your deployments. > 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. That's exactly what you will get. If you do NOT use clustering, a failed node will require the users who were on the failed node to re-login to a surviving node. Only you can determine whether that is an acceptable consequence of a failed node for your users and application. I, as well as many others, have decided that fail-over is such a rare event and logins such a non-issue that introducing the complexity of clustering is not justified . 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 >>> className="org.redisson.tomcat.RedissonSessionManager" 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. Good. 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: Okay, let's take a look: >> 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|
Re: Tomcat session management with Redisson
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 |
Re: Tomcat session management with Redisson
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":[ ":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 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) INFO | jvm 1| main| 2019/02/18 10:09:33.068 | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) INFO | jvm 1| main| 2019/02/18 10:09:33.068 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) INFO | jvm 1| main| 2019/02/18 10:09:33.068 | at java
Re: Tomcat session management with Redisson
-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? Another dumb question: do you actually need clustering? > 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. > 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? - -chris -BEGIN PGP SIGNATURE- Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlxnHysACgkQHPApP6U8 pFhkyRAAhq0Rw6laOS4mUAgtjWhCW8tvsrfvWmUtQKu0TTmdDuoL1OUEYBiAl45l TBF7sxjtd8Olk9gEqGdzD9srZUF1y9/ajzok4KGZrfDEHKnoqoXPQaRFTT7tWpH6 76uOj2KHzaTdgtz6qVdGdJKJ97VY0pMy/+4AMPwO/I3tygah1MfIGqKjbJ1zZr0O ZT0CRBgRb2pUn5nZTtXyozL0J+3MIRGPC35il86Wb+Wkjw4ks3S+gxTe3Cl7MCO7 wfu8WAI+gKEapdC0Aj9esu/HueYMGgdj3GYvTJCivqg9TGtPpgMaEe09o1VjfMmV JZu4aCjaDq82ZxLlIKFLKkDhlgYhFhnLVYXN1H+2SdITabprpWw+KDdx55jVE3yt W+ZQR/dFqDVvp5uKU1u/2BZACjXn3bRrkvif4bKQJuWpFBoXT6fBJ/37eYuiS58n 7omBRJoGzpcKCOjij1GhwtePKibo9EBm+r/RsGZnxTQHnHKslCwp+TcS5nZFmw9H Y1O0jtIyhcMp7o1mAsuErKK6OSu7bREe+4NrgwJ7OCSXU42keU/fXK2Z8u/MAJE1 uRDyqSk+VbNxP+MCbShr89QD6XVAFoKnVk5QDdEiUZ5asxCbhl5UADNi9P3Nzasr fK7ae3S8kD98k1P2OvguPqnwbUpHd7tVrlwOrs/8LF8w+PeSJWU= =XhoF -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org