Services/F1/Server/Architecture: Difference between revisions

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 server and the front server uses a round-robin strategy.
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.  
Confirmed users
927

edits