1

次のようなトピック交換を行います

{class}.{genus}

そのため、トピックにバインドする消費者がいます

mammal.*

(またはbird.*、など)

ここで、後で種の情報を含めたいとします。そのため、トピック交換は次のようになります。

{class}.{genus}.{species}

今、古い消費者は壊れています:(

ただし、それらは次のようにバインドできます

mammal.*.#

そして、今後どんな情報が追加されるかを聞くことができました。しかし、これは私のチームが独自に考え出したものであり、私は次のように尋ねました。

  • これは良い習慣ですか?
  • これには注意すべきトレードオフがありますか?
  • 複数の取引所に公開することなく、既存のコンシューマーを壊すことなくプロデューサーが情報を追加できるようにする別の方法はありますか?
4

1 に答える 1

0

通常、キュー配信を最大限に制御する必要があり、rabbitでロジックを実行したい場合は、ヘッダー交換を検討する必要があります。

通常、公開をコード化するとき、どのキューに移動する必要があるかが正確にわかっているため、ルーティングキーとブール値のどちらを使用するかは、アプリケーションによってはあまり違いがない場合があります。

これにより、注意すべきもう1つの設計上の考慮事項が発生します。それは、ウサギでルーティングロジックが必要かどうかです。柔軟な消費者に焦点を合わせて、単純なルーティングキーと直接またはトピック交換のいずれかを使用することを好む人もいます。明らかに、アプリケーションに最適なものを推測するのは難しいでしょう。

コンシューマーは、エクスチェンジが配信するキューに、多くの場合静的にサブスクライブされることに注意してください。またmammal.#、と同じですmammal.*.#(参照:ref

于 2013-03-06T20:51:28.767 に答える