web-dev-qa-db-ja.com

RabbitMQ-ダウンタイムゼロのアップグレード用にサーバーを構成するにはどうすればよいですか?

ドキュメントとRabbitMQ in Actionを読んだら、RabbitMQクラスターの作成は簡単に思えますが、既存のRabbitMQクラスターをアップグレードまたはパッチを適用するには、クラスター全体を再起動する必要があるようです。

クラスタリング、シャベル、フェデレーション、ロードバランシングを組み合わせて、キューやメッセージを失うことなくローリングアップグレードを可能にする方法はありますか?

12
Terence Johnson

あなたのrabbitmqクライアントが切断された接続を許容できると仮定すると、あなたは説明されていることを考えることができます ここ

私たちのクラスターはVIPの背後にあります。クラスターをアップグレードする場合は、代替クラスターを起動し、VIPを代替クラスターに切り替えます。一方、クラスター間でメッセージを移動するツールがあります。「マスター」クラスターの場合更新が完了したら、プロセスを逆にします。

4
mmoya

RabbitMQのメジャーバージョンまたはマイナーバージョンから別のバージョン(3.0.xから3.1.x、または2.xxから3.xx)にアップグレードする場合、またはErlangをアップグレードする場合は、アップグレードのためにクラスター全体を停止する必要があります(クラスターはこのような混合バージョンを実行できないため)。これは、あるパッチバージョンから別のパッチバージョンにアップグレードする場合(つまり、3.0.xから3.0.yに)には当てはまりません。これらのバージョンはクラスター内で混在させることができます(ただし、3.0.0は3.0.xシリーズのそれ以降のバージョンと混在させることはできません)。