Kürzlich stieß ich auf eine Frage, wo wir gefragt wurden, ob etwa 1000 Benutzer einen Ruheendpunkt eines Microservices erreichen und auf diesem Endpunkt dieselben Daten von einem anderen langsamen Prozess abriefen. Wie können wir die Anfrage in diesem Anwendungsfall optimieren? Caching ist die naheliegende Antwort, aber wie könnte es für eine große Anzahl gleichzeitiger Anfragen optimiert werden?Behandlung mehrerer Anfragen auf einer einzigen Ressource
Antwort
Offensichtlich, wie Sie sagen, müssen Sie die Cache-Optionen durchlaufen, wenn Sie eine einzige Anwendung haben, kann der schnellste Weg Ehcache sein, es ist ein ziemlich einfaches Framework zu implementieren.
Aber wenn Sie die Verfügbarkeit des Dienstes erhöhen möchten, müssen Sie es clustern. Dafür muss man einen Load Balancer wie nginx haben, und andererseits kann der Cache Redis db sein, um den Cache zu zentralisieren.
Redis (cache)
^^
Nginx (LB) -> cluster of your app -> Other service
Ich denke, die Frage war, zum Behandeln eines Bursts einer Anfrage auf einem Ruheendpunkt, der von einem langsamen Dienst unterstützt wird. – jtkSource
@Cacheable Synchronisiert die Ausführungen der Methode mit den gleichen Parametern und speichert auch die Antwort für die nächste Ausführung im Speicher. Auf diese Weise minimieren Sie die Anfrage an eine andere Anwendung. org.springframework.cache.annotation.Cacheable – German
- 1. Flex RemoteObject - Behandlung mehrerer Anfragen
- 2. Multithreading zur Behandlung mehrerer eingehende Anfragen
- 3. Empfohlene Methode zur Behandlung mehrerer malloc-Fehler in einer einzigen Funktion in C
- 4. Behandlung mehrerer Befehle als Transaktion
- 5. Behandlung mehrerer Zeitzonen in Java
- 6. Erstellen mehrerer Dateien aus einer einzigen Quelldatei
- 7. Rückgabe mehrerer Werte aus einer einzigen Methode
- 8. Löschen mehrerer Zeilen mit einer einzigen Abfrage
- 9. Speichern mehrerer Zeilen in einer einzigen Abfrage
- 10. Veröffentlichen mehrerer Sites auf einer einzigen Instanz von Umbraco
- 11. Rendern mehrerer Ansichten von mehreren Controllern auf einer einzigen Seite
- 12. Sortierung mehrerer Listen basierend auf einer einzigen Liste in Python
- 13. Mehrere REST-API-Anfragen in einer einzigen Anfrage kombinieren?
- 14. Aufruf mehrerer HTTP-Anfragen in einer einzigen HTTP-Anfrage in Node.js
- 15. Behandlung mehrerer MySql-Abfragen (Löschen und Kopieren)
- 16. Behandlung von Ajax-Anfragen mit PhantomJS
- 17. Behandlung mehrerer Ereignisabhängigkeiten in ereignisgesteuerter Architektur
- 18. Behandlung von https-Anfragen ohne API Gateway
- 19. Behandlung mehrerer untergeordneter Prozesse in node.js
- 20. Bindung Ajax-Antwort auf vue.js (mehrere Anfragen auf einer einzigen Seite)
- 21. SignalR - Behandlung mehrerer Hub-Verbindungen vom JavaScript-Client aus
- 22. Verhindern mehrerer Anfragen von AJAX
- 23. jQuery - Abschluss mehrerer Ajax-Anfragen
- 24. Wie installiere ich mehrere Dateien mit einer einzigen Datei-Ressource
- 25. Bereitstellen mehrerer Dacpac-Dateien in einer einzigen Datenbank
- 26. Kombinieren mehrerer ng-apps in einer einzigen App
- 27. Mysql Einfügen mehrerer Zeilen mit einer einzigen Einfügung
- 28. Verketten mehrerer Textdateien in einer einzigen Datei in Bash
- 29. Laden mehrerer ViewModel in einer einzigen Ansicht Xamarin Forms
- 30. MYSQL - Auswählen mehrerer Zeilen in einer einzigen Zeile
http://www.ehcache.org/documentation/2.8/recipes/thunderingherd.html – dm03514
Ja, den Cache auf mehrere Anfragen Synchronisation sollte der einzige Weg sein .. danke für den Link – jtkSource