ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Coherenceでのアプリケーションの開発
12c (12.1.2)
B70741-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 Coherenceクラスタの概要

この章では、Coherenceクラスタと、クラスタ・メンバーがTangosol Cluster Management Protocol (TCMP)を使用して相互に通信する方法について説明します。クラスタ・サービスについても説明し、各クラスタ・サービスを定義します。

この章には次の項が含まれます:

6.1 クラスタの概要

Coherenceクラスタは、Coherenceを実行するJVMプロセスのネットワークです。JVMは、自動的に結合されてクラスタを形成し、クラスタ・メンバーまたはクラスタ・ノードと呼ばれます。クラスタ・メンバーどうしは、Tangosol Cluster Management Protocol (TCMP)を使用して通信します。クラスタ・メンバーでは、マルチキャスト通信(ブロードキャスト)とユニキャスト通信(Point-to-Point通信)の両方でTCMPを使用します。

クラスタには、そのクラスタのすべてのメンバーで共有するサービスがあります。このサービスの例として、接続サービス(クラスタ・サービスなど)、キャッシュ・サービス(分散キャッシュ・サービス)、処理サービス(呼び出しサービスなど)があります。各クラスタ・メンバーは、このようなサービスを提供でき、また利用できます。クラスタの最初のメンバーは上位メンバーと呼ばれ、多くの場合は、そのクラスタの作成に必要なコア・サービスを開始します。クラスタの上位メンバーがシャットダウンした場合は、他のいずれかのクラスタ・メンバーが上位メンバーの役割を引き受けることが前提となっています。

6.2 TCMPの理解

TCMPは、クラスタ・メンバーの検出、クラスタの管理、サービスのプロビジョニングおよびデータの伝送に使用する、IPベースのプロトコルです。TCMPは、次のものを使用するように構成できます。

マルチキャストの使用

マルチキャストは次のように使用します。

ユニキャストの使用

ユニキャストは次のように使用します。

TCPの使用

TCPは次のように使用します。

プロトコルの信頼性

TCMPプロトコルは、あらゆるメッセージについて信頼性の高いインオーダー配信を実現します。基盤となるUDP/IPプロトコルでは信頼性のある配信やインオーダー配信ができないため、TCMPでは、キュー型の完全非同期ACKおよびNACKに基づいたメカニズムと、メッセージの確実な順序付けに不可欠な一意のIDを使用して信頼性のあるメッセージ配信を実現しています。

プロトコルのリソースの利用

TCMPプロトコル(デフォルトでの構成)には、クラスタ・サイズに関係なく、JVMごとに3つのUDP/IPソケット(マルチキャスト用に1つとユニキャスト用に2つ)および6つのスレッドのみが必要です。これはCoherenceのスケーラビリティで重要な要素です。これにより、サーバー数に関係なく、クラスタの各ノードで追加のネットワーク接続を必要とせずに、Point-to-Pointによるクラスタ・メンバーとの通信、または一群のクラスタ・メンバーとの通信が可能になります。

オプションのTCP/IPリングでは、いくつかのTCP/IPソケットおよび1つのスレッドを追加で使用します。

プロトコルのチューニング性

TCMPプロトコルは非常にチューニング性が高いため、特定のネットワーク・トポロジの利用や、地理的に分散したクラスタにある低帯域幅で長待機時間のセグメントに対する許容差の追加が可能です。Coherenceには出荷時の初期設定の構成があります。TCMP属性の中には、実行時に動的に自己構成できるものがありますが、デプロイ目的でそれらをオーバーライドすることやロックダウンすることも可能です。

6.3 クラスタ・サービスの理解

Coherenceの機能はクラスタ・サービスの概念に基づいています。各クラスタ・ノードは、任意の数の名前付きサービスを提供でき、また使用できます。これらの名前付きサービスとして、1つ以上の他のクラスタ・ノードで実行しているものが利用できるほか、クラスタ・ノードで新規に名前付きサービスを登録することもできます。それぞれの名前付きサービスには、クラスタ内でそのサービスを一意に識別するためのサービス名と、サービスの機能を定義するサービス・タイプが設定されています。各サービス・タイプ(rootクラスタ・サービスを除く)には、複数の名前付きインスタンスが存在する場合もあります。Coherenceでサポートされるサービス・タイプには、次のものがあります。

接続サービス

処理サービス

データ・サービス

クラスタ・サービスは通常1つのデーモン・スレッドを使用しますが、さらに大きな処理帯域幅をサービスに提供するように構成できるスレッド・プールをオプションで用意しています。たとえば、起動サービスと分散キャッシュ・サービスはどちらもスレッド・プーリングを完全にサポートすることで、データベースのロード処理、パラレル分散問合せ、およびエージェントの起動を加速化します。

前述のサービスは、クラスタ・サービスの基本にすぎず、Coherenceが提供するキャッシュ・タイプのすべてではありません。Coherenceは、クラスタ・サービスをバッキング・マップやオーバーフロー・マップなどのキャッシュ機能と組み合せることにより、きわめて柔軟性が高く、構成可能なオプション・セットをクラスタ・アプリケーションに提供します。

キャッシュ・サービス内には、任意の数の名前付きキャッシュが存在します。名前付きキャッシュは標準のJCache APIを提供します。このAPIは、キーと値のペアを保持するjava.util.MapというJavaコレクションAPIをベースとしています。