This repository contains the source code for scalable image web service.
- Two application servers (Flask running on Gunicorn application server)
- One database server (MySQL)
- Load balancer (Nginx)
- Cache (Redis)
- Message Queue (RabbitMQ)
- Process Control (Supervisor)
Scalability:
- Using load balancer to distribute work load to different application servers, more application servers can be used to handle more work load
- Using load balancer to distribute work load to different application servers, more application servers can be used to handle more work load
- Using message queue to offload the work of image resizing and detecting similar images to workers, so the work is conducted out of http request-response cycle, more workers can be set up to handle more work load
- Using message queue to offload the work of image resizing and detecting similar images to workers, so the work is conducted out of http request-response cycle, more workers can be set up to handle more work load