Das Programm ist zum Zeitpunkt der Abgabe auf allen drei RaspberryPis installiert. Diese Anweisung ist nur für den Fall dass es erneut installiert werden muss
Die installation von memcached ist sehr simpel, muss aber auf jedem gerät dass Teil des Clusters sein soll ausgeführt werden:
sudo apt install memcached libmemcached-tools -yDanach folgendes config file im Repository in /etc/memcached.conf verwenden.
Dafür muss zunächst die Binary unter https://github.com/rqlite/rqlite/releases heruntergeladen werden. Für den RaspberryPi muss die Linux-Arm64 version verwendet werden. Am praktischten ist hierfür der wget befehl. Danach entpacken und umbenennen:
tar -xzvf <dateiname>.tar.gz
mv <Ordnername> rqliteDafür einfach dieses Git-Repo in /home/pi/studienprojekte/ Klonen. Danach alle notwendigen Python-Pakete installieren. (Optional) Virtuelle Umgebung
python -m venv venv
source ./venv/bin/activatePakete:
pip install -r requirements.txtIn config.json sind die relevanten Konfigurationen für das Programm. An erster Stelle stehen die IP-Adressen mit Port, für alle Memcached-Knoten, danach der Port für RQLite, danaach kommen alle Hosts die zu Beginn im Cluster sein sollen und als letztes der Port, auf dem die Applikation gehostet wird. Das Programm wird selbst herausfinden welcher Host es von den angegebenen Hosts ist.
Zusätzlich sollte noch die .service-Datei aus dem Repository in /etc/systemd/system abgelegt werden.
Das Programm lässt sich mit folgenden Befehlen starten und stoppen:
#start:
systemctl start memcached.service
systemctl start distcache.service
#stop
systemctl stop distcache.service
systemctl stop memcached.serviceAlle Schnittstellen sind bereits im Code beschrieben. Die wichtigsten beiden sind: http://:PORT/distcache/image/{id} : Gibt ein Bild zurück. Zufällig generiert; einfarbig. http://:PORT/distcache/event : SSE für Bildupdates