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

Görünüm: 9508|Yanıt: 2

Zookeeper dağıtılmış kilit uygulaması

[Bağlantıyı kopyala]
Yayınlandı 20.03.2018 16:23:52 | | | |
Kilit tasarımı

  Kilit uygulama fikrini öğrenin:
1. Genellikle kilitli varlığı tanımlamak için kullanılan bir dizin (znode) oluşturarak başlayın, bu da :/lock_node
2. Kilidi elde etmek isteyen istemci, kilit dizininde kilit/lock_node'nin bir çocuk düğümü olarak bir znode oluşturur ve düğüm türü Sıralı Geçici Düğüm (EPHEMERAL_SEQUENTIAL)'dir;
Örneğin, iki istemci znode'lar oluşturur: /lock_node/lock-1 ve /lock_node/lock-2
3. Mevcut istemci, watch'ı ayarlamadan kilit dizininin tüm child düğümlerini almak için getChildren(/lock_node) çağırır ve ardından kendisinden küçük olan kardeş düğümleri (2. adımda oluşturulur) elde eder.
4. 3. adımda kendisinden küçük olan düğüm yoktur && en küçük düğüm, 2. adımda oluşturulanla aynıdır; bu da mevcut istemci dizisi numarasının en küçük olduğunu gösterir, kilidi alın ve son.
5. İstemci, kendisinden sonraki en küçük olan düzenli geçici düğümün durumunu izler
6. İzlenen alt düğümün durumu değişirse, 3. adıma atlayıp kilit yarışı tamamlanana kadar takip işlemlerine devam edin.     

Yazar burada dağıtım kilidini tanıtmayacak, tüm kod tasarımının akış şemasına aşağıdaki gibi bakalım





Önceki:AutoResetEvent'in .net/c# içindeki ayrıntılı açıklaması
Önümüzdeki:Android 7.0'ın https paket yakalama yapamaması sorunuyla ilgili
 Ev sahibi| Yayınlandı 20.03.2018 16:49:35 |
Zookeeper dağıtılmış kilit adımları:
1. Zookeeper, dosya dizinine benzer düğümlere sahip bir düğümdür, bu yüzden kilidi bir dizine soyutlarız, zookeeper'da EPHEMERAL_SEQUENTIAL türden bir düğüm, birden fazla iş parçacığı vardır ve zookeeper tarafından oluşturulan düğüm, oluşturma sırasını ayarlamamıza yardımcı olur, böylece bu düğüm altındaki dizinler sıralıdır.
2. Mevcut dizinin en küçük düğümünü alın, en küçük düğümün mevcut düğüm olup olmadığını, kilidin başarılı olduğu anlamına mı geldiğini belirleyin, kilit edinme başarısızlığı değilse ise.
3. Kilit bozulduğunda, sürü etkisinden kaçınmak için yapmanız gereken mevcut düğümün önceki düğümünü elde etmek ve ardından düğümü dinlemektir.
4. Bunu yaptığınızda, kilidi açtığınızda, bir sonraki düğüme de haber vereceksiniz.
 Ev sahibi| Yayınlandı 20.03.2018 16:54:46 |
Hayvanat bahçesi görevlisi durumu ve etkinlik türleri hakkında önceden bilgi edinin.


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