2

メッセージ ブローカーにメッセージを送信するアプリケーションが必要な状況があります。ブローカをリッスンしている別のクライアントは、キューからメッセージを消費し、メッセージのタイプを判断して、メッセージを適切なハンドラに渡す必要があります。

たとえば、FizzPOJO が JSON としてシリアル化されてからブローカーに送信される場合、他のプロセスはそれを消費し、JSON からインスタンスに逆シリアル化してから、プロセッサFizzに渡すことを認識している必要があります。メッセージについても同様です。デシリアライズして に戻し、などに送信する必要があります。FizzFizzHandlerBuzzBuzzBuzzHandler

ルートの擬似コードは次のようになるはずです。

from(broker)
    .unmarshal().json(JsonLibrary.Gson)
    .dynamicRouter(someMechanismForDeterminingHandler)

私は動的ルーターがこの問題に適したプロセッサであると信じていますが、EIP の専門家ではないので、私の要素から外れている可能性があります

ここでの 2 つの大きな問題:

  • Camel-GSON は、あるタイプの JSON がFizzオブジェクトを表し、JSON の別の文字列がオブジェクトを表していることをどうやって知ることができるBuzzでしょうか?
  • 逆シリアル化されたメッセージを正しいハンドラにルーティングするには、どの EIP/Camel DSL/プロセッサを使用する必要がありますか?
4

1 に答える 1