Anonymous | Login | Signup for a new account | 12-17-2024 08:54 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0002969 | [Resin] | minor | always | 09-25-08 11:57 | 07-22-11 12:31 | ||||
Reporter | ferg | View Status | public | ||||||
Assigned To | ferg | ||||||||
Priority | normal | Resolution | fixed | ||||||
Status | closed | Product Version | |||||||
Summary | 0002969: load-balancing for lazy-applications | ||||||||
Description |
(rep by Daniel Bjuhr) We need a load balancing setup that share the load for many web applications on multiple backend servers, but we don?t want the web apps to be activated on all backend servers at the same time. We want to configure all apps as ?lazy? on all backend servers. They will then be activated when the first request to their DNS is made. Then the app is started on that backend server. We have hundreds of apps and each backend server will become very slow if all apps are activated on all backend servers. The preferred solution would therefore be to not call all DNS names on all backend servers but to share the load based on the DNS name in the requests. Sticky-session or sticky source-IP won?t be enough to solve this as they only stick to each user session. If User-A request www.siteA.com he may be redirected to backend server 1 and then be kept there. But if User-B then requests the same www.siteA.com he may be redirected to backend server 2 and then be kept there. This means that the web application for siteA will be activated and loaded in both backend servers. As we now host hundreds of sites this has become a problem. We may set up many resin backend servers but they will all end up loading all web apps over time and get out of memory. The theory to get this work is a load balancer with the following logic: 1. A request for a certain DNS comes in. For example: www.siteA.com 2. Load balancer checks if this certain DNS has been redirected to a certain backend server before and if this server is alive 2.1. (If not redirected before): Redirect the request to the backend server with least load. Store the selected backend route based on the DNS name. 2.2. (If redirected before): Redirect the request to the assigned backend server for siteA. 3. If a backend server is down then all DNS requests to this server will be redirected to another backend server with least load. All requests to these DNS names will be assigned to this backend server instead. Example of set up Many DNS to one IP 192.168.1.1 www.siteA.com 192.168.1.1 www.siteB.com 192.168.1.1 www.siteC.com ... Frontend load balancer 192.168.1.1 (load balancer) Backend app servers 192.168.2.2 (App server 1) 192.168.2.3 (App server 2) 192.168.2.4 (App server 3) Snapshot of servers during load App server 1 www.siteA.com (Activated) www.siteB.com (Lazy) www.siteC.com (Lazy) App server 2 www.siteA.com (Lazy) www.siteB.com (Activated) www.siteC.com (Lazy) App server 3 www.siteA.com (Lazy) www.siteB.com (Lazy) www.siteC.com (Activated) |
||||||||
Additional Information | |||||||||
Attached Files | |||||||||
|
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
28 total queries executed. 25 unique queries executed. |