Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 34174|Yanıt: 5

[.NET Core] .NET Core, Redis tabanlı dağıtık kilit prensip ayrıştırmasını uygular

[Bağlantıyı kopyala]
Yayınlandı 22.09.2020 09:17:22 | | | |
İş senaryolarında, eşzamanlı içerik işlemlerine izin verilmez; örneğin emtia envanteri, aynı dosya vb., ve program uygulaması birden fazla sunucuda konuşlandırılır.
[Gerçek dövüş] ASP.NET Core, Redis dağıtılmış kilit flash satışına dayanıyor
https://www.itsvse.com/thread-9397-1-1.html

Daha önce yazılmış zk tabanlı dağıtık kilit şöyledir:

.net/c# Zookeeper Dağıtık Kilit Uygulaması [Kaynak Kodu]
https://www.itsvse.com/thread-4651-1-1.html

Bu makaleyi okumak için bilmeniz gerekenler:

Değişken vs. Kilitli vs. Kilitli
https://www.itsvse.com/thread-5023-1-1.html

C# Paralel Hesaplama Paralel.For&Paralel.For
https://www.itsvse.com/thread-3671-1-1.html

.NET Core, Redis tabanlı dağıtık kilitler uygularPrensip, SETNX komutunu redis komutu çağırmaktır, eğer anahtar zaten varsa, SETNX komutu hiçbir şey yapmaz. Komut, ayar başarılı olduğunda 1, ayar başarısız olduğunda ise 0 döner.

Bağlantı girişi görünür.

Yeni bir .NET Core 3.1 konsol projesi oluşturun, bir StackExchange.Redis referansı ekleyin ve nuget komutunu aşağıdaki gibi kullanın:

Kütüphanenin StringSet metodunu StackExchange.Redis kaynak kodu üzerinden çağırıyoruz; StringSet metodunun GetStringSetMessage'ın özel metodunu çağırarak farklı set komutlarını ne zaman değeriyle çalıştıracağını görebiliyoruz, kod şu şekildedir:

SETNX komutunu paralel bir test çağrısı aracılığıyla programa 2000 kez çalıştırıyoruz; bu işlem 2 bölüm halinde yürütülüyor; anahtarın önbellek geçerliliği 5 saniyedir, yani anahtar 5 saniye sonra otomatik olarak serbest bırakılır, yani kilit açılır.

Kod şöyledir:


Gördüğünüz gibi, toplamda 2 başarılı ekleme ve 1998 başarısız deneme tam olarak beklediğimiz gibi, renderasyonlar ise aşağıdaki gibidir:


Şu anda kilit henüz açılmamıştır.
(Son)









Önceki:"\bin\roslyn\csc.exe" yolun bir kısmı için bir çözüm bulamadım.
Önümüzdeki:EF Core Serisi 2, OnModelCreating'i kapsüller, yansımalar kullanarak indeksler oluşturur ve daha fazlasını içerir
 Ev sahibi| Yayınlandı 26.09.2020 15:37:52 |
test123
Yayınlandı 20.11.2020 11:18:31 |
Konteyner dağıtılırken çok iş parçacıklı ve çoklu örnek ortamı varsa, bu işlem sürecinde bir sorun mu var?
 Ev sahibi| Yayınlandı 20.11.2020 11:29:44 |
qiuyueming 2020-11-20 11:18 tarihinde yayınlandı
Konteyner dağıtılırken çok iş parçacıklı ve çoklu örnek ortamı varsa, bu işlem sürecinde bir sorun mu var? ...

Çok örnek, çoklu iş parçacığı demektir ve kaynak kodunda çok iş parçacığı redis çağırır ve sadece bir iş parçacığı kilitlenir
Yayınlandı 22.03.2022 14:32:40 |
Destek, destek
Yayınlandı 23.03.2022 11:15:30 |
Bunun iyi olduğunu öğren @
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com