Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
wiki:software:beuthbot:registry:cache [04.06.2020 17:53] Lukas Danckwerth angelegt |
wiki:software:beuthbot:registry:cache [22.07.2020 18:39] (aktuell) Jan Fromme |
||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
====Motivation==== | ====Motivation==== | ||
- | // # Warum erstellen wir den Cache?// | + | Der Cache soll vorrangig die Microservices entlasten, indem er die Response zwischenspeichert und der Registry für eine gewisse Zeit zur Verfügung stellt. |
+ | Insbesondere der Service Weather ist davon betroffen, da dieser eine API von [[https://openweathermap.org/price | OpenWeatherMap ]] nutzt, welches pro Tag 4000 Wettervorhersagen treffen kann, sonst wird dieser Kostenpflichtig bzw. kann dann keine Requests mehr entgegen nehmen. | ||
- | ====Requirements==== | ||
- | // # Was soll der Cache können?// | + | | <WRAP color red> Free</WRAP> | Startup \\ **40 USD** / month | Developer \\ **180 USD** / month | Professional \\ **470 USD** / month | Enterprise \\ **2.000 USD** / month | |
+ | | **60 calls**/ | ||
+ | | [[ https:// | ||
+ | | [[https:// | ||
+ | | [[https:// | ||
+ | | [[ https://openweathermap.org/widgets-constructor | Weather widgets ]] |Weather widgets |Weather widgets |Weather widgets |Weather widgets | | ||
+ | | Uptime 95% | Uptime 95% | Uptime 99.5% | Uptime 99.5% | Uptime 99.9% | | ||
+ | |||
+ | ∗ - 1,000 API calls per day by using One Call API \\ ∗∗ - 2,000 API calls per day by using One Call API | ||
+ | |||
+ | ====Requirements==== | ||
- | // # Muss hier nicht viel sein denke ich...// | + | Die Registry soll Requests von dem Deconcentrator entgegennehmen und überprüfen, |
===Functional=== | ===Functional=== | ||
- | * ''/ | + | * ''/ |
- | * ''/ | + | * ''/ |
- | * ''/ | + | |
- | * ''/ | + | * ''/ |
- | * ''/ | + | * ''/ |
- | * ''/ | + | * ''/ |
===Non Functional=== | ===Non Functional=== | ||
- | * ''/ | + | * ''/ |
- | * ''/ | + | |
- | * ''/ | + | |
- | * ''/ | + | * ''/ |
- | * ''/ | + | * ''/ |
- | * ''/ | + | |
====User Stories==== | ====User Stories==== | ||
- | // # Brauchen wir hier glaube | + | * '' |
+ | * '' | ||
- | < | + | ====Use Cases==== |
- | "Als < | + | |
- | </ | + | |
- | * ''/ | + | ====Technologies==== |
- | * ''/ | + | |
- | * ''/ | + | |
- | ====Use Cases (?)==== | + | Für Node.js existieren mehrere Caching Lösungen. Bei den ersten recherchen fielen die npm packages “memory-cache” und “node-cache” auf. Da “memory-cache” seit drei Jahren kein Update bekommen hat, haben wir uns letzten endes für “node-cache” entschieden. |
- | ====Technologies==== | + | “node-cache” ist eine simple Caching Lösung, die nach dem Key-Value prinzip funktioniert. Der Funktionsumfang besteht dabei aus den Methoden “set”, “get” und “delete”, |
- | + | ||
- | // # Mit welcher Technologie / Umgebung / Framework / Programmiersprache | + | |
- | * Node.js Cache (?) | ||
====Integration==== | ====Integration==== | ||
- | // # An welcher Stelle | + | Der Cache wird wie schon in Technologies beschrieben in Node.js verwendet. Spezifisch |
- | // # Wie wird sie eingebaut?// | + | Das Resultat (veranschaulicht im folgenden UML diagram) besteht darin, dass registry versucht die angefragte Ressource |
- | + | ||
- | // # Wie sieht das Endprodukt | + | |
<uml> | <uml> | ||
Zeile 86: | Zeile 85: | ||
</ | </ | ||
- | ====Abnahmekriterien==== | ||
- | |||
- | // # Was musst der Cache / die Registry können, damit wir das Projekt als erfolgreich definieren können?// | ||
- | |||
- | ====Resultierende Aufgaben==== | ||
- | |||
- | // # Was müssen wir also tun?// | ||
- | // # Auflistung der Tickets die entstehen...// | + | ==== Resultate ==== |
- | // # Vielleicht lieber direkt bei GitHub// | + | Die momentane Implementierung ist wie zuvor beschrieben umgesetzt. Der einzige Unterschied besteht darin, dass die Microservices die Möglichkeit besitzen, einen ttl mitzuschicken. Wird kein ttl vom Microservice mitgeschickt, |
+ | Wenn ein Microservice einen ttl mitschicken möchte, so muss dem " |