10.4.4. 分散タスクのフェイルオーバー


分散実行フレームワークは、タスクのフェイルオーバーをサポートします。デフォルトでは、フェイルオーバーポリシーはインストールされず、タスクの Runnable/Callable/DistributedCallable は単に失敗します。フェイルオーバーメカニズムは以下の場合に呼び出されます。

a)Failover(タスクが実行されているノード障害)

B)タスクの失敗によりフェイルオーバーを実行します(呼び出し可能なタスクが例外をスローするなど)。

Red Hat Data Grid は、そのノードが利用可能な場合、別のランダムなノードで分散タスクの一部の実行を試みるランダムなノードフェイルオーバーポリシーを提供します。ただし、より高度なフェイルオーバーポリシーを実装する必要があるユーザーは、DistributedTaskFailoverPolicy インターフェースを実装することができます。たとえば、完了していないタスクのフェイルオーバーに一貫性のあるハッシュ(CH)メカニズムを使用する必要がある場合があります。CH ベースのフェイルオーバーは、失敗したノード F で実行された入力データのバックアップを持つクラスターノードへの失敗したタスク T 等の可能性があります。

/**
 * DistributedTaskFailoverPolicy allows pluggable fail over target selection for a failed remotely
 * executed distributed task.
 *
 */
public interface DistributedTaskFailoverPolicy {

   /**
    * As parts of distributively executed task can fail due to the task itself throwing an exception
    * or it can be a system caused failure (e.g node failed or left cluster during task
    * execution etc).
    *
    * @param failoverContext
    *           the FailoverContext of the failed execution
    * @return result the Address of the node selected for fail over execution
    */
   Address failover(FailoverContext context);

   /**
    * Maximum number of fail over attempts permitted by this DistributedTaskFailoverPolicy
    *
    * @return max number of fail over attempts
    */
   int maxFailoverAttempts();
}
Copy to Clipboard Toggle word wrap

そのため、たとえば、以下によってランダムフェイルオーバーの実行ポリシーを指定するだけです。

DistributedExecutorService des = new DefaultExecutorService(cache);
DistributedTaskBuilder<Boolean> taskBuilder = des.createDistributedTaskBuilder(new SomeCallable());
taskBuilder.failoverPolicy(DefaultExecutorService.RANDOM_NODE_FAILOVER);
DistributedTask<Boolean> distributedTask = taskBuilder.build();
Future<Boolean> future = des.submit(distributedTask);
Boolean r = future.get();
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る