私が取り組むアプリケーションでは、TCPソケットからのメッセージが連続して流れています。メッセージにはさまざまな種類があります。さまざまな種類のメッセージを並行して処理する必要があります。しかし、それぞれの特定のタイプのメッセージは、入ってくる順に処理する必要があります。 私はSpring統合からExecutorChannelを使用し、並列処理の必要性を解決しました。特定の種類のメッセージごとにチャネルを作成しました。 しかし、私は特定のタイプのメッセージの順序付けられた処理を保証することはできません。Spring統合 - 並列オーダー処理
パブリッシュ/サブスクライブチャネルでオーダー処理を行う方法はありますか?並列処理も使用していますか?
ExecutorChannelはExecutorをコンストラクタパラメータとして受け入れるため、異なるメッセージタイプごとに同じスレッドで常に動作するようにするにはどうすればよいですか? maxpoolsizeが1のスレッドプールエグゼキュータを割り当てますか? –
もう一度:あなたが持っている多くのメッセージタイプと同じくらい多くのシングルスレッドExecutorChannelsが必要です。 1つのエグゼキュータチャネルは、タイプ別にルーティングされるメッセージのために、シングルスレッドエグゼキュータに基づいているため、適切な順序が保証されています。 –
私の答えにはもう1つの可能なオプションもあります。 –