0

メッセージがあり、可変数のキューで処理する必要があります。キューは、電子メール、監査、Webhook処理、s3ストレージなどのさまざまな目的を処理します。各メッセージには、これらのトピックのいずれか、一部、またはすべてをターゲットとして含めることができます。たとえば、次のメッセージが表示される可能性があります。

  • メッセージ1:audit.webhook
  • メッセージ2:webhook
  • メッセージ3:email.audit.webhook.s3

私は4つのトピックを示しましたが、100になる可能性があることに注意してください。これはトピック交換で処理できますか?たとえば、トピック.webhookになります。メッセージ2を見逃しますか?キューwebhook。*、.webhookに3つのトピックを追加できますかおよび*.webhookを使用してすべての潜在的なメッセージを処理します。または、webhookが終了する正確な位置を知る必要がありますか.webhook。。*または.webhookになります。メッセージ1とメッセージ3の両方をキャプチャするのに十分ですか?これはトピック交換を介してまったく処理できますか、それとも私はこれをすべて間違って見ていますか?

追加のテスト後に編集

ルーティングは私が望んでいたほど柔軟ではないようです。私が達成したいことを行うには、たとえば、のWebhookキューのバインディングが必要になるようです。*。webhook、およびメッセージは常にwebhookを4番目の位置に保持する必要があるため、webhookのみに送信されるメッセージのルーティングキーは、例として「null、null、null、webhook、null」である必要があります。 、nullなど。

私のテストは正しいですか?これは正しくないように思われるので、私は尋ねます。私はもっ​​と柔軟性があると思います。つまり、私が達成したいことを達成するためのより良い方法です。

4

1 に答える 1

1

#は複数のキーを持つことができるので役立つと思います。例えば:

webhook.#

と同等である可能性があります:

webhook.*

また

webhook.*.*.*.*.*

またはその中間またはそれ以上の何か。私はキーの前にそれを試したことがありません。

#.webhook.#

しかし、それはあなたが調査するものでなければなりません。

さらに、ルーティング/バインディングキーをより適切に設計することで、問題を解決できると思います。これらのメッセージはすべて同じ交換に送信されるため、ルーティングキーのパターンは同じである必要があります。

于 2012-09-20T05:05:50.867 に答える