質問: 通常のキューとSEDAのキュー Apache Camelに新しいので、私は最近、コンポーネントの長いリストを見直し、 SEDAキュー このページは私にはあまり意味がありませんでした。そのため、「SEDAキュー」という用語をオンラインで検索し、ウィキペディアの記事[ここ](https://en.wikipedia.org/wiki/Staged_event- driven_architecture )を参照してください。 その記事を読んだ後、私はSEDAキューと普通の「普通の」キューの違いを知ることができません!両方とも、非同期キューを使用してデカップリングシステムの概念を採用しています。 この記事から、「SEDA」は、各コンポーネント間にキューを置くことからなるアーキテクチャのように聞こえるだけです。これは正しいです? しかし、それが単なるアーキテクチャであれば、なぜ "SEDA"キューは特別なApache Camelコンポーネントですか?
回答: SEDAは、メッセージ処理のさまざまなフェーズ間のフローを調整するメカニズムとして設計された**ステージングイベント駆動アーキテクチャ**の略語です。考え方は、プロセス全体からのメッセージ出力の自由度をスムーズにして入力に一致させることです。これにより、消費者スレッドは長期実行の作業をbakgroundに委ねることができ、メッセージを消費することができます輸送から。 交換がseda:エンドポイントに渡されるとき、それはBlockingQueueに配置されます。このリストは、同じコンテキスト内にあるルートだけがこの種のエンドポイントによって結合されることを意味する、ラクダのコンテキスト内に存在します。キューはデフォルトでは無制限ですが、コンシューマのURIにsize属性を設定することで変更できます。 デフォルトでは、エンドポイントに割り当てられた1つのスレッドは、リストからエクスチェンジを読み取り、それらをルート経由で処理します。手続きの例に見られるように、concurrenctConsumersの数を増やして、交換機が適時にそのリストから処理されるようにすることが可能です。 SEDAパターンは、1つの経路が処理を終了し、次の段階に対処するために別の経路にハンドオフする、InOnlyメッセージの処理に最適です。メッセージ交換パターンがInOutのときに呼び出すことで、seda:エンドポイントからの応答を要求することができます 参照。 Apache Camel Developer's Cookbook