2009-06-11 8 views
6

Uygulamam genellikle iki veya daha fazla düğümle birlikte bir erlang kümesinde çalışır. İyi çalışan düğümler arasında aktif bir izleme var (erlang: monitor_node kullanarak) - Şu anda olan bir düğümün artık kapalı olduğunu algılayabilir ve tepki verebilirim.Aşağı doğru olan ve uzaktan yeniden başlatılan bir erlang düğümü nasıl izlenir

Ancak, düğümün yeniden başlatıldığını ve tekrar işe başladığını nasıl anlarım? Tabii ki periyodik olarak tekrar düğümlenene kadar ping yapabilirim, ama daha çok özlediğim daha iyi bir yol var mı? Süreç grupları bunu başarmanın daha iyi bir yolu mu? (Eklemek için Edited)

Cevabın bir danışman seçiminde gibi bir teknik gerçekleştirmek için düşünüyorum ben eksikti düşünce sürecidir. Buna bakacağım ve bu soruyu tamamlandı olarak işaretleyeceğim ....

cevap

2

Ancak, düğümün yeniden başlatıldığını ve tekrar işe başladığını nasıl anlarım? Tabii ki periyodik olarak tekrar düğümlenene kadar ping yapabilirim, ama daha çok özlediğim daha iyi bir yol var mı? Süreç grupları bunu başarmanın daha iyi bir yolu mu? Ama nasıl yeniden başlatma düğümünü kendisiaçıkça o yeniden başlatmayı bittikten amiri/izleme düğümünü bilgilendirmek ve tekrar kullanılabilir olduğunu haiz hakkında

Sadece bir fikir?

Bu amaç için yinelenen bir "kalp atışı mesajı" kullanabilir veya başarılı bir şekilde başlatıldıktan sonra bir kez gönderilmesi gereken özel bir mesajla gelebilirsiniz. Sen global_group sonra global_group oluşturmak kullanabilirsiniz

start(SupervisorPID) -> 
    SuperVisorPID ! {hello, MyPID}; 
    mainloop(). 
+0

Evet - aslında bu, düğüm yeniden başlatıldığında gerçekleşir - aslında herhangi bir denetçi düğümü yoktur, etkin bir şekilde "arkadaş" lardır ve düğüm, sistemin durumunu belirlemek için arkadaşlarına ulaşır (ve başladığında belki de bu durumu kopyalayarak). –

+0

Ve açık olmak gerekirse - her bir düğüm eşittir, bu nedenle ilk düğümünüz siz ne yapıyorsunuz, herhangi bir düğüme rpc veremezsiniz ve iletilerin gönderileceği PID'leriniz yoktur. AMA sadece takılabiliyor ve diğer düğümlerin başlamasını ve iletişim kurmasını bekleyebildim ... –

+2

Senin düğümlerin temelde herhangi bir merkezi düğüm biçimi olmaksızın merkezi olmayan bir şekilde mi görünüyor? Normal olarak, en az bir süpervizörün ya da en azından 'ana' düğüm için bir kaçının olmasını istersiniz. Bütün düğümler kendi raporlarını/mesajlarını, yani bir çeşit "düğüm kaydı" na gönderebilirler. Belki biraz daha fazla bilgi vermeniz gerekiyor, zaten bir master yoksa, her düğümün bir usta haline gelmesiyle ilgili bir düşünmenin olabileceğini hayal edebiliyorum. Bu eşitlik şartını tatmin ederdi. – none

1

: çizgisinde şey monitor_nodes (doğru) aynı küresel grubundaki diğer düğümlerin izlemek için. Düğümleri izleyen süreç, nodeup ve nodedown mesajları alır.

İlgili konular