Hi All,

I have design question about Ignite web session clustering.


I have springboot app with UI. It clustered app ie multiple instance of 
springboot app behind the load balancer. I am using 
org.apache.ignite.cache.websession.WebSessionFilter()to intercept request and 
create\manage session for any incoming request.



I have 2 option



1.      Embed the ignite node inside springboot app. So have these embedded 
ignite node (on each springboot JVM) be part of cluster. This way request 
session is replicated across the entire springboot cluster. On load balancer I 
don't have to maintain the sticky connection. The request can go to any app in 
round robin or least load algorithm.



Few considerations

a.      Architect is simple. I don't have worry about the cache being down etc.

b.      Now the cache being embedded, its using CPU and memory from app jvm. It 
has potential of starving my app of resources.



2.      Have ignite cluster running outside of app JVM. So now I run client 
node in springboot app and connect to main ignite cluster.



Few considerations



a.      For any reason, if the client node cannot connect to main ignite 
cluster. Do I have to manage the session manually and then push those session 
manually at later point to the ignite cluster??

b.      If I manage session locally I will need to have sticky connection on 
the load balancer. Which I want to avoid if possible.

     *   I am leaning to approach 2, but want to make it simple. So if client 
node cannot create session (override 
org.apache.ignite.cache.websession.WebSessionFilter()) it redirects user to 
page indicating the app is down or to another app node in the cluster.


Are there any other design approach I can take?
Am I overlooking anything in either approach?

If you have dealt with it, please share your thoughts.

Thanks in advance.
Shri

This e-mail and its contents (to include attachments) are the property of 
National Health Systems, Inc., its subsidiaries and affiliates, including but 
not limited to Rx.com Community Healthcare Network, Inc. and its subsidiaries, 
and may contain confidential and proprietary or privileged information. If you 
are not the intended recipient of this e-mail, you are hereby notified that any 
unauthorized disclosure, copying, or distribution of this e-mail or of its 
attachments, or the taking of any unauthorized action based on information 
contained herein is strictly prohibited. Unauthorized use of information 
contained herein may subject you to civil and criminal prosecution and 
penalties. If you are not the intended recipient, please immediately notify the 
sender by telephone at 800-433-5719 or return e-mail and permanently delete the 
original e-mail.

Reply via email to