8 Coherence MicroProfile構成の使用
この章の内容は次のとおりです。
- Coherence MicroProfile構成の使用の有効化
Coherence MP構成を使用するには、まずpom.xml
ファイルで依存関係として宣言する必要があります。 - MP構成を使用したCoherenceの構成
Coherenceには、特定の属性を定義したり、実行時のクラスタ・メンバーの動作をカスタマイズするために使用できる多数の構成プロパティが用意されています。 - 構成ソースとしてのCoherenceキャッシュの使用
Coherence MP構成は、Eclipse MP構成のConfigSource
インタフェースの実装も提供し、これによって構成パラメータをCoherenceキャッシュに格納できます。 - CoherenceでのHelidon MicroProfileの使用例
Coherence MicroProfileとHelidonの統合の使用方法を示す多くのオープン・ソース・サンプル・アプリケーションがあります。
Coherence MicroProfile構成の使用の有効化
Coherence MP構成を使用するには、まずpom.xml
ファイルで依存関係として宣言する必要があります。
<dependency>
<groupId>${coherence.groupId}</groupId>
<artifactId>coherence-mp-config</artifactId>
<version>${coherence.version}</version>
</dependency>
pom.xml
ファイルに次を追加します:<dependency>
<groupId>io.helidon.microprofile.config</groupId>
<artifactId>helidon-microprofile-config</artifactId>
<version>2.5.0</version>
</dependency>
<!-- optional: add it if you want YAML config file support -->
<dependency>
<groupId>io.helidon.config</groupId>
<artifactId>helidon-config-yaml</artifactId>
<version>2.5.0</version>
</dependency>
親トピック: Coherence MicroProfile構成の使用
MP構成を使用したCoherenceの構成
-Dcoherence.cluster=MyCluster -Dcoherence.role=Proxy -Dcoherence.distributed.localstorage=false
<cluster-config>
<member-identity>
<cluster-name>MyCluster</cluster-name>
<role-name>Proxy</role-name>
</member-identity>
</cluster-config>
- アプリケーションの基礎としてHelidon(『Helidon』を参照)などのEclipse MicroProfile実装のいずれかを使用している場合、別のファイルまたはシステム・プロパティではなく、他の構成パラメータとともにCoherence構成パラメータの一部を定義することをお薦めします。
- Kubernetesなどの一部の環境では、Javaシステム・プロパティは使用しにくく、構成プロパティをコンテナに渡す方法としては環境変数が望ましいです。
残念ながら、前述の2つの使用法はいずれもそのままではサポートされていません。Coherence MP構成は、このギャップを埋めるように設計されています。
クラス・パスにcoherence-mp-config
およびEclipse MP構成の実装の指定があるかぎり、Coherenceは標準またはカスタム構成ソースのいずれかを使用して、理解できる様々な構成オプションを解決します。
META-INF/microprofile-config.properties
ファイル(クラス・パスに存在する場合)、環境変数およびシステム・プロパティ(この順序で、後者のプロパティが前者のプロパティをオーバーライドします)があります。これらの構成ソースは、前述の2番目の使用法に直接対応し、Kubernetes YAMLファイル内の環境変数を介してCoherence構成オプションを指定できます。たとえば:containers:
- name: my-app
image: my-company/my-app:1.0.0
env:
- name: COHERENCE_CLUSTER
value: "MyCluster"
- name: COHERENCE_ROLE
value: "Proxy"
- name: COHERENCE_DISTRIBUTED_LOCALSTORAGE
value: "false"
上記は単なる例です。KubernetesでCoherenceクラスタを実行している場合は、Coherenceクラスタの構成と操作の両方が非常に簡単になるため、かわりにCoherenceオペレータを使用します。
coherence
セクションをapplication.yaml
ファイルに追加するだけです:coherence:
cluster: MyCluster
role: Proxy
distributed:
localstorage: false
親トピック: Coherence MicroProfile構成の使用
構成ソースとしてのCoherenceキャッシュの使用
Coherence MP構成は、Eclipse MP構成のConfigSource
インタフェースの実装も提供し、これによって構成パラメータをCoherenceキャッシュに格納できます。
- ほとんどすべてのデフォルト構成ソースは静的ですが、それらとは異なり、Coherenceキャッシュに格納された構成オプションは、アプリケーションJARまたはDockerイメージのリビルドを強いられることなく変更できます。
- 値は1箇所で変更でき、すべてのメンバーで自動的に認識され、最新になります。
前述の機能によって非常に多くの柔軟性が得られますが、必ずしも望ましいとはかぎりません。したがって、この機能はデフォルトでは無効になっています。
CoherenceConfigSource
を登録して明示的に有効にする必要があります:<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd">
<interceptors>
<interceptor>
<instance>
<class-name>com.oracle.coherence.mp.config.CoherenceConfigSource</class-name>
</instance>
</interceptor>
</interceptors>
<!-- your cache mappings and schemes... -->
</cache-config>
この機能を有効にすると、キャッシュ・ファクトリが初期化されるとすぐにCoherenceConfigSource
がアクティブ化され、標準MP構成APIを介してアプリケーションで使用する使用可能な構成ソースのリストに挿入されます。
デフォルトでは、優先度(序数)が500で構成され、すべての標準構成ソースよりも優先度が高くなるため、構成ファイル、環境変数およびシステム・プロパティを介して提供される値をオーバーライドできます。ただし、その動作を完全に制御でき、coherence.mp.config.source.ordinal
構成プロパティを使用して別の序数を指定できます。
親トピック: Coherence MicroProfile構成の使用
CoherenceでのHelidon MicroProfileの使用例
Coherence MicroProfileとHelidonの統合の使用方法を示す多くのオープン・ソース・サンプル・アプリケーションがあります。
サンプル・アプリケーションの詳細は、次の項目を参照してください:
-
Helidon Sock Shop
このプロジェクトは、スケーラブルな埋込みデータ・ストアとしてOracle Coherence Community Editionを使用し、アプリケーション・フレームワークとしてHelidon MPを使用するステートフルなマイクロサービス・ベースのアプリケーションの実装です
これを使用する場合は、Coherence Helidon Sock Shopのサンプルを参照してください。
-
Todoリストの例
このリポジトリには、Coherence Community Editionを紹介するために様々な言語で記述された一連の簡単なタスク管理の例が含まれています。
特に、Javaディレクトリには、CoherenceとHelidon MicroProfileの統合方法が示されています。
これを使用する場合は、Todoリストの例を参照してください。
親トピック: Coherence MicroProfile構成の使用