4

いくつかのリソースを予約するために分散ロックを作成するために Curator フレームワークの Interprocess ミューテックスを使用しています。ただし、zookeeper がロックを取得するたびに 50 ~ 100 ミリ秒、ロックを解放するのに 20 ~ 40 ミリ秒かかることがわかります。私のアプリケーションは書き込みが多く、毎秒 10 ~ 50 の要求に対して 500 ミリ秒以内に応答する必要があり、ロックの取得と解放だけで 70 ~ 140 ミリ秒を費やす余裕はありません。1) これを改善する方法はありますか? Zookeeper サーバーとクライアントは同じホスト上にあります。管理ガイドに記載されているように、飼育係サーバーのセットアップを試みました。2)他のフレームワーク/テクノロジーを使用する必要がありますか。Redis SETNX がより良い解決策になるのか、Chubby を使用するのか疑問に思っていました。

4

1 に答える 1

3

Zookeeper は、主に一貫性を保つように設計されており、次に高速であるように設計されています。一貫性には、調整のコストが伴います。これにより、常にレイテンシが追加されます。あなたができることは、作業に基づいてシャーディングを行い、ワーカーレベルのロックのみを行うことです. これにより、ワーカーを追加または削除する際の複雑さを犠牲にして、Zookeeper ロックの追加コストを回避できます。

于 2015-05-08T23:54:51.553 に答える