A scalable high performance ShortURL server
It depends on:
- Java: ShortURL backend sever is implemented by Scala which is running on JVM.
- Nginx (Optional): Load balancer.
- MongoDB: nosql database for persisting mapping between short urls and real urls.
- Memcahced (Optional): cache server.
You can run this application but you should set up a cluster because ShortURL services serves for many requests as a product. This project is designed for this requirement. You can scale your deployment easily, and even you can your existed cluster.
It is stateless so you can scale it as necessary.
you can use Nginx or others as your load balancer. Remeber let your LB run as HA(High Availability)
set up a mongodb cluster as database and use urlId for sharding key.
set up multiple memcached servers.
More installation guide and design: Wiki