2014-11-24 14 views
7

Bazı TTL'yi aşmış olan otomatik bırakma kilitleri için Apache Curator kilit tariflerinde (veya daha düşük seviyede ZooKeeper) herhangi bir tesis var mı? Değilse, bununla başa çıkmak için en iyi uygulama var mı? Görünüşe göre, Curator müşteri bağlantısının kaybolması durumunda kilitleri otomatik olarak serbest bırakıyor, bu da güzel ... ve kilit alımındaki zaman aşımı da yardımcı oluyor.Apache Zookeeper/Curator kilitler üzerinde yaşam süresi

Sistemimi korumak için hangi derecede uzun ve el ile serbest bıraktığınız kilitleri arayan yinelenen bir iş yaparak sistemimi korumam gerektiğini merak ediyorum. Ayrı işlemimin doğrudan ilgili ZNode'u silerek bunu yapar mıyım?

cevap

7

Küratörün kilitleri EPHEMERAL znodes kullanılarak gerçekleştirilir. Yani, kilit tutucu bir şekilde kararsız hale gelirse, ZooKeeper otomatik olarak kilidi serbest bırakmalıdır. Diğer süreçlerin tuttuğu kilitleri iptal etmenin bir yolunu arıyorsanız, bazı Küratörün kilit tariflerinin bir kooperatif iptal etme tesisine sahip olması gerekir. Bunun dışında, bir işlemin altındaki bir kilidin silinmesi muazzam bir istikrarsızlığa neden olacak gibi görünüyor. Bunu yapmak için iyi bir sebep düşünemiyorum.

: - Bu 2 yıl sonra

+0

Cevabınız için teşekkürler! Bunu görmeyi umuyordum ve diğer SO'larınızı takdir ettim. Bağlantısını kaybeden bir ZK istemcisinin otomatik işleyişinin ve işbirliğinin iptal edildiğinin kesinlikle farkında. Belki de çok paranoyak oluyorum ama ZK/Curator'ı dağıtımı kilitleyen bir kütüphanenin uygulama detayı olarak kullanıyorum. Bir kilit tutulduğunda yürüten kod üzerinde kontrol yok. Sanırım işbirliğini iptal etme özelliğini soyutlayabiliyorum ve bu yüzden yanlış davranan müşteri koduyla uğraşmanın bir yolunu bulabiliyorum. Cevap için teşekkürler. –

İlgili konular