Учебники

Erlang — распределенное программирование

Распределенные программы — это те программы, которые предназначены для работы в сетях компьютеров и могут координировать свои действия только путем передачи сообщений.

Есть ряд причин, по которым мы могли бы захотеть писать распределенные приложения. Вот некоторые из них.

  • Производительность. Мы можем ускорить выполнение наших программ, организовав параллельное выполнение разных частей программы на разных компьютерах.

  • Надежность — мы можем создавать отказоустойчивые системы, структурируя систему для работы на нескольких машинах. В случае сбоя одной машины мы можем продолжить работу на другой машине.

  • Масштабируемость. По мере того, как мы расширяем приложение, рано или поздно мы исчерпаем возможности даже самой мощной машины. На этом этапе мы должны добавить больше машин для увеличения мощности. Добавление нового компьютера должно быть простой операцией, которая не требует больших изменений в архитектуре приложения.

Производительность. Мы можем ускорить выполнение наших программ, организовав параллельное выполнение разных частей программы на разных компьютерах.

Надежность — мы можем создавать отказоустойчивые системы, структурируя систему для работы на нескольких машинах. В случае сбоя одной машины мы можем продолжить работу на другой машине.

Масштабируемость. По мере того, как мы расширяем приложение, рано или поздно мы исчерпаем возможности даже самой мощной машины. На этом этапе мы должны добавить больше машин для увеличения мощности. Добавление нового компьютера должно быть простой операцией, которая не требует больших изменений в архитектуре приложения.

Центральным понятием в распределенном Erlang является узел. Узел является автономным.

Система Erlang содержит полную виртуальную машину с собственным адресным пространством и собственным набором процессов.

Давайте посмотрим на различные методы, которые используются для распределенного программирования .

порождать

Это используется для создания нового процесса и его инициализации.

узел

Это используется для определения значения узла, на котором должен выполняться процесс.

порождение на узле

Это используется для создания нового процесса на узле.

является живым

Это возвращает истину, если локальный узел жив и может быть частью распределенной системы.

spawnlink

Это используется для создания новой связи процесса на узле.