手動によるクラスタの作成および管理

Enterprise Edition

このページでは、手動によるクラスタの作成および設定について説明します。クラスタを作成および管理する方法は 3 つあります。

複数の方法を組み合わせてクラスタを管理しないでください

手動でクラスタを作成する場合は、管理コンソールで管理しないでください。管理コンソールでは、手動で作成されたクラスタを認識できないため、クラスタ設定が上書きされます。

クラスタ内のすべてのノードでエージェントバージョンを同じにする必要があります。

手動でクラスタを作成する

設定ファイルを使用して手動でクラスタを作成する手順は、次のとおりです。

  1. ノードが実行されていないことと、Mule Runtime サーバが停止していることを確認します。

  2. ノードの $MULE_HOME/.mule ディレクトリ内に mule-cluster.properties という名前のファイルを作成します。

  3. パラメータ = 値のペア (1 行に 1 つ) を使用してファイルを編集します。以下の例を参照してください。

    注意: mule.clusterIdmule.clusterNodeId は、プロパティファイルに存在している必要があります。

    ...
    mule.cluster.nodes=192.168.10.21,192.168.10.22,192.168.10.23
    mule.cluster.multicastenabled=false
    mule.clusterId=<Cluster_ID>
    mule.clusterNodeId=<Cluster_Node_ID>
    ...
  4. クラスタに含めるすべての Mule サーバでこの手順を繰り返します。

  5. ノードの Mule サーバを開始します。

使用可能なパラメータの完全なリストについては、「クラスタ設定パラメータ」を参照してください。

手動でクラスタを管理する

手動で管理できるのは、Mule 管理コンソールで管理されていない、手動で作成されたクラスタのみです。

クラスタノードの設定を手動で変更する手順は、次のとおりです。

  1. ノードの Mule サーバを停止します。

  2. 必要に応じてノードの mule-cluster.properties を編集し、ファイルを保存します。

  3. ノードの Mule サーバを再起動します。

ノード間の一貫性を確保してください

設定ファイルで適用するオプションがすべてのクラスタノードで有効であることを確認します。この作業を行わないと、クラスタ設定が破損し、クラスタが誤って無効になる可能性があります。

クォーラム管理

手動で設定したクラスタ ​を管理する場合、クラスタが稼働するのに必要なマシンの最小クォーラムを設定できるようになりました。

ネットワークをパーティション分割する場合、デフォルトでクラスタを使用できます。ただし、最小クォーラムサイズを設定すると、最小しきい値を満たしていない更新を拒否するようにクラスタを設定できます。
これにより、一貫性が向上し、予期せずにノード (クラスタ内の Mule Runtime) が失われた場合にクラスタを保護できます。

通常の状況では、クラスタ内のノードが停止しても、データを保存するのに十分なメモリがありますが、使用可能なノードが少なくなるため要求の処理に使用できるスレッド数が減少し、クラスタ内のパーティションスレッドがすぐに不足する可能性があります。そのため、次のことが発生する場合があります。

  • クライアントの要求を処理するスレッドがなくなり、クライアントが置き去りになる

  • 応答できない要求が多すぎて残りのクラスタメンバーで処理しきれなくなり、停止していると想定されてクラスタから除外されます。

メンバーが失われた場合にクラスタの残りのメンバーを保護するには、ノードの同時更新を停止する最小クォーラムサイズを設定します。これにより、クラスタ内のアクティブなノードの数が設定値を下回ったとき、QuorumException がスローされます。

QuorumExceptions をキャッチしてください

クラスタのクォーラムサイズを設定する場合、スローされた例外をキャッチして何らかの決定 (メールの送信、プロセスの停止、ログ記録、戦略の再試行など) を行う必要があります。

クォーラムを有効にするには、mule.cluster.quorumsize プロパティをクラスタ設定ファイル {MULE_HOME}/.mule/mule-cluster.properties に配置して、稼働状態を維持するためのクラスタの最小ノード数を定義する必要があります。

クォーラム機能は、オブジェクトストアを使用するコンポーネントでのみ有効です。

オブジェクトストアの永続性

すべてのクラスタノードからアクセスできる中央システムに JDBC データを永続的に保存できます。

サポートされているリレーショナルデータベース管理システムのリストについては、Mule の「ハードウェアおよびソフトウェアの要件」を参照してください。

オブジェクトストアの永続性を有効にするには、データベースを作成し、{MULE_HOME}/.mule/mule-cluster.properties ファイルでその設定値を定義する必要があります。

  1. mule.cluster.jdbcstoreurl: データベースに接続するための JDBC URL

  2. mule.cluster.jdbcstoreusername: データベースのユーザ名

  3. mule.cluster.jdbcstorepassword: データベースのユーザパスワード

  4. mule.cluster.jdbcstoredriver: JDBC ドライバのクラス名

  5. mule.cluster.jdbcstorequerystrategy: SQL 言語

