13

epgm PUB ソケットでメッセージを 1 つ以上の epgm SUB ソケットに送信するアプリがあります。ほとんどの場合は機能しますが、サブスクライブしているアプリケーションが十分に長く放置されていると、通常、1 つまたはいくつかのメッセージが欠落することになります。(私のメッセージにはシーケンス番号があるので、欠落しているものや順序が間違っているものがあるかどうかを知ることができます。) ZMQ ドキュメントを読んだことに基づいて、epgm の「信頼できるマルチキャスト」の性質がこれを防ぐと考えていたでしょう。 SUB ソケットが 1 つのメッセージを取得すると、シャットダウンするか、ネットワークに重大な問題が発生するまで (つまり、接続が限界に達するまで)、メッセージを取得し続けることが保証されます。

とにかく、それは文脈ですが、問題は単にタイトルです: ZMQ は epgm 上の PUB/SUB に対してどのような信頼性保証を (もしあれば) 行いますか?

4

2 に答える 2

10

ZeroMQ 内の PGM 実装は、回復にメモリ内ウィンドウを使用するため、有効期間が短いだけです。ウィンドウが使い果たされたためにリカバリが失敗した場合: たとえば、リカバリが移行するよりもパブリッシュの方が速い場合、基礎となる PGM ソケットはリセットされ、最善の努力で続行されます。

これは、高いデータ レートまたは重大なパケット損失が発生した場合、トランスポートが常にリセットされ、回復できないメッセージがドロップされることを意味します。したがって、信頼できる配信は保証されません。

PGM 構成は、遅い受信者が送信者を失速させないように、リアルタイム ブロードキャストを対象としています。プロトコルは両方のパラダイムをサポートしていますが、後者は需要がないため実装されていません。

于 2013-04-04T20:25:02.480 に答える