10

Resque を使用しているときに、GitHub が Redis サーバーの潜在的な障害または一時的な利用不能にどのように対処しているかについて、何か洞察を持っている人はいますか?

Zookeeper を使用して redis-cluster のホールドオーバーとして、やや複雑なソリューションをまとめたように見えるものもあります ( https://github.com/ryanlecompte/redis_failoverおよびResque failover redis のソリューション を参照)。他の人は、redisクライアント間の調整なしで接続の問題を一目で見てスレーブをマスターに切り替える「貧弱なフェイルオーバー」を持っているようです(ただし、これは一時的に利用できないシナリオでは問題があるようです).

質問: Defunkt は、GitHub が Redis の障害を処理する方法について話したことはありますか? Zookeeper を使用しないフェイルオーバーのベスト プラクティスはありますか?

resque に関する元の投稿では、Redis を選択した理由の一部は redis のマスター/スレーブ機能であったと述べていますが、すべてのワーカーが Redis への読み取りと書き込みの両方のアクセスを必要とするため、この投稿では GitHub がこれをどのように活用しているかについては説明していません ( https: //github.com/blog/542-introducing-resque )。

4

1 に答える 1

1

ベースの Resque ライブラリは障害を処理しません。メッセージをポップした直後にボックスが消滅した場合、メッセージは永久に失われます。障害を処理するには、独自のコードを作成する必要がありますが、これは非常に難しい作業です。

https://github.com/resque/resque/issues/93

于 2013-07-22T00:26:56.443 に答える