Confirmed users
927
edits
Tarek.ziade (talk | contribs) |
Tarek.ziade (talk | contribs) |
||
Line 34: | Line 34: | ||
== Detailed transaction == | == Detailed transaction == | ||
1. Zeus uses a X-Target-Service header that indicates which service is going to be called. For each service there's at least two servers that can be load balanced to receive requests. | 1. Zeus uses a X-Target-Service header that indicates which service is going to be called. For each service there's at least two servers that can be load balanced to receive requests. Zeus uses a round-robin strategy. | ||
2. The server checks in the Service Status DB if the service is up or down. If it's down, it returns immediately a 503 + Retry-after. The Retry-After value is provided by the Service Status DB. | 2. The server checks in the Service Status DB if the service is up or down. If it's down, it returns immediately a 503 + Retry-after. The Retry-After value is provided by the Service Status DB. | ||
3. If the service is up, it proxies the request to one back-end server that is in charge of the service. There can be several back-end | 3. If the service is up, it proxies the request to one back-end server that is in charge of the service. There can be several back-end servers and the front server uses a round-robin strategy. | ||
4. The back-end server proxies to the Gunicorn server, which picks a worker. | 4. The back-end server proxies to the Gunicorn server, which picks a worker. |