Oracle Application Container Cloud Service fournit des fonctionnalités de mise en cache.
La fonctionnalité ** Cache local ** est disponible pour faciliter le développement de cette fonctionnalité de cache.
Le cache d'application fourni par Oracle Application Container Cloud Service acquiert le nom de l'hôte en cours d'exécution à partir de la variable d'environnement et l'utilise comme destination du cache. Par conséquent, pour utiliser la fonction de cache, il est indispensable qu'une instance de cache d'application ait été créée et démarrée sur le service cloud du conteneur d'application.
Il n'est pas pratique de se connecter à distance pendant le développement pour les tests et le débogage. Par conséquent, utilisez l'API ** LocalCache ** fournie par le client de cache d'application.
LocalCache
LocalCache fournit une API similaire à l'API pour utiliser Cache sur le service Cloud Application Container.
Comme vous pouvez le voir dans le diagramme de classes ci-dessus, ** AbstractCache ** qui implémente ** l'interface Cache ** hérite de la classe abstraite pour le traitement ** REST **, le traitement ** gRPC **, ** local * * Chaque classe de traitement a été créée.
RestCache / GrpcCahe
Le cache créé dans "J'ai essayé d'utiliser la fonction de cache d'Application Container Cloud Service" a un type ** REST ** dans la classe ** Transport **. C'était précisé. Il est donc défini comme ** RestCache **.
cacheSession = sessionProvider.createSession(Transport.rest());
De plus, si le type de transport spécifié est ** gRPC **, il sera défini comme ** GrpcCache **.
Il n'y a aucune différence dans les fonctions de base de LocalCache
, RestCache
et GrpcCache
.
--Obtenir le cache
get(String key)
put(String key, V value, PutOption... options)
replace(String key, V value, ReplaceOption... options)
--Vider le cacheremove(String key, RemoveOption... options)
Les bibliothèques suivantes sont requises pour utiliser l'API Java pour les applications clientes du service de cache.
Obtenu par Maven en décrivant les dépendances suivantes:
<dependency>
<groupId>com.oracle.cloud.caching</groupId>
<artifactId>cache-client-api</artifactId>
<version>1.0.0</version>
</dependency>
Il est pratique de changer le cache utilisé lors de l'exécution sur Application Container Cloud Service et lors de l'exécution dans un environnement local. Par conséquent, utilisons la variable d'environnement comme informations d'identification pour savoir si elle se trouve sur le service Cloud Application Container ou l'environnement local.
Dans Application Container Cloud Servive, le nom du répertoire est enregistré dans la variable d'environnement ** APP_HOME ** en tant qu'informations de l'emplacement où le fichier d'application déployé est placé. Par conséquent, nous utiliserons la présence ou l'absence de cette variable d'environnement pour déterminer la différence environnementale.
Session cacheSession = new RemoteSessionProvider(CACHE_URL).createSession(Transport.rest());
Cache cache = cacheSession.getCache(CACHE_NAME, ValueType.of(String.class));
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));
Le SessionProvider est commuté en fonction de la présence ou de l'absence de la variable d'environnement.
Jusqu'à ce que je remarque l'existence de LocalCache, je me demandais si je retirerais le nom d'hôte où Application Cache s'exécute à partir de l'environnement et le développerais tout en me connectant à distance. LocalCache vous aide car vous n'avez pas à vous soucier des connexions à distance pendant le développement.
Recommended Posts