メッセージ ブローカーにメッセージを送信するアプリケーションが必要な状況があります。ブローカをリッスンしている別のクライアントは、キューからメッセージを消費し、メッセージのタイプを判断して、メッセージを適切なハンドラに渡す必要があります。
たとえば、Fizz
POJO が JSON としてシリアル化されてからブローカーに送信される場合、他のプロセスはそれを消費し、JSON からインスタンスに逆シリアル化してから、プロセッサFizz
に渡すことを認識している必要があります。メッセージについても同様です。デシリアライズして に戻し、などに送信する必要があります。Fizz
FizzHandler
Buzz
Buzz
BuzzHandler
ルートの擬似コードは次のようになるはずです。
from(broker)
.unmarshal().json(JsonLibrary.Gson)
.dynamicRouter(someMechanismForDeterminingHandler)
私は動的ルーターがこの問題に適したプロセッサであると信じていますが、EIP の専門家ではないので、私の要素から外れている可能性があります。
ここでの 2 つの大きな問題:
- Camel-GSON は、あるタイプの JSON が
Fizz
オブジェクトを表し、JSON の別の文字列がオブジェクトを表していることをどうやって知ることができるBuzz
でしょうか? - 逆シリアル化されたメッセージを正しいハンドラにルーティングするには、どの EIP/Camel DSL/プロセッサを使用する必要がありますか?