2017-08-05 14 views
1

Amqpブローカには、メッセージが実際にブローカに届いた場合にのみ動作する永続性設定があります。ネットワーク障害が発生し、その後のクライアントクラッシュ/再起動メッセージが失われる可能性がある場合。クライアント(プロデューサ)がメッセージをディスクに保存するためのrabbitmqやactivemqやその他のメッセージングフレームワークには、クライアントがクラッシュしたりリブートされた場合に、未送信のメッセージが失われないような方法がありますか?クライアントキューの永続性

私は、この問題を回避するためにローカルでブローカーを実行しているのを見ました。それは、特にあなたのクライアントの展開をあまり支配していない場合は、不必要な作業のように思えます。

答えて

1

実際にあなた自身の質問にはかなりうまく答えました。クライアント側の永続性を探している多くの人々は、実際には非常に良い解決策であるため、組み込みのブローカーに変わります。格納および転送できるローカルブローカを持つことで、各クライアントの永続性レイヤーを構築するだけでなく、すべてのローカルクライアントが1つのブローカインスタンスを共有でき、必要に応じてストレージを移動できるようになります。予期せぬリモートダウンタイムのために、格納されたローカルメッセージが増えています。

ストレージを提供するいくつかのクライアント実装がありますが、選択したブローカー/プロトコルに依存します。もちろん、そのクライアントがサポートされていない場合はサポートやライセンスを購入するための資金を払う意思があります。オープンソース実装。 MQTT Pahoクライアントは、他にもローカルストレージオプションを持っていると思います。