Нода — узловой процесс, подсистема (по отношению к Системе).
С точки зрения операционки нода это именно процесс, наравне с другими процессами операционной системы. Акторы — подпроцессы этого процесса (и операционка их не видит).
В Системе ноды могут эффективно взаимодействовать между собой. Узнать имя текущей ноды можно с помощью бифа node()
, а получить список нод, с которыми связаны — с помощью бифа nodes()
.
Имя ноды включает знак @, например: komp1@sis
. В Эрланге специально предусмотрено, что знак @ может являться частью атома, поэтому имена нод вроде указанного являются не строками, а атомами.
Когда нода Эрланга запускается, она имеет имя и получает адрес от ядра ОС хоста. Эти имя и адрес отправляются демону epmd, работающему на локальном хосте. В среде TCP/IP, которую как правило использует epmd, адрес состоит из IP-адреса и номера порта. Задача epmd — отслеживать, какое имя узла по какому адресу прослушивается, то есть сопоставлять имена узлов с адресами компьютеров.
В OTP содержится много удобных инструментов для работы с нодами.
© Алексей Карманов, 2024.