以前に書かれたzkベースの分散ロックは以下の通りです。
Redisは分散ロックの原則を実装しています:
Redisで分散ロックを実装する原則は、redisのSETNXコマンドを呼び出し、キーがすでに存在している場合、SETNXコマンドは何もしません。 コマンドは設定が成功すると1、失敗すると0を返します。
まず、当サイトは1万件の商品をシミュレートし、その後HTTPリクエストをシミュレートするコンソールを書きます。購入完了までに40秒かかります。レンダリングは以下の通りです:
Core 3.1 ASP.NET 新しいウェブサイトを作成し、redis lockパッケージは以下の通りです:
インターネット上で多くのリリースロックが次のように書かれているのを見かけました:
しかし、問題があるように感じます。並行処理の場合、判断時にtrueを返すことは可能であり、それは確かに自ら追加されたロックですが、ロックが削除されると、極端な場合には、他のスレッドが他のスレッドによって取得されたロックが、他の誰かのロックが削除された場合に備えます。
したがって、錠前を手に入れる際には、錠前の有効期限を延ばすために糸を開ける必要があります。
WeatherForecastControllerのインターフェースは以下の通りです:
APIウェブサイトはコマンドラインから起動でき、簡単に再起動できます。以下のように:
新しい.NET CoreモックアップHTTPリクエストを作成してスナップ購入用に、コードは以下の通りです:
もし何か問題があれば、訂正してくれてありがとうございます。
最後にソースコードを添付します:
観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ 答える
|