[JAVA] Ich habe versucht, die Cache-Funktion von Application Container Cloud Service in der lokalen Umgebung zu entwickeln

Der Oracle Application Container Cloud Service bietet Caching-Funktionen.

Die Funktion ** Lokaler Cache ** ist verfügbar, um die Entwicklung dieser Cache-Funktion zu erleichtern.

Erläuterung

Der vom Oracle Application Container Cloud Service bereitgestellte Anwendungscache ermittelt den Namen des laufenden Hosts aus der Umgebungsvariablen und verwendet ihn als Cache-Ziel. Um die Cache-Funktion verwenden zu können, ist es daher Voraussetzung, dass eine Anwendungscache-Instanz im Application Container Cloud Service erstellt und gestartet wurde.

Es ist unpraktisch, während der Entwicklung eine Remoteverbindung zum Testen und Debuggen herzustellen. Verwenden Sie daher die vom Application Cache Client bereitgestellte ** LocalCache ** -API.

LocalCache

LocalCache bietet eine API, die der API ähnelt, die bei Verwendung von Cache im eigentlichen Application Container Cloud Service verwendet wird.

ClassDiagram

Wie Sie dem obigen Klassendiagramm entnehmen können, erbt ** AbstractCache **, der die ** Cache-Schnittstelle ** implementiert, die abstrakte Klasse für ** REST ** -Verarbeitung, ** gRPC ** -Verarbeitung, ** lokal * * Jede Klasse für die Verarbeitung wurde erstellt.

RestCache / GrpcCahe

Der in "Ich habe versucht, die Cache-Funktion des Application Container Cloud Service zu verwenden" erstellte Cache hat den Typ ** REST ** in der Klasse ** Transport **. Es wurde angegeben. Es ist daher definiert als ** RestCache **.

cacheSession = sessionProvider.createSession(Transport.rest());

Wenn der angegebene Transporttyp ** gRPC ** ist, wird er als ** GrpcCache ** definiert.

Funktion

Es gibt keinen Unterschied in den Grundfunktionen von "LocalCache", "RestCache" und "GrpcCache".

Annahme

Die folgenden Bibliotheken sind erforderlich, um die Java-API für Cache-Service-Clientanwendungen zu verwenden.

Erhalten von Maven durch Beschreiben der folgenden Abhängigkeiten:

<dependency>
    <groupId>com.oracle.cloud.caching</groupId>
    <artifactId>cache-client-api</artifactId>
    <version>1.0.0</version>
</dependency>

Verwendungs- / Implementierungsbeispiel

Es ist praktisch, den Cache zu wechseln, der beim Ausführen im Application Container Cloud Service und in einer lokalen Umgebung verwendet wird. Verwenden Sie daher die Umgebungsvariable als Identifikationsinformation dafür, ob sie sich im Application Container Cloud Service oder in der lokalen Umgebung befindet.

In Application Container Cloud Servive wird der Verzeichnisname in der Umgebungsvariablen ** APP_HOME ** als Information über den Speicherort registriert, an dem die bereitgestellte Anwendungsdatei abgelegt wird. Daher werden wir das Vorhandensein oder Fehlen dieser Umgebungsvariablen verwenden, um den Umgebungsunterschied zu bestimmen.

Vor dem Einfügen des Umgebungsdiskriminierungsprozesses

Session cacheSession = new RemoteSessionProvider(CACHE_URL).createSession(Transport.rest());
Cache cache = cacheSession.getCache(CACHE_NAME, ValueType.of(String.class));

Nach dem Hinzufügen des Umgebungsdiskriminierungsprozesses

SessionProvider sessionProvider = System.getenv(APP_HOME_DIR) == null ? new LocalSessionProvider() : new RemoteSessionProvider(CACHE_URL);
Session cacheSession = new RemoteSessionProvider(CACHE_URL).createSession(Transport.rest());
Cache cache = cacheSession.getCache(CACHE_NAME, ValueType.of(String.class));

Der SessionProvider wird abhängig vom Vorhandensein oder Fehlen der Umgebungsvariablen umgeschaltet.

