1st assignment ot the subject SD (Distributed Systems) of the degree in Computer Science of the Rovira i Virgili
University. Consists of the implementation of a distributed system using Python
.
To implement this system, we've decided to make use of a remote server to simulate a real case where, RabbitMQ and Redis would be running in a remote server. To do so, we're using two docker containers, one for each, hosted at:
- Redis: 162.246.254.134:8001 (Requires no password)
- RabbitMQ: http://162.246.254.134:15672/
- User: guest
- Password: guest
Both containers are always running in detach mode, and containers aren't removed when stopped.
Data in RabbitMQ is set to be kept even if there's a node failure to make sure that any message gets lost.
We've decided to make this implementation to have access to the same data and make a more realistic system.
When it comes to the RPC implementation, we first started using XMLRPC, but ended implementing GRPC due to its safety and speed.
- Sensors
- Load balancer
- Server
- Redis storage
- Proxy
- Terminal
- Sensors
- RabbitMQ ( sensor - server communication )
- Server
- Redis storage
- Proxy
- RabbitMQ ( proxy - terminal communication )
- Terminal
When running the project, we recommend running the terminal file using PyCharm, as it has SciView installed and it's quite convenient to visualize plots.
Every other file can be run using the terminal by running the run.sh
or run.bat
file, depending on the OS you're using.
pip install -r requirements.txt
./run.sh
pip install -r requirements.txt
./run.bat
- Carlos MartĂnez - carlosmgv02
- Nil Monfort - nilm9