私はRedisに裏打ちされたPUB/SUBシステムを構築しています。リカバリ可能なPUB/SUB
私は1つのパブリッシャーと多数のサブスクライバーを持っています。加入者は信頼できるものではなく、いつでも接続を失い、接続が失われても「回復」できる必要があります。
私のバックログにはいくつかの数字が表示されています。つまり、障害のあるサブスクライバはまでNメッセージまでを回復できるはずです。
自明な解は、次のとおり
- パブリッシャがメッセージX
- Xが
RPUSH list message
- メッセージを
- メッセージを消費者に公開されたリスト内のインデックスを含むように符号化されているリストにプッシュされ、パブリッシュ(インデックスが埋め込まれている)
PUBLISH channel encoded
消費者再確立するためのds:
- それは我々がすべて良いですここまで
PSUBSCRIBE
アトミック
があり、実行インデックスの後、リスト内のすべての値のRedisのを要求します。
私の大きな疑問は、バックログリストをN個のアイテムに制限したいのですが?
インデックスが増え、リストに表示されているバックログを保持できる方法はありますか?
はい、私はこの解決策が大好きです –
私はこれを実装しました。https://gist.github.com/4385544私の時計とマルチの使用は完全ではありません。 –