Beispiel für die Ausführung des Anwendungscaches in der lokalen Umgebung

Lokaler Zugriff bei Verwendung von RestCache

Lokaler Zugriff bei Verwendung von LocalCache

Zusammenfassung

Bis ich die Existenz von LocalCache bemerkte, fragte ich mich, ob ich den Hostnamen, auf dem Application Cache ausgeführt wird, aus der Umgebung herausziehen und ihn entwickeln würde, während eine Remoteverbindung hergestellt wird. LocalCache hilft Ihnen, da Sie sich während der Entwicklung keine Gedanken über Remoteverbindungen machen müssen.

Recommended Posts

Ich habe versucht, die Cache-Funktion von Application Container Cloud Service in der lokalen Umgebung zu entwickeln
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren
Ich habe versucht, Docker zu verwenden, weil ich die lokale Umgebung bei der Entwicklung der Registerkarte "Microsoft Teams" von MS Learn nicht verschmutzen möchte
Ich habe versucht, den CPU-Kern mit Ruby voll auszunutzen
Ich habe versucht, die Sitzung in Rails zu organisieren
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Ich war süchtig nach NoSuchMethodError in Cloud-Endpunkten
Ich habe versucht, die Server-Push-Funktion von Servlet 4.0 zu verwenden
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
SSL in der lokalen Umgebung von Docker / Rails / Puma
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Erstes AWS Lambda (Ich habe versucht zu sehen, in welcher Umgebung es funktioniert)
Ich habe versucht, eine Webanwendung zu erstellen, die Tweets mit einer Vue-Word-Cloud durchsucht und die Tendenz untersucht, was im zugehörigen Profil geschrieben steht
Ich habe versucht, innerhalb von 3 Monaten einen Antrag von unerfahren zu stellen
Ich habe versucht, die ähnliche Funktion durch asynchrone Kommunikation zu implementieren
Ich habe mir die Rosen von Versailles angesehen und versucht, das Schlusslied in Java zu reproduzieren
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe versucht, die Beispielanwendung gemäß der Idee des Buches "Micro Service Architecture" in einen Mikrodienst zu verwandeln.
Ich habe versucht, die Asset-Management-Anwendung mit dem Emulator des verteilten Hauptbuchs Scalar DLT zu berühren
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Ich habe einen RESAS-API-Client in Java erstellt
Ich möchte den Inhalt von Assets in der mit capistrano erstellten Umgebung von Grund auf neu erstellen
Ich habe versucht, von 0 zusammenzusetzen, während ich die Leistungsseite des Tabellendesigns der Anzeigefunktion für Tag / Woche / Monat / Gesamtranking berücksichtigt habe
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Daten sortieren Absteigend, aufsteigend / Schienen
Ich habe versucht, die Bildvorschau mit Rails / jQuery zu implementieren
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
Ich möchte den Wert von Attribute in Selenium of Ruby ändern
Ich habe versucht, das Problem des Google Tech Dev Guide zu lösen
Ich habe versucht, die Methode zu erklären
[Rails] Ich habe versucht, die Anwendung zu löschen
[Android] Entwickeln Sie einen Dienst, mit dem Universitätsstudenten den Betriebsstatus von Bussen überprüfen können, die an der Universität verkehren.
Ich habe versucht, ein Beispielprogramm mit dem Problem des Datenbankspezialisten für domänengesteuertes Design zu erstellen
Ich habe versucht, ein übergeordnetes Wertklasseobjekt in Ruby zu erstellen
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen
Führen Sie Redmine in der lokalen Umgebung von Windows 10 Pro-Use Docker Desktop für Windows aus
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
So lösen Sie die lokale Umgebungskonstruktion von Ruby on Rails (MAC)!
Ich habe versucht, den Zugriff von Lambda → Athena mit AWS X-Ray zu visualisieren
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
[Ruby] Ich habe versucht, die häufigen Methoden in Paiza zusammenzufassen
So migrieren Sie eine in einer lokalen Docker-Umgebung erstellte Webanwendung nach AWS
[Ruby] Ich habe versucht, die häufigen Methoden mit paiza ② zusammenzufassen