Domanda

Ho paio di computer interconnessi. Su ogni macchina v'è in esecuzione del nodo Erlang e vorrei comunicare gli uni con gli altri termini Erlang di passaggio (peer-to-peer di stile). Tuttavia i nodi su altri computer sono elencati in nodes() solo dopo che li ecc ho net_adm:pinged C'è un modo per scoprire che cosa tutti i nodi (con lo stesso cookie) sono on LAN (e senza avere la lista dei vicini memorizzati su ogni computer)?

È stato utile?

Soluzione

Non c'è nessun sistema LAN scoperta in Erlang / OTP in questo momento, ma ci sono alcuni modi si può andare su di esso:

  • Leggi inet:getif() per un elenco di sottoreti LAN, e quindi chiamare (net_kernel():epmd_module()):names(IP) per ogni indirizzo IP in ogni sottorete per raccogliere l'elenco dei nodi che eseguono, poi net_adm: ping () a tutti di connettersi. Credo che questo presuppone che la risoluzione DNS sta funzionando in modo che è possibile convertire il IP a un nome in modo che il ping funziona. (Io sono un po 'arrugginito sui requisiti esatti per i collegamenti dei nodi)
  • Esegui qualcosa come nodefinder su ogni nodo. Nodefinder è una libreria scoperta che può usare UDP multicast per scoprire nodi Erlang su una LAN.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top