---
schema_version: "1"
id: 9e5c4672cb8112cec28a276d414688ec85a2e98a927587f8ad87c08a9f9145a9
title: 手動によるクラスターの作成および管理
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.3/creating-and-managing-a-cluster-manually.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.3/creating-and-managing-a-cluster-manually
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 5a91363c3af0563d021583f5193e898a2caa0f9bba308c2cb6e815cd01235fa6
description: MuleSoft Documentation Site
release: "4.3"
latest: false
---
# 手動によるクラスターの作成および管理

クラスターを作成および管理する方法は 2 つあります。

- Runtime Manager を使用する
    
    設定手順は、​[「クラスター」](https://docs.mulesoft.com/jp/runtime-manager/cluster-about)​を参照してください。
- 手動で設定ファイルを使用する

## [](#クラスターの要件と制限事項)クラスターの要件と制限事項

- クラスター管理ツールを混在させないでください。
    
    手動で行ったクラスター設定は Anypoint Runtime Manager とは同期されないため、プラットフォームで変更を行うと、クラスター設定ファイルが上書きされます。この状況を回避するには、手動での設定または Anypoint Runtime Manager を使用した設定のどちらかの方法のみでクラスターの作成と管理を行ってください。
- クラスター内のすべてのノードは、次の同じバージョンを使用する必要があります。
    
    - Mule Runtime Engine
        
        4.3.0-20210322 などの累積パッチリリースを使用している場合は、すべての Mule インスタンスの累積パッチバージョンが同じである必要があります。
    - Runtime Manager エージェントのバージョン
    - Java

## [](#手動でクラスターを作成する)手動でクラスターを作成する

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

1. ノードが実行されていないことと、Mule Runtime サーバーが停止していることを確認します。
2. ノードの ​`$MULE_HOME/.mule`​ ディレクトリ内に ​`mule-cluster.properties`​ という名前のファイルを作成します。
3. パラメーター = 値のペア (1 行に 1 つ) を使用してファイルを編集します。以下の例を参照してください。
    
    **注意**​: `mule.clusterId`​ と ​`mule.clusterNodeId`​ は、プロパティファイルに存在している必要があります。
    
    ```text
    ...
    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 サーバーを開始します。

使用可能なパラメーターの完全なリストについては、​[\[Cluster Configuration Parameters\]](<#Cluster Configuration Parameters>)​を参照してください。

## [](#手動でクラスターを管理する)手動でクラスターを管理する

クラスターの手動管理は、手動で作成されたクラスターでのみ可能です。

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

1. ノードの Mule サーバーを停止します。
2. 必要に応じてノードの ​`mule-cluster.properties`​ を編集し、ファイルを保存します。
3. ノードの Mule サーバーを再起動します。

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-caution" title="Caution"></i>
</td>
<td class="content">
<div class="paragraph">
<p>設定ファイルで適用するオプションがすべてのクラスターノードで有効であることを確認しておかないと、クラスター設定が壊れてクラスターが無効化される場合があります。</p>
</div>
</td>
</tr>
</tbody></table>

### [](#クォーラム管理)クォーラム管理

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

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

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

- クライアントの要求を処理するスレッドがなくなり、クライアントが置き去りになる。
- 応答できない要求が多すぎて残りのクラスターメンバーで処理しきれなくなり、停止していると想定されてクラスターから除外されます。

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

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-caution" title="Caution"></i>
</td>
<td class="content">
<div class="paragraph">
<p>クラスターのクォーラムサイズを設定する場合には QuorumExceptions をキャッチして、メールの送信、プロセスの停止、ログの実行、再試行戦略の実行などを実行するようにしてください。</p>
</div>
</td>
</tr>
</tbody></table>

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

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>クォーラム機能は、オブジェクトストアを使用するコンポーネントでのみ有効です。</p>
</div>
</td>
</tr>
</tbody></table>

### [](#オブジェクトストアの永続性)オブジェクトストアの永続性

Mule Runtime Engine をオンプレミスで使用する場合は、すべてのクラスターノードからアクセスできる中央システムに JDBC データを永続的に保存できます。

以下のリレーショナルデータベースシステムがサポートされています。

- MySQL 5.5+
- PostgreSQL 9
- Microsoft SQL Server 2014

オブジェクトストアの永続性を有効にするには、データベースを作成し、​`{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 言語
    
    このパラメーターで有効な設定値については、​[クラスター設定パラメーター](#cluster-config-params)​を参照してください。

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

- データを保存するテーブル
- パーティションを保存するテーブル。

#### [](#オブジェクトストアデータベースの推奨事項)オブジェクトストアデータベースの推奨事項

- JDBC ストアでのみ使用される専用データベース/スキーマを作成することをお勧めします。
- データベースのユーザー名は、次の権限が必要です。
    
    - データベース (​`DDL`​) でのテーブル用のオブジェクト ​`CREATE`​ および ​`DROP`​ の作成。
    - 作成するオブジェクト (​`DML`​)、​`INSERT`​、​`UPDATE`​、​`DELETE`​、および ​`SELECT`​ のアクセスと管理。
- データストレージは、すべてのノードからアクセスできる中央 DB でホストする必要があることを常に念頭に置いてください。クラスターごとに複数のデータベースを使用しないでください。  
    これらの値の設定方法についての詳細は、​[永続性のクラスター設定リファレンス](#persistency-config)​を参照してください。
- 永続的なオブジェクトストアは、​`ComboPooledDataSource`​ Java クラスに基づいたデータベース接続プールを使用します。Mule Runtime Engine は、接続プールの動作の明示的な値を設定しません。標準設定では、各プロパティのデフォルト値を使用します。  
    たとえば、​`maxIdleTime`​ のデフォルト値は 0 です。これは、アイドル接続の期限が切れず、プールから削除されないことを意味します。アイドル接続は、アイドル状態でデータベースに接続されたままになります。  
    接続プールの動作を設定するには、次のいずれかのオプションを使用して目的のパラメーター値をランタイムに渡します。
    
    - Mule の起動時にコマンドラインで複数のパラメーターを渡す。
        
        ```console
        $ $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`​ ファイルの次に大きい順次値に置き換えます。
        
        <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><code>ComboPooledDataSource</code>​ Java クラスのプール設定についての詳細は、 <a href="http://www.mchange.com/projects/c3p0/#configuration">この記事</a>​を参照してください。</td></tr></tbody></table>

### [](#監視)監視

[JMX テクノロジー](http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html)​を使用して、クラスターメンバーでスローされるイベントを監視できます。

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

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

### [](#メンバーシップリスナー)メンバーシップリスナー

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

1. 新しいメンバーがクラスターに追加される
2. 既存のメンバーがクラスターから離脱する

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

## [](#cluster-config-params)クラスター設定パラメーター

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

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">プロパティ名</th>
<th class="tableblock halign-left valign-top">説明</th>
<th class="tableblock halign-left valign-top">必須</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.clusterId</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クラスターの一意の識別子。任意の英数字文字列になります。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>はい</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.clusterNodeId</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クラスター内のノードの一意の ID。1 ～クラスター内のノード数の間の整数になります。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>はい</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.clusterSize</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クラスターに属するノードの数。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>はい</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.networkinterfaces</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Hazelcast で使用されるインターフェースのカンマ区切りリスト。以下のようにワイルドカードがサポートされています。</p>
</div>
<div class="listingblock">
<div class="content">
<pre>192.168.1.*,192.168.100.25</pre>
</div>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.nodes</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クラスターに属するノード。​<code>&lt;host:port&gt;</code>​ の形式になります (例: <code>172.16.9.24:9000</code>​)。1 つの IP アドレスのみを指定すると、サーバーがクラスターに参加できるようになります。</p>
</div>
<div class="paragraph">
<p>ポート番号は省略可能です。設定しない場合は、デフォルトは 5701 になります。複数のホストを含めるには、カンマ区切りリストを作成します。</p>
</div>
<div class="paragraph">
<p>このオプションでは、指定した固定 IP アドレスでクラスターを設定します。クラスターノードの検出にマルチキャストを使用しない場合、このオプションを使用します。このオプションを使用する場合、​<code>mule.cluster.multicastenabled</code>​ を ​<code>false</code>​ に設定します。そのように設定しないと、クラスターを開始するときに例外がスローされます。(この表の次の項目を参照)。<br></p>
</div>
<div class="paragraph">
<p>例:</p>
</div>
<div class="paragraph">
<p>ポート 9000 をリスンする 2 つのノード:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>172.16.9.24:9000,172.16.9.51:9000</pre>
</div>
</div>
<div class="paragraph">
<p>ポート 5701 をリスンする 2 つのノード:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>192.168.1.19,192.168.1.20</pre>
</div>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.quorumsize</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>稼働状態を維持するためにクラスター内に必要なマシンの最小数を定義できます。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.multicastenabled</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>(Boolean (ブール))</strong>​ マルチキャストを有効/無効にします。クラスターノードの検出に固定 IP アドレスを使用する場合、​<code>false</code>​ に設定します (上記の ​<code>mule.cluster.nodes</code>​ オプションを参照)。<br>
<code>true</code>​ に設定する場合、​<code>mule.cluster.nodes</code>​ で IP アドレスを設定しないでください。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.multicastgroup</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>使用するマルチキャストグループ IP アドレス。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.multicastport</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>使用するマルチキャストポート番号。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="persistency-config"></a> ​<code>mule.cluster.jdbcstoreurl</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>データベースに接続するための JDBC URL</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>永続データを保存する場合のみ必須。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.jdbcstoreusername</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>データベースのユーザー名</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>永続データを保存する場合のみ必須。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.jdbcstorepassword</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>データベースのユーザーパスワード</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>永続データを保存する場合のみ必須。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.jdbcstoredriver</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>JDBC ドライバーのクラス名</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>永続データを保存する場合のみ必須。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.jdbcstorequerystrategy</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>保存されているオブジェクトデータにアクセスするための SQL 言語。
このプロパティは、3 つの異なる値 (​<code>mssql</code>​、​<code>mysql</code>​、​<code>postgresql</code>​) を取ります。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>永続データを保存する場合のみ必須。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.jmxenabled</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>(Boolean (ブール))</strong>​ 監視を有効/無効にします。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>mule.cluster.listenersenabled</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><strong>(Boolean (ブール))</strong>​ メンバーシップリスナーを有効/無効にします。クラスターメンバーが参加または離脱したときにノードに通知するには、​<code>true</code>​ に設定します。</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>いいえ</p>
</div></div></td>
</tr>
</tbody>
</table>