Какие недостатки можно найти в использовании Erlang?

StackOverflow https://stackoverflow.com/questions/615260

  •  03-07-2019
  •  | 
  •  

Вопрос

Я рассматриваю Erlang как потенциал для моего будущего проекта. Мне нужен " Очень масштабируемый, очень надежный " (да, какой проект не?) веб-сервер, чтобы принимать HTTP-запросы, но не обслуживать HTML. У нас есть тысячи распределенных клиентов (других систем, а не пользователей), которые будут отправлять двоичные данные в центральный кластер серверов для автономной обработки. Ответы будут очень короткими, успех, сбой, код ошибки, минимальное количество данных. Мы хотим использовать HTTP, поскольку это наш лучший шанс обойти брандмауэры.

Учитывая эту ограниченную информацию о проекте, можете ли вы указать какие-либо недостатки, которые могут возникнуть при использовании такой технологии, как Erlang? Например, я понимаю, что возможности обработки текста в Erlang могут оставить желать лучшего.

Ваши комментарии приветствуются. Спасибо.

Это было полезно?

Решение

Звучит как идеальный кандидат на такой язык, как Эрланг. Свойства масштабирования языка очень хороши, но если вы беспокоитесь о возможностях обработки данных, вам не следует. Это очень мощный язык со многими библиотеками, доступными для разработчиков. Это старый язык, и он интенсивно использовался / тестировался в прошлом, поэтому все, что вы хотите сделать, возможно, уже сделано в некоторой степени.

Другие советы

Убедитесь, что вы используете версию Erlang R11B5 или новее! Более ранние версии erlang не обеспечивали возможность тайм-аута tcp-отправок. Это приводит к тому, что заблокированные или злонамеренные клиенты могут выполнять DoS-атаку на ваше приложение, отказываясь получать данные, которые вы им отправляете, тем самым блокируя процесс отправки.

См. выпуск OTP-6684 в заметках о выпуске R11B5 .

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

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

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

  

Я понимаю обработку текста в Erlang   Возможности могут оставить что-то   быть желанным.

Проект starling уже обеспечивает базовую поддержку Юникода, и в настоящее время существует EEP (предложение по улучшению Erlang) в черновике, но собираюсь внести его в основное русло поддержки Erlang / OTP.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top