Re: Распределенность эрланга.

130 views
Skip to first unread message

JLarky

unread,
Sep 28, 2012, 3:05:44 PM9/28/12
to erlang-...@googlegroups.com
как мне кажется распределённость состоит из двух вещей: конкурентность
(например возможность "одновременно" обслуживать несколько клиентов в
одной программе) и коммуникация (возможность обмениваться информацией
между обработчиками).
Во время хеловорлдов должно было быть понятно как делать сервера
обрабатывающие в парралели и как послать сообщение между нодами.
Другое дело, что нужно научиться делать это в реальной жизни. То есть
до тех пор пока речь идёт о одной машине, то spawn и send делают своё
дело. Если же это реальные задачи, то тогда может оказаться, что
хочется какой-то более другой протокол, например который можно
передавать по незащищённым каналам (нужен https например, т.к. erlang
cookies работает только на уровне локальной сети), или скажем протокол
имеющий персистентность (какой-нибудь-MQ или (no|new|)sql хранящий
состояние или наоборот сообщения).

Но на сколько я понимаю идея про запускаем одну ноду, она соединяется
с другой, та делает работу и отдаёт первой ноде, которая всё это время
держит соединение с клинтом на уровне чистых {node, pid} ! send_data
нужно только если нода #2 уж очень часто падает (обслуживает
port_drivers с segfaults? даже не знаю) потому что иначе что мешает
делать всё это в одной VM?

Хотя я вспомнил примеры софта, который живёт именно на идее кучи машин
с одной erlang cookie: mnesia, ejabberd, couchdb, riak --- если бы не
ejabberd тут были бы одни базы данных :) наверно ejabberd попал сюда
только из-за того, что сам использует mnesia, да? :)

2012/9/28 Vlad Zaritovsky <vzari...@gmail.com>:
> Всем привет. Периодически почитывая erlang-russian, решил "поковырять"
> Erlang.
> Первый-же вопрос, который возник, когда я прочитал про язык и написал всяких
> хелловорлдов, академических задачек, да echo-серверов - это распределенность
> эрланга.
> Не могли бы ли вы накидать статеек, success-stories, да и просто советов -
> что почитать и как правильно использовать эту распределенность, так скажем -
> erlang-way.
>
> Под задачами распределенными я понимаю например такую: Есть 1 сервер ( я
> имею в виду одну железку ), который акцептит по tcp клиентов, и дальше
> раскидывает но N нодам задачи вычислений на основе пользовательских данных,
> получает от этих нод ответы и отдает обратно клиентам.
> Правильно ли я понял применение этой распределенности?
> Извиняюсь за сумбурность вопроса, заранее спасибо.
>
> --
> --
> Страница рассылки: http://groups.google.com/group/erlang-russian
> Новости: http://erlanger.ru
> Чат: xmpp://erl...@conference.jabber.ru
> Чат для оффтопа: xmpp://erlang...@conference.jabber.ru
>
> Написать письмо: erlang-...@googlegroups.com
> Отписаться: erlang-russia...@googlegroups.com
>
>

Reply all
Reply to author
Forward
0 new messages