[JAVA] J'ai essayé d'utiliser la fonction de cache d'Application Container Cloud Service

Oracle Application Container Cloud Service fournit des fonctionnalités de mise en cache. Vous pouvez l'utiliser pour mettre en cluster des applications, remplacer l'accès à la base de données, etc.

La description

Les capacités de mise en cache d'Oracle Application Container Cloud Service sont faciles à utiliser. La création d'un service de cache est terminée en définissant simplement la capacité utilisée pour le cache.

Les deux méthodes suivantes sont fournies pour accéder à cette fonction de cache.

** L'API REST ** est une méthode permettant d'utiliser directement l'API REST fournie par le service de cache à l'aide de l'API client REST telle que Jersey.

** L'API Java ** est une méthode permettant d'utiliser l'API pour le service de cache depuis l'application en utilisant la bibliothèque fournie par Oracle. Les étapes suivantes décrivent cette méthode API Java.

C'est un service de cache facile à utiliser, mais avec les règles d'utilisation suivantes:

--Plusieurs caches peuvent être créés dans un service de cache

une fonction

supposition

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>

comment utiliser

L'utilisation est expliquée ci-dessous en utilisant la méthode de rétention de session en utilisant HttpSession et Cache comme exemple.

Pour HttpSession

Si vous souhaitez utiliser HttpSession pour tenir une session, vous écrivez généralement un code comme celui-ci:

Obtenir des objets de session et définir des données

HttpSession session = request.getSession(true);
session.setAttribute("KEY", "1");

Obtenir les données de session

String value = (String) session.getAttribute("KEY");

Pour Cache (com.oracle.cloud.cache.basic.Cache)

1. Initialisation

Tout d'abord, récupérez le cache du service de cache et, s'il n'existe pas, créez le cache.

import com.oracle.cloud.cache.basic.Cache;
import com.oracle.cloud.cache.basic.RemoteSessionProvider;
import com.oracle.cloud.cache.basic.Session;
import com.oracle.cloud.cache.basic.options.Transport;
import com.oracle.cloud.cache.basic.options.ValueType;

String CACHE_HOST = System.getenv("CACHING_INTERNAL_CACHE_URL");
String CACHE_URL = "http://" + CACHE_HOST + ":8080/ccs/";
String CACHE_NAME = "sample";

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

L'URL du service de cache est obtenue à partir de la variable d'environnement. La variable d'environnement à utiliser est ** CACHING_INTERNAL_CACHE_URL **. Utilisez System.getenv () pour obtenir la valeur.

Vous pouvez choisir entre deux méthodes pour accéder au cache:

Utilisez ** Transport ** pour configurer les paramètres lors de la création d'un objet Session comme indiqué ci-dessous:

2. Fonctionnement du cache

Ajouter / référencer / mettre à jour / supprimer des données dans le cache comme suit

Exemple de création d'environnement de cache d'application et d'exécution d'application

1. Création d'un service de cache

1.1. Sélection du cache d'application

Sélectionnez ** Application Cache ** dans le menu.

1.2. Création d'une instance de service de cache

Cliquez sur ** Créer une instance **.

1.3. Configuration du cache et paramètres de capacité

--Basic: ** Un seul ** Un conteneur pour le cache sera créé.

1.4. Écran de confirmation

1.5. Création de l'écran

1.6. Achèvement de la création du service de cache

2. Déployez l'exemple d'application

2.1. Sélection des applications

Sélectionnez ** Application ** dans le menu.

2.2. Déployer l'application

Cliquez sur ** Créer une application **.

2.3. Sélection du temps d'exécution

Sélectionnez ** Java SE **.

2.4. Sélection de l'application à déployer

Sélectionnez l'application téléchargée à partir de l'URL suivante :

Dans les choix en bas de l'écran, sélectionnez le service de cache que vous avez créé.

Cliquez sur ** Créer **.

3. Fonctionnement à l'aide de HttpSession

3.1. Accéder à l'exemple d'application

Cliquez sur l'URL affichée sur l'écran du tableau de bord. Les applications accessibles à partir de cette URL utiliseront HttpSession pour compter le nombre d'accès.

3.2. Premier accès

3.3. Deuxième accès

3.4. Troisième accès

3.5. Redémarrage de l'application

Cliquez sur ** Redémarrer ** dans le menu.

3.6. Quatrième accès après le redémarrage

Les données de session ne sont pas persistantes, donc un redémarrage initialise la session. Par conséquent, il sera à nouveau affiché comme ** Premier accès **.

4. Fonctionnement à l'aide du cache

4.1. Premier accès

Accédez à la racine de contexte en tant que ** cache **.

4.2. Deuxième accès

4.3. Troisième accès

