Flex Gateway新着情報
Governance新着情報
Monitoring API Managerクラスターを作成および管理する方法は 2 つあります。
Runtime Manager を使用する
設定手順は、「クラスター」を参照してください。
手動で設定ファイルを使用する
クラスター管理ツールを混在させないでください。
手動で行ったクラスター設定は Anypoint Runtime Manager とは同期されないため、プラットフォームで変更を行うと、クラスター設定ファイルが上書きされます。この状況を回避するには、手動での設定または Anypoint Runtime Manager を使用した設定のどちらかの方法のみでクラスターの作成と管理を行ってください。
クラスター内のすべてのノードは、次の同じバージョンを使用する必要があります。
Mule Runtime Engine
4.3.0-20210322 などの累積パッチリリースを使用している場合は、すべての Mule インスタンスの累積パッチバージョンが同じである必要があります。
Runtime Manager エージェントのバージョン
Java
設定ファイルを使用して手動でクラスターを作成する手順は、次のとおりです。
ノードが実行されていないことと、Mule Runtime サーバーが停止していることを確認します。
ノードの $MULE_HOME/.mule
ディレクトリ内に mule-cluster.properties
という名前のファイルを作成します。
パラメーター = 値のペア (1 行に 1 つ) を使用してファイルを編集します。以下の例を参照してください。
注意: mule.clusterId
と mule.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>
...
クラスターに含めるすべての Mule サーバーでこの手順を繰り返します。
ノードの Mule サーバーを開始します。
使用可能なパラメーターの完全なリストについては、[Cluster Configuration Parameters]を参照してください。
クラスターの手動管理は、手動で作成されたクラスターでのみ可能です。
クラスターノードの設定を手動で変更する手順は、次のとおりです。
ノードの Mule サーバーを停止します。
必要に応じてノードの mule-cluster.properties
を編集し、ファイルを保存します。
ノードの Mule サーバーを再起動します。
設定ファイルで適用するオプションがすべてのクラスターノードで有効であることを確認しておかないと、クラスター設定が壊れてクラスターが無効化される場合があります。 |
手動で設定したクラスターを管理する場合、クラスターが稼働するのに必要なマシンの最小クォーラムを設定できるようになりました。
ネットワークをパーティション分割する場合、デフォルトでクラスターを使用できます。ただし、最小クォーラムサイズを設定すると、最小しきい値を満たしていない更新を拒否するようにクラスターを設定できます。
これにより、一貫性が向上し、予期せずにノード (クラスター内の Mule Runtime) が失われた場合にクラスターを保護できます。
通常の状況では、クラスター内のノードが停止しても、データを保存するのに十分なメモリがありますが、使用可能なノードが少なくなるため要求の処理に使用できるスレッド数が減少し、クラスター内のパーティションスレッドがすぐに不足する可能性があります。そのため、次のことが発生する場合があります。
クライアントの要求を処理するスレッドがなくなり、クライアントが置き去りになる。
応答できない要求が多すぎて残りのクラスターメンバーで処理しきれなくなり、停止していると想定されてクラスターから除外されます。
メンバーが失われた場合にクラスターの残りのメンバーを保護するには、ノードの同時更新を停止する最小クォーラムサイズを設定します。これにより、クラスター内のアクティブなノードの数が設定値を下回ったとき、QuorumException がスローされます。
クラスターのクォーラムサイズを設定する場合には QuorumExceptions をキャッチして、メールの送信、プロセスの停止、ログの実行、再試行戦略の実行などを実行するようにしてください。 |
クォーラムを有効にするには、mule.cluster.quorumsize
プロパティをクラスター設定ファイル {MULE_HOME}/.mule/mule-cluster.properties
に配置して、稼働状態を維持するためのクラスターの最小ノード数を定義します。
クォーラム機能は、オブジェクトストアを使用するコンポーネントでのみ有効です。 |
クラスターオブジェクトストアの永続性を維持するには、中央 JDBC ストアをセットアップしてください。そうしないと、オブジェクトストア設定で永続性設定が有効になっていても、すべてのクラスターノードをシャットダウンした場合にオブジェクトストアのコンテンツが失われます。 |
Mule Runtime Engine をオンプレミスで使用する場合は、すべてのクラスターノードからアクセスできる中央システムに JDBC データを永続的に保存できます。
以下のリレーショナルデータベースシステムがサポートされています。
MySQL 5.5+
PostgreSQL 9
Microsoft SQL Server 2014
Microsoft SQL Server 2019
Microsoft SQL Server 2022
オブジェクトストアの永続性を有効にするには、データベースを作成し、{MULE_HOME}/.mule/mule-cluster.properties
ファイルでその設定値を定義します。
mule.cluster.jdbcstoreurl
: データベースに接続するための JDBC URL
mule.cluster.jdbcstoreusername
: データベースのユーザー名
mule.cluster.jdbcstorepassword
: データベースのユーザーパスワード
mule.cluster.jdbcstoredriver
: JDBC ドライバーのクラス名
mule.cluster.jdbcstorequerystrategy
: SQL 言語
このパラメーターで有効な設定値については、クラスター設定パラメーターを参照してください。
この機能により、保持するオブジェクトストアごとにテーブルが作成されるため、データベースのテーブルは自動的に作成されます。
オブジェクトストアごとに 2 つのテーブルが作成されます。
データを保存するテーブル
パーティションを保存するテーブル。
JDBC ストアでのみ使用される専用データベース/スキーマを作成することをお勧めします。
データベースのユーザー名は、次の権限が必要です。
データベース (DDL
) でのテーブル用のオブジェクト CREATE
および DROP
の作成。
作成するオブジェクト (DML
)、INSERT
、UPDATE
、DELETE
、および SELECT
のアクセスと管理。
データストレージは、すべてのノードからアクセスできる中央 DB でホストする必要があることを常に念頭に置いてください。クラスターごとに複数のデータベースを使用しないでください。
これらの値の設定方法についての詳細は、永続性のクラスター設定リファレンスを参照してください。
一部のリレーショナルデータベースにはテーブル名の長さに関する特定の制約があります。mule.cluster.jdbcstoretableNametransformerstrategy
プロパティを使用して長いテーブル名を短い値に変換します。
このプロパティの設定方法についての詳細は、テーブル名トランスフォーマーセクションを参照してください。
永続的なオブジェクトストアは、ComboPooledDataSource
Java クラスに基づいたデータベース接続プールを使用します。Mule Runtime Engine は、接続プールの動作の明示的な値を設定しません。標準設定では、各プロパティのデフォルト値を使用します。
たとえば、maxIdleTime
のデフォルト値は 0 です。これは、アイドル接続の期限が切れず、プールから削除されないことを意味します。アイドル接続は、アイドル状態でデータベースに接続されたままになります。
接続プールの動作を設定するには、次のいずれかのオプションを使用して目的のパラメーター値をランタイムに渡します。
Mule の起動時にコマンドラインで複数のパラメーターを渡す。
$ $MULE_HOME/bin/mule start \
-M-Dc3p0.maxIdleTime=<value> \
-M-Dc3p0.maxIdleTimeExcessConnections=<value>
<value>
を目的の値 (ミリ秒) に置き換えます。
$MULE_HOME/conf/wrapper.conf
ファイルに複数行を追加する。
wrapper.java.additional.<n>=-Dc3p0.maxIdleTime=<value> wrapper.java.additional.<n>=-Dc3p0.maxIdleTimeExcessConnections=<value>
<n>
を wrapper.conf
ファイルの次に大きい順次値に置き換えます。
ComboPooledDataSource Java クラスのプール設定についての詳細は、 この記事を参照してください。
|
JMX テクノロジーを使用して、クラスターメンバーでスローされるイベントを監視できます。
JMX 監視オプションは、デフォルトで無効になっています。有効にするには、mule.cluster.jmxenabled
プロパティを {MULE_HOME}/.mule/mule-cluster.properties
設定ファイルに追加します。
JMX を有効にすると、パフォーマンスのオーバーヘッドが発生する可能性があります (基盤となる構造で各ノードの統計を取得するためのリスナーが追加される場合)。
mule.cluster.jdbcstoretableNametransformerstrategy
プロパティを使用して、テーブル名を変更するためのカスタムトランスフォーマーを定義できます。
たとえば、mule-cluster.properties
ファイルに次のプロパティを設定すると、Mule は MD5 とプレフィックスを使用してテーブル名をハッシュし、テーブルを Mule テーブルとして識別します。
mule.cluster.jdbcstoretableNametransformerstrategy=com.mulesoft.mule.runtime.module.cluster.api.persistence.query.MD5TableNameTransformerStrategy
テーブル名をハッシュすることで確実に長さの制約が守られます。
com.mulesoft.mule.runtime.module.cluster.api.persistence.query.TableNameTransformerStrategy
インターフェースを実装してカスタムトランスフォーマー戦略を作成してから、mule.cluster.jdbcstoretableNametransformerstrategy
プロパティにカスタムトランスフォーマー戦略を設定することもできます。
次の表に、mule-cluster.properties
ファイルのパラメーターを示します。
プロパティ名 | 説明 | 必須 |
---|---|---|
|
クラスターの一意の識別子。任意の英数字文字列になります。 |
はい |
|
クラスター内のノードの一意の ID。1 ~クラスター内のノード数の間の整数になります。 |
はい |
|
クラスターに属するノードの数。 |
はい |
|
Hazelcast で使用されるインターフェースのカンマ区切りリスト。以下のようにワイルドカードがサポートされています。 192.168.1.*,192.168.100.25 |
いいえ |
|
クラスターに属するノード。 ポート番号は省略可能です。設定しない場合は、デフォルトは 5701 になります。複数のホストを含めるには、カンマ区切りリストを作成します。 このオプションでは、指定した固定 IP アドレスでクラスターを設定します。クラスターノードの検出にマルチキャストを使用しない場合、このオプションを使用します。このオプションを使用する場合、 例: ポート 9000 をリスンする 2 つのノード: 172.16.9.24:9000,172.16.9.51:9000 ポート 5701 をリスンする 2 つのノード: 192.168.1.19,192.168.1.20 |
いいえ |
|
稼働状態を維持するためにクラスター内に必要なマシンの最小数を定義できます。 |
いいえ |
|
(Boolean (ブール)) マルチキャストを有効/無効にします。クラスターノードの検出に固定 IP アドレスを使用する場合、 |
いいえ |
|
使用するマルチキャストグループ IP アドレス。 |
いいえ |
|
使用するマルチキャストポート番号。 |
いいえ |
データベースに接続するための JDBC URL |
永続データを保存する場合のみ必須。 |
|
|
データベースのユーザー名 |
永続データを保存する場合のみ必須。 |
|
データベースのユーザーパスワード |
永続データを保存する場合のみ必須。 |
|
JDBC ドライバーのクラス名 |
永続データを保存する場合のみ必須。 |
|
保存されているオブジェクトデータにアクセスするための SQL 言語。
このプロパティは、3 つの異なる値 ( |
永続データを保存する場合のみ必須。 |
|
(Boolean (ブール)) 監視を有効/無効にします。 |
いいえ |
|
(Boolean (ブール)) メンバーシップリスナーを有効/無効にします。クラスターメンバーが参加または離脱したときにノードに通知するには、 |
いいえ |