Подтвердить что ты не робот

Что такое секрет Erlang для масштабируемости?

Erlang получает репутацию неприкасаемого при обработке большого объема сообщений и запросов. У меня не было времени, чтобы скачать и попытаться проникнуть в понимание Эрланг теории переключения... так что мне интересно, может ли кто-нибудь научить меня (или указать хороший учебный сайт.)

Скажем, как мысленный эксперимент, я хотел бы портировать Erlang ejabberd на комбинацию Python и C, таким образом, чтобы дать мне такую ​​же скорость и масштабируемость. Какие структуры или модели я должен был бы понять и реализовать? (Делает ли Python Twisted это?)

4b9b3361

Ответ 1

Как/почему хорошо функционируют функциональные языки (в частности, Erlang)? (для обсуждения причин)

http://erlang.org/course/course.html (для цепочки учебников)

Что касается переноса на другие языки, система передачи сообщений будет легко работать на большинстве современных языков. Получение функционального стиля может быть сделано на Python достаточно легко, хотя вы не получите внутренние функции диспетчеризации Erlang "бесплатно". Stackless Python может реплицировать многие функции Erlang concurrency, хотя я не могу говорить с деталями, поскольку я не использовал его много. Если это кажется гораздо более "явным" (в нем требуется определить код concurrency в тех местах, где дизайн Erlang позволит concurrency произойти внутренне).

Ответ 2

Erlang - это не только масштабируемость, но в основном около

  • надежность
  • мягкие характеристики в реальном времени (включены с помощью мягкой GC реального времени, которая возможна, потому что неизменяемость [нет циклов] и ничего не имеет и так)
  • производительность в параллельных задачах (дешевый переключатель задач, дешевый процесс spawn, модель актеров,...)
  • масштабируемость - спорная в текущем состоянии, но быстро развивающаяся (около 32 ядер хорошо, она лучше большинства конкурентов, но должна быть лучше в ближайшем будущем).

Ответ 3

Еще одна особенность erlang, которая влияет на масштабируемость, - это легкие недорогие процессы. Поскольку процессы настолько малы, что erlang может порождать гораздо больше, чем большинство других языков. Вы получаете больше шансов для своего доллара с процессами erlang, чем дает вам много других языков.

Ответ 4

Я считаю, что лучший выбор для Erlang - это приложения, связанные с сетью, - делает общение намного проще между узлами и такими вещами, как мониторинг сердечного ритма, автоматический перезапуск с использованием супервизора встроен в OTP.