ここでは、C プログラミングで永続キューを実装したいと考えています。ここでは、メッセージを永続キューに保存してから、それらを送信したいと考えています。組み込みデバイスが再起動し、再起動すると、保留中の永続メッセージ キューからメッセージを送信することもできます。
これを実装する方法と、それがどのように機能するかを知っている人はいますか?
ありがとう
永続的なストレージに保存します。
ご提供いただいた情報でお伝えできることはこれ以上ありません。
永続的にしたい場合は、ハードドライブにデータを保存する必要があります。私が提案するのは、http://www.sqlite.org/を使用することです。多くの言語にはバインディングがあります。
永続メッセージは、ブローカに障害が発生した場合でも失われてはならないメッセージです。
永続キューはメッセージをディスクに書き込むことができるため、システムのシャットダウンや障害が発生した場合でもメッセージが失われることはありません。
現在、メッセージは、永続キューを通過する永続または非永続のいずれかになります。
送信者が永続メッセージをブローカに送信すると、ブローカーはそれを受信者キューにルーティングし、メッセージが永続ストアに書き込まれるのを待ってから、実際の送信者への配信を確認します。キューが永続的でない場合、キュー上のメッセージはディスクに書き込まれません。メッセージが永続的でない場合は、永続キューにある場合でもディスクに書き込まれません。
受信者キューが永続キューからメッセージを読み取る場合、受信者がメッセージを確認するまで、そのメッセージはキューから削除されません。
ここで、ディスク上のメッセージとブローカーの状態を記録するために、ジャーナリング メカニズムを組み込む必要があります。次に、メッセージとジャーナルのキャッシュを適切な順序で管理する必要があります。
これは、永続キューとは何か、および永続キューを記述する方法の簡単なアイデアです。永続キューは、IBM WebSphere、RedHat の MRG などの多くの独自ソフトウェア システムで使用されています。詳細については、それらを参照してください。