SORU
18 EYLÜL 2008, PERŞEMBE


Dağıtılmış Eşzamanlılık Denetimi

Birkaç gündür bunun üzerinde çalışıyorum, ama bunların hiçbiri birçok çözümü inanılmaz basit ya da hafif buldum. Temelde bu sorun: her ESB çok iş parçacıklı bir platform üzerinde aynı yazılım çalışıyor 10 makineleri, bir küme var. Aynı makine oldukça kolay konuları arasında eşzamanlılık sorunları ile başa çıkabilirim, ama farklı makinelerde aynı veri üzerinde Eş zamanlılık ne olacak?

Aslında yazılım web servisleri üzerinden başka bir iş gelen bir müşteri veri akışı için istekleri alır. Ancak, müşteri olabilir ya da henüz diğer sistemde kayıtlı olmayabilir. Eğer öyle değilse, bir web hizmeti yöntemi ile üretiyoruz. Test-and-set bir tür gerektirir, ama bir tür semafor yarış koşulları neden diğer makineler kilitlemek istiyorum. Uzak bir müşteri iki kez gerçekten arzu değil tek bir yerel müşteri için oluşturulduğu önce durumları yaşadım.

İle oynadı ettim çözümleri kavramsal olarak

  1. Hataya dayanıklı paylaşılan dosya sistemi "her bir makine tarafından kontrol için hangi" müşteriye bağlı . dosya kilidi oluşturmak için kullanma

  2. Bizim veritabanında özel bir tablo kullanarak, bir "" kilit bir kayıt için. test-and-set yapmak için bütün tablo kilitleme

  3. Pişmiş toprak kullanılarak, açık kaynak kodlu bir Ölçekleme yardımcı olan bir yazılım, sunucu, ama hub ve bağlı bileşen modeli kullanır.

  4. -Benim hafıza senkron çoğaltma kullanarak EHCache "kilitler."

Şimdiye kadar bu tür sorunu olan tek kişi olduğumu hayal bile edemiyorum. Nasıl çözdünüz? Bir şey içi kafandan mı uydurdun ya da 3. taraf favori bir ürün var mı?

CEVAP
18 EYLÜL 2008, PERŞEMBE


Hazelcast dağıtılmış kilitleri kullanarak düşünebilirsiniz. Süper lite ve kolay.

java.util.concurrent.locks.Lock lock = Hazelcast.getLock ("mymonitor");
lock.lock ();
try {
// do your stuff
}finally {
   lock.unlock();
}

Hazelcast - Dağıtılmış Sıra, Map, Set, Listesi, Kilit

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • J Medema

    J Medema

    11 EKİM 2006
  • Machinima

    Machinima

    17 Ocak 2006
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007