Golangの分散ロックコンポーネント、Reids、Pgsqlまたはカスタムドライバをサポート


汎用Golang分散ロックコンポーネント、プロジェクトアドレス:https://github.com/go-locks/d...、詳細はexamplesを参照
Driverリスト
未完成のドライバコードに貢献する意向がある場合は、ISSUESまたはメールボックス[email protected]から連絡してください.
Driver
コード完成度
テスト完了度
依存パッケージ
使用方法の説明
redis
100%
100%
letsfire/redigo
詳しくはREADME.md
pgsql
100%
100%
lib/pq
詳しくはREADME.md
etcd
未完了
未テスト
etcd/client
詳しくはREADME.md
etcdv3
未完了
未テスト
etcd/clientv3
詳しくはREADME.md
メソッドの説明
構成項mutex.OptFunc及び戻り値ロックの使用についてはmutex/READMEを参照.md
  • NewMutex(name string, optFuncs ...mutex.OptFunc) (*mutex.Mutex, error)

  • 反発ロックを作成し、nameが読み書きロックの作成に使用されている場合はerrorに戻ります.
  • NewRWMutex(name string, optFuncs ...mutex.OptFunc) (*mutex.RWMutex, error)

  • 読み書きロックを作成し、反発ロックを作成するためにnameが使用されている場合はerrorに戻ります.
    注意事項
  • は再入力できません(シーンが強い場合はISSUESでフィードバックしてください)
  • 非フェアロック(Golangのローカルロックsync.Lockerはフェアロックではありませんが、必要または推奨があればISSUESでフィードバックしてください)
  • には反発ロックmutexと読み書きロックrwmutexの2種類があり、具体的なサポートの程度は各Driverに対応するREADME.md
  • を参照.
  • 本人のプロジェクトの経験は少なくて、実現の過程はいくつかのシーンの考慮に欠けていることを保証しにくくて、みんなに許してもらうことを望んで、もしISSUESを通じてフィードバックを提供することができるならば感謝の涙
  • は完全なユニットテストがあるが、実際のプロジェクトの試練を経ていないため、生産環境に慎重に使用し、問題があればISSUESを通じて
  • を共同で改善してください.
    プロジェクト構造
  • 主線呼び出しレベルはdistlock.go->mutex.go->driver.go
  • である.
  • distlock.goは、ロックを作成するファクトリクラスを提供し、単一のモード(同じ名前のロックは1つのみ、1つのみ)
  • を提供する.
  • mutex.goは各種ロックの実現を提供し、皆さんが他のタイプのロックに貢献することを歓迎します.詳しくはmutex/READMEを参照してください.md
  • driver.goは駆動インタフェースの定義を提供し、皆さんが他の駆動に貢献することを歓迎します.詳細はdriver/READMEを参照してください.md