Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 4 用 Anypoint MQ Connector バージョン 4.0.7 以降では、標準キューのフェールオーバー機能が提供されます。
この機能はデフォルトでは有効化されていません。 この機能を使用する前に、mq::mq-failover.adocを参照してください。
キューのフェールオーバーを有効にしてプライマリリージョンがダウンすると、プライマリリージョンが使用可能になるまで、データは国外のリージョンに存在する可能性があります。 |
フェールオーバー機能を使用する手順は、次のとおりです。
アプリケーションの場合
Anypoint MQ Connector をバージョン 4.0.7 以降にアップグレードします。
(省略可能) チェック頻度を変更します。
Anypoint MQ の場合
キューを作成または変更し、キューのフェールオーバーを有効にします。
アプリケーションでフェールオーバー機能を有効にするには、cross.region.failover.feature.enabled
システムプロパティを true
に設定します。
このプロパティは、デフォルトでは false
に設定されています。
このフェールオーバープロパティが有効になっている場合、コネクタはプライマリキューとフェイーオーバーキューの両方の処理メッセージを処理します。 中断を防ぐため、アプリケーションは代替キューから直接パプリッシュやコンシュームを行うことはできません。 詳細は、代替キューから直接メッセージを処理するを参照してください。 |
Runtime Manager でこのアプリケーションプロパティを設定する手順は、次のとおりです。
Anypoint Platform にサインインし、ナビゲーションメニューで [Runtime Manager] をクリックします。
新しいアプリケーションをデプロイするか、デプロイ済みアプリケーションの設定を変更します。
[Properties (プロパティ)] タブで、プロパティの値を指定します。次に例を示します。
または、Anypoint Studio の [Run Configurations (設定を実行)] でプロパティを設定します。 詳細は、「Mule アプリケーションでのシステムプロパティ」を参照してください。
アプリケーションでのフェールオーバーが有効になっている場合、Anypoint MQ Connector は代替キュー (_fb
サフィックス付き) を管理し、代替キューで直接パブリッシュ、コンシューム、またはサブスクライブ操作を実行できないようにします。
アプリケーションが代替キューに直接接続すると、Anypoint MQ Connector はエラーを返します。
java.lang.IllegalArgumentException: Using fallback queue directly is not supported
(Anypoint MQ UI から) キューのフェールオーバーを無効にしてアプリケーションを再起動すると、コネクタは代替キューからパブリッシュまたはコンシュームしなくなります。
フェールオーバーを無効にした後に代替キューに残っているメッセージを処理する手順は、次のとおりです。
代替キューから直接処理するようにアプリケーションを設定します。
Consume または Subscriber 操作の場合、[Queue (キュー)] 項目を代替キューの名前に設定します。次に例を示します。
アプリケーションが代替キューから直接メッセージをコンシュームできるようにします。
Anypoint Platform にサインインし、ナビゲーションメニューで [Runtime Manager] をクリックします。
デプロイ済みアプリケーションの設定を変更します。
[Properties (プロパティ)] タブで、cross.region.failover.feature.enabled
システムプロパティを false
に設定します。次に例を示します。
または、Anypoint Studio の [Run Configurations (設定を実行)] でプロパティを設定します。 詳細は、「Mule アプリケーションでのシステムプロパティ」を参照してください。
デフォルトでは、プライマリリージョンがダウンしている場合、Anypoint MQ Connector は次のチェックを行います。
新規メッセージの場合、5 分 (300,000 ミリ秒) ごとに 1 回代替キューをチェック
1 分 (60,000 ミリ秒) ごとに 1 回プライマリリージョンがバックアップされているかどうかをプライマリキューでチェック
この動作を変更するには、次のプロパティを設定します。
プロパティ | 説明 | 最小値 | 最大値 | デフォルト値 |
---|---|---|---|---|
|
||||
代替リージョンからの処理時にコネクタがプライマリリージョンの可用性をチェックする頻度 |
1 分 (60,000 ミリ秒) |
15 分 (900,000 ミリ秒) |
1 分 (60,000 ミリ秒) |
|
|
||||
コネクタが受信メッセージの代替キューをチェックする頻度 |
1 分 (60,000 ミリ秒) |
12 時間 (4,320 万ミリ秒) |
5 分 (300,000 ミリ秒) |
Runtime Manager でこれらのアプリケーションプロパティを設定する手順は、次のとおりです。
Anypoint Platform にサインインし、ナビゲーションメニューで [Runtime Manager] をクリックします。
新しいアプリケーションをデプロイするか、デプロイ済みアプリケーションの設定を変更します。
[Properties (プロパティ)] タブで、次のプロパティの値 (ミリ秒) を指定します。
または、Anypoint Studio の [Run Configurations (設定を実行)] でこれらのプロパティを設定します。 詳細は、「Mule アプリケーションでのシステムプロパティ」を参照してください
チェック間隔を微調整するためにアプリケーションプロパティ値を設定する方法を決定する場合、次の点を考慮してください。
プライマリリージョンのダウンタイム中に代替リージョンにパブリッシュする場合、Anypoint MQ Connector の Publish 操作は、デフォルトでプライマリリージョンが 1 分に 1 回バックアップされているかどうかを確認します。
フローが Publish 操作をトリガーする頻度が 1 分に 1 回未満の場合、コネクタはこの操作がトリガーされるたびにプライマリリージョンがバックアップされているかどうかを確認します。
この動作を微調整するには、primary.region.status.check.interval.ms
の値を、フローが Publish 操作をトリガーする頻度より大きい値に設定します。
フローが Anypoint MQ Connector の Consumer または Subscriber 操作をトリガーすると、コネクタはプライマリキューをチェックする前に、代替キューで新規メッセージをチェックします (デフォルトでは 5 分ごと)。
フローが Consumer または Subscriber 操作をトリガーする頻度が 5 分ごとよりも短い場合、コネクタはプライマリキューからコンシュームする前に、代替キューで新規メッセージを確認します。
代替キューをチェックする頻度を減らすには、fallback.messages.check.interval.ms
の値を、フローが Consumer または Subscriber 操作をトリガーする頻度より大きい値に設定します。
このプロパティを高い値に設定すると、代替キュー内のメッセージは頻繁に処理されないため、メッセージは順不同になる可能性があります。 |