この機能により、保持するオブジェクトストアごとにテーブルが作成されるため、データベースのテーブルは自動的に作成されます。
オブジェクトストアごとに 2 つのテーブルが作成されます。

  • データを保存するテーブル

  • パーティションを保存するテーブル

オブジェクトストアデータベースの推奨事項

  1. JDBC ストアでのみ使用される専用データベース/スキーマを作成することをお勧めします。

  2. データベースのユーザ名は、次の権限が必要です。

    1. データベースのオブジェクトを作成する権限 (テーブルの DDL CREATE、DROP)。

    2. 作成されるオブジェクトに対する DML 権限 (INSERT、UPDATE、DELETE、SELECT)

  3. データストレージは、すべてのノードからアクセスできる中央 DB でホストする必要があることを常に念頭に置いてください。クラスタごとに複数のデータベースを使用しないでください。
    これらの値の設定方法についての詳細は、「cluster configuration reference for persistency (永続性のクラスタ設定リファレンス)」を参照してください。

監視

JMX テクノロジを使用して、クラスタメンバーでスローされるイベントを監視できます。

JMX 監視オプションは、デフォルトで無効になっています。有効にするには、mule.cluster.jmxenabled プロパティを {MULE_HOME}/.mule/mule-cluster.properties 設定ファイルに追加します。

JMX を有効にすると、パフォーマンスのオーバーヘッドが発生する可能性があります (基盤となる構造で各ノードの統計を取得するためのリスナが追加される場合)。

メンバーシップリスナ

メンバーシップリスナを使用すると、次のイベントが発生するたびに通知を取得できます。

  1. 新しいメンバーがクラスタに追加される

  2. 既存のメンバーがクラスタから離脱する

これらのいずれかのイベントがトリガされると、メンバーシップリスナは、参加または離脱したメンバーのアドレスを出力します。

クラスタ設定パラメータ

次の表に、mule-cluster.properties ファイルのパラメータを示します。

プロパティ名 説明

mule.clusterId

必須。​クラスタの一意の識別子。任意の英数字文字列になります。

mule.clusterNodeId

必須。​クラスタ内のノードの一意の ID。1 ~クラスタ内のノード数の間の整数になります。

mule.cluster.networkinterfaces

Hazelcast で使用されるインターフェースのカンマ区切りリスト。以下のようにワイルドカードがサポートされています。

192.168.1.*,192.168.100.25

mule.cluster.nodes

クラスタに属するノード。<host:port> の形式になります (例: 172.16.9.24:9000)。1 つの IP アドレスのみを指定すると、サーバがクラスタに参加できるようになります。

ポート番号は省略可能です。設定しない場合は、デフォルトは 5701 になります。複数のホストを含めるには、カンマ区切りリストを作成します。

このオプションでは、指定した固定 IP アドレスでクラスタを設定します。クラスタノードの検出にマルチキャストを使用しない場合、このオプションを使用します。このオプションを使用する場合、mule.cluster.multicastenabledfalse に設定します。そのように設定しないと、クラスタを開始するときに例外がスローされます。(この表の次の項目を参照)。

例:

ポート 9000 をリスンする 2 つのノード:

172.16.9.24:9000,172.16.9.51:9000

ポート 5701 をリスンする 2 つのノード:

192.168.1.19,192.168.1.20

mule.cluster.quorumsize

稼働状態を維持するためにクラスタ内に必要なマシンの最小数を定義できます。

mule.cluster.multicastenabled

(Boolean (ブール)) マルチキャストを有効/無効にします。クラスタノードの検出に固定 IP アドレスを使用する場合、false に設定します (上記の mule.cluster.nodes オプションを参照)。
true に設定する場合、mule.cluster.nodes で IP アドレスを設定しないでください。

mule.cluster.multicastgroup

使用するマルチキャストグループ IP アドレス。

mule.cluster.multicastport

使用するマルチキャストポート番号。

mule.cluster.jdbcstoreurl

永続データを保存する場合のみ必須
データベースに接続するための JDBC URL

mule.cluster.jdbcstoreusername

永続データを保存する場合のみ必須
データベースのユーザ名

mule.cluster.jdbcstorepassword

永続データを保存する場合のみ必須
データベースのユーザパスワード

mule.cluster.jdbcstoredriver

永続データを保存する場合のみ必須
JDBC ドライバのクラス名

mule.cluster.jdbcstorequerystrategy

永続データを保存する場合のみ必須
保存されているオブジェクトデータにアクセスするための SQL 言語。
このプロパティは、3 つの異なる値 (mssqlmysqlpostgresql) を取ります。

mule.cluster.jmxenabled

(Boolean (ブール)) 監視を有効/無効にします。

mule.cluster.listenersenabled

(Boolean (ブール)) メンバーシップリスナを有効/無効にします。クラスタメンバーが参加または離脱したときにノードに通知するには、true に設定します。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub