Hi Shammi, Reason we need sticky session is that otherwise we need very fast session replication across nodes, which is very hard and unscalable problem ( which is another instance of "reliable totally ordered multicast").
Otherwise, when a node hit a node and come back, he might be sent to a different node, and session would not be valid. If we are to remove sticky session we have to solve above problem. One solution may be to make the session time limited, and force the client to recreate the session time to time ( e.g. once every 10 mins). Then load get redistributed --Srinath On Wed, Sep 7, 2016 at 7:05 AM, Sumedha Rubasinghe <[email protected]> wrote: > Resending my reply as it got blocked. > > On Wed, Sep 7, 2016 at 2:34 AM, Shammi Jayasinghe <[email protected]> wrote: > >> Hi, >> >> WSO2 always asks to enable sticky sessions in a distributed setup which >> has multiple key manager nodes. According to my understanding, We needs to >> have this since there are multiple calls going back and forth between >> Gateway and the Key manager node when it comes to do key generation and >> other token related stuff. >> >> Having sticky sessions always needs to be enabled always, Introduces >> another problem when balancing the load as in following example. >> >> Eg: We have 5 GW servers in a cluster. There are 1000 users using this >> system. We declare 1 GW server can handle 1000 TPS as max. So, the total >> Max Capacity of the system, We say as 5000 TPS. >> >> In a particular time, There are 5 users generating traffic like 800 TPS >> and other 995 users generates only 1 TPS. So, as the total it is under the >> Max capacity, >> >> 800 x 5 + 995 = 4995 >> >> But, with the Sticky sessions, if these 5 top users made the initial >> session with a single GW node, the load to that server will be 4000 TPS >> which exhausting the resources. >> >> So, Having Sticky sessions is introducing a problem with load balancing. >> > > >> >> > Shammi, > I don't see a generic way of dealing with this unless we use a custom load > balancer logic. > > But for this to happen (in a RR with 5 G/Ws), the top 5 users need to > initiate the calls in a very specific point. Isn't it? > i.e > 1st top user connects and get sticked to GW1 > 4 other users connect to GW 2,3,4,5 respectively > 2nd top user connects and RR directs him to GW1 > > Is this a common occurrence @ at customer deployment? > > Solution I see is, > One the system is in equilibrium (after warm up), G/W's talking to each > other and balancing load. But this requires talking back to LB to inform > the new routing logic after balancing. > > > > >> >> Is there any possibility to avoid this sticky session requirement by >> introducing a way to do token related operations in a single call from GW >> to KM ? >> >> >> Thanks >> shammi >> >> -- >> Best Regards, >> >> * Shammi Jayasinghe* >> >> >> *Technical Lead* >> *WSO2, Inc.* >> *+1-812-391-7730 <%2B1-812-391-7730>* >> *+1-812-327-3505 <%2B1-812-327-3505>* >> >> *http://shammijayasinghe.blogspot.com >> <http://shammijayasinghe.blogspot.com>* >> >> > > > -- > /sumedha > m: +94 773017743 > b : bit.ly/sumedha > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- ============================ Srinath Perera, Ph.D. http://people.apache.org/~hemapani/ http://srinathsview.blogspot.com/
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
