Та же машина Erlang связи - PullRequest
       23

Та же машина Erlang связи

4 голосов
/ 07 декабря 2009

Мне нужен ответ на следующий вопрос, чтобы понять, какой подход я должен использовать для взаимодействия с Erlang. AFAIK Erlang для SMP UNIX использует многопроцессный подход. В этом случае это должен сделать тот же компьютер IPC.

  1. Использует ли Erlang сокеты домена UNIX для UNIX?
  2. Использует ли он именованные каналы для окон?

  3. Если он не реализует обе конструкции выше - то есть, нет именованных каналов для окон; это должно быть откат к сокетам, на окнах.

  4. Как реализуются вышеупомянутые принципы, используют ли они ориентированные на сообщения, однопоточные на канал, асинхронные конструкции или это что-то еще?

  5. Если мои рассуждения, приведенные выше, неверны, то использует ли оно дерево мастер-потомок, а все другие процессы взаимодействуют - косвенно - через мастер?

- редактировать 1 -

Ссылка на документацию двоичного формата erlang.

Универсальный подход заключается в том, что доменные сокеты Unix превосходят TCP / IP . Я думаю, что я попытаюсь расширить Erlang, чтобы использовать лучшие примитивы. Я также сильно подозреваю, что epol и windows IOPC не используются в цикле событий TCP / IP - я отправлю сообщение после проверки кода.

Еще один ТАК * пост , который утверждает, что Erlang действительно не поддерживает ничего, кроме TCP и UDP.

Для связи существует две библиотеки Erlang Erlang node -> c_node и c_node -> Erlang_node

Модуль Erlang для сокетов позволяет открывать Unix Dom Sockets под UNIX.

Ответы [ 2 ]

13 голосов
/ 08 декабря 2009

В качестве комментария к вашему первоначальному вопросу и к некоторым комментариям:

  • Я ОЧЕНЬ уверен, на самом деле я ЗНАЮ , что внутри узла Erlang VM не использует сокеты или каналы для связи между (Erlang) процессами. Это было бы смешно и полностью противоречило бы базовым принципам Эрланга об упрощенной коммуникации между процессами (Erlang).

  • Между узлами Erlang виртуальная машина Erlang использует TCP / IP. Семантика и поведение, как видно из Erlang, такие же, как и для внутриузловой связи, в большинстве случаев она полностью прозрачна, на каких узлах лежат вовлеченные процессы.

  • SMP не изменяют эти основы независимо от того, сколько ядер и планировщиков используется, и независимо от того, сколько планировщиков запущено на ядро.

0 голосов
/ 07 декабря 2009

R1. Он использует TCP / IP (фактически нет «стандартной» поддержки для доменных сокетов UNIX)

R2. Я уверен, что это все еще сокеты TCP / IP

R3. см. R2

R4. Для Erlang существует двоичный формат обмена, основанный на сообщениях. Обмены могут быть либо синхронизированы (как RPC), либо асинхронны.

R 5. Без хозяина.


В качестве бонуса (чтобы помочь вам сэкономить время): не забудьте использовать зарегистрированное имя (-sname или -name) для использования связи между узлами (либо RPC, либо как угодно).

...