クラス PartitionedDispatcher

java.lang.ObjectSE
org.springframework.integration.dispatcher.AbstractDispatcher
org.springframework.integration.dispatcher.PartitionedDispatcher
実装されたすべてのインターフェース:
MessageDispatcher

public class PartitionedDispatcher extends AbstractDispatcher
ディスパッチするメッセージに対して提供された関数によって決定されたキーに従って、メッセージを専用スレッドに配布するための AbstractDispatcher 実装。

このクラスによって作成されるすべてのパーティションは、単一スレッド ExecutorSE に基づく UnicastingDispatcher デリゲートです。

すべてのパーティションはメッセージ処理用の専用スレッドに基づいているため、パーティションの数はアプリケーション環境にとって適切な値である必要があります。

残りのロジックは UnicastingDispatcher の動作と似ています。

導入:
6.1
作成者:
Artem Bilan, Christian Tzolov
  • コンストラクターの詳細

    • PartitionedDispatcher

      public PartitionedDispatcher(int partitionCount, FunctionSE<Message<?>,ObjectSE> partitionKeyFunction)
      指定されたパーティション数に基づいてインスタンスを作成し、ディスパッチするメッセージに対するパーティションキーの関数を作成します。
      パラメーター:
      partitionCount - このチャネルのパーティションの数。
      partitionKeyFunction - ディスパッチするメッセージに対してパーティションキーを解決する関数。
  • メソッドの詳細

    • setThreadFactory

      public void setThreadFactory(ThreadFactorySE threadFactory)
      パーティションごとにエグゼキュータの ThreadFactorySE を設定します。デフォルトは、partition-thread- プレフィックスに基づく CustomizableThreadFactory です。
      パラメーター:
      threadFactory - 使用する ThreadFactorySE
    • setFailover

      public void setFailover(boolean failover)
      パーティションディスパッチャーでフェイルオーバーを有効にするかどうかを指定します。デフォルトでは、そうなります。無効にするには、この値を "false" に設定します。
      パラメーター:
      failover - フェールオーバーブール値。
    • setFailoverStrategy

      public void setFailoverStrategy(PredicateSE<ExceptionSE> failoverStrategy)
      スローされた例外に対してチャネルのディスパッチャーがフェイルオーバーを有効にするかどうかの戦略を構成します。setFailover(boolean) オプションをオーバーライドします。つまり、このオプションまたはそのオプションを設定する必要があります。
      パラメーター:
      failoverStrategy - フェールオーバーブール値。
      導入:
      6.3
    • setLoadBalancingStrategy

      public void setLoadBalancingStrategy(@Nullable LoadBalancingStrategy loadBalancingStrategy)
      パーティションディスパッチャーには LoadBalancingStrategy を提供します。
      パラメーター:
      loadBalancingStrategy - 負荷分散戦略の実装。
    • setErrorHandler

      public void setErrorHandler(ErrorHandler errorHandler)
      パーティション ExecutorSEErrorHandlingTaskExecutor にラップするための ErrorHandler を提供します。
      パラメーター:
      errorHandler - 使用する ErrorHandler
    • setMessageHandlingTaskDecorator

      public void setMessageHandlingTaskDecorator(MessageHandlingTaskDecorator messageHandlingTaskDecorator)
      MessageHandlingTaskDecorator を設定して、メッセージ処理タスクを何らかの追加ロジックにラップします。メッセージチャネルは、その操作のインターセプトを提供する場合があります。
      パラメーター:
      messageHandlingTaskDecorator - 使用する MessageHandlingTaskDecorator
    • shutdown

      public void shutdown()
      アプリケーションを閉じるときにこのディスパッチャーをシャットダウンします。パーティションエグゼキュータがシャットダウンされ、このインスタンスの内部状態がクリアされます。
    • dispatch

      public boolean dispatch(Message<?> message)
      インターフェースからコピーされた説明: MessageDispatcher
      メッセージをディスパッチします。
      パラメーター:
      message - メッセージ。
      戻り値:
      ディスパッチされた場合は true。