4.4. Redémarrage de l'application

4.5. Quatrième accès après redémarrage

Les informations de décompte d'accès sont stockées en tant que cache sur le service de cache, de sorte qu'il continue à compter même après le redémarrage.

5. Clustering avec cache

5.1. Déployer la même application avec un nom différent

Renommez et déployez la même application. Sélectionnez le service de cache comme à l'étape précédente.

5.2. Accéder à l'exemple d'application

Accédez à l'application qui exécute le cache.

5.3. Confirmation de l'opération de mise en cluster à l'aide du cache

Nous partagerons le nombre d'accès de chaque application et compterons chacun.

GitHub https://github.com/shinyay/oracle-accs-cache-api

Résumé

Avant l'avènement de la fonction de cache, la seule façon de conserver les données était de les stocker dans une base de données ou sous forme de fichier, il est donc pratique de pouvoir utiliser la fonction de cache. De plus, la fonction de cache n'avait pas d'API Java lors de son apparition, mais je pense que c'est également pratique en termes de codage car l'API Java est également fournie.

Recommended Posts

J'ai essayé d'utiliser la fonction de cache d'Application Container Cloud Service
J'ai essayé de développer la fonction de cache d'Application Container Cloud Service dans l'environnement local
J'ai essayé d'utiliser la fonction Server Push de Servlet 4.0
J'ai essayé d'utiliser le profileur d'IntelliJ IDEA
J'ai essayé d'utiliser la boîte à outils de migration pour les fichiers binaires d'application
[Rails] J'ai essayé de supprimer l'application
J'ai essayé d'utiliser le conteneur Pari gp
J'ai essayé d'utiliser Google HttpClient de Java
J'ai essayé de toucher l'application de gestion d'actifs en utilisant l'émulateur du grand livre distribué Scalar DLT
J'ai essayé légèrement le cache de résultat de la méthode de JCache (Ehcache 3) feat. Guice
[API] J'ai essayé d'utiliser l'API de recherche par code postal
J'ai essayé d'utiliser le service KMS (Key Management Service) d'Alibaba Cloud
J'ai essayé d'utiliser Gson
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
J'ai essayé le nouveau profileur de fonctionnalités d'IntelliJ IDEA 2019.2.
J'ai essayé d'utiliser TestNG
J'ai essayé d'utiliser Galasa
J'ai essayé d'étudier le mécanisme d'Emscripten en l'utilisant avec un solveur allemand
Limiter le nombre de threads à l'aide du service d'exécution de Java
J'ai essayé d'exécuter une application d'accès à la base de données sur IKS + Db2 sur IBM Cloud (6. Préparation de l'application d'accès à la base de données (java))
J'ai essayé de convertir l'exemple d'application en microservice selon l'idée du livre "Microservice Architecture".
J'ai essayé d'implémenter la fonction similaire par communication asynchrone
J'ai essayé d'utiliser le référentiel GitHub comme serveur de bibliothèque
[Rails] J'ai essayé d'utiliser la méthode button_to pour la première fois
Guide: déployez votre application à l'aide du plugin Alibaba Cloud Toolkit
J'ai essayé de résumer les bases de kotlin et java
J'ai essayé JAX-RS et pris note de la procédure
J'ai brièvement résumé la grammaire de base de Ruby
J'ai essayé de construire l'environnement petit à petit en utilisant docker
J'ai essayé de créer un environnement de WSL2 + Docker + VSCode
J'ai essayé d'utiliser la bibliothèque CameraX avec Android Java Fragment
J'ai essayé d'utiliser azure cloud-init
J'ai essayé d'utiliser Apache Wicket
J'ai essayé d'utiliser Java REPL
J'ai essayé le problème FizzBuzz
Après avoir appris Progate, j'ai essayé de créer une application SNS en utilisant Rails dans l'environnement local
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
En utilisant la fonction de détection de visage de Watson Visual Recognition, j'ai essayé de transformer une image corporelle entière d'une personne en une image de la partie du visage uniquement.
[Metal] J'ai essayé de comprendre le flux jusqu'au rendu avec Metal
J'ai essayé d'implémenter le traitement Ajax de la fonction similaire dans Rails
Déployez votre application sur EDAS à l'aide du plugin Cloud Toolkit Maven
J'ai essayé d'implémenter la fonction de prévisualisation d'image avec Rails / jQuery
J'ai essayé le type d'entrée / sortie de Java Lambda ~ Map edition ~
Essayez d'utiliser la fonction de mesure en deux points de Firebase Performance Monitoring. [Android]
J'ai jeté un coup d'œil aux ressources d'Azure Container Instance
J'ai essayé de créer une application simple en utilisant Dockder + Rails Scaffold
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.