Spring Integration + RabbitMQ を使用したプロジェクトがあります。私たちはまだ開発の初期段階にあるため、RabbitMQ 構成を含む統合アーキテクチャのトポロジを急速に変更しています。
また、ハンズフリーの展開で、継続的な展開に従うことも試みています。
春の設定で宣言された<rabbit:admin />
要素があり、新しい交換またはキューの追加を適切に処理します。
ただし、既存の交換/キューの構成を変更する更新を展開しているときに失敗することがわかりました。
最近、いくつかの展開が失敗しました。理由は次のとおりです。
- Direct Queue を FanOut 交換に切り替えました
- ダイレクト キューのメッセージに対して宣言された TTL を変更しました。
どちらの場合も、新しいインスタンスを作成するだけでなく、既存の構成を変更する必要がありました。これらの更新プログラムが適用されなかったため、起動に失敗しました。
どちらの場合も、修正は簡単でした。問題のあるリソースを削除し、アプリを再起動して、<rabbit:admin />
それらを正しい定義に置き換えます。
ただし、本番システムでは、それを行うことはできません。また、これは現在、展開の一部としてスクリプト化されていないため、継続的な展開がより面倒になっています。
RabbitMQ トポロジーの更新を処理できる継続的なデプロイ戦略に使用できるツールまたは戦略は何ですか?