API REST сервер на ERLANG

1,454 views
Skip to first unread message

Alexander Kaloshin

unread,
Jan 3, 2012, 4:51:26 PM1/3/12
to erlang-...@googlegroups.com
Привет. Собственно сабж.

Вопрос в следующем: мечусь между выбором из 2-х технологий. NodeJS и Erlang Misultin.
Если был опыт посоветуйте пожалуйста. Общение с клиентом происходит с помощью JSON.

Хочется из свойств:
- отказоустойчивость
- масштабируемость
- выдерживать большую нагрузку

В каждой из технологий есть свои огромные плюсы и минусы... запутался уже.

Yurii Rashkovskii

unread,
Jan 3, 2012, 4:57:35 PM1/3/12
to erlang-...@googlegroups.com
Можно еще Cowboy, он в целом получше мисултина будет. Мы вот до
недавнего времени сидели на Mochiweb/Webmachine, но на днях переползли
на cowboy (в нем появился аналог Webmachine). О node.js даже и не
думали :)

2012/1/3 Alexander Kaloshin <alexander...@gmail.com>:

> --
> Страница рассылки: http://groups.google.com/group/erlang-russian
> Jabber-конференция: erl...@conference.jabber.ru
> Новости: http://erlanger.ru
> Написать письмо: erlang-...@googlegroups.com
> Отписаться: erlang-russia...@googlegroups.com

Dmitry Groshev

unread,
Jan 3, 2012, 4:57:43 PM1/3/12
to erlang-...@googlegroups.com
Обе говно. Для таких вещей есть http://wiki.basho.com/Webmachine.html
; про ноду лучше сразу забыть, если вам дело делать, а не в срачелло
пороться.

4 января 2012 г. 1:51 пользователь Alexander Kaloshin
<alexander...@gmail.com> написал:

Dmitry Groshev

unread,
Jan 3, 2012, 5:00:33 PM1/3/12
to erlang-...@googlegroups.com
О, Loïc таки допилил REST? Классно. Я как-то упустил этот момент.

4 января 2012 г. 1:57 пользователь Yurii Rashkovskii <yra...@gmail.com> написал:

Yurii Rashkovskii

unread,
Jan 3, 2012, 5:12:36 PM1/3/12
to erlang-...@googlegroups.com
Ага, допилил. Я сам пропустил, но вот вчера все портанул. Там немножко
шероховато на углах, но работает :)

2012/1/3 Dmitry Groshev <lambda...@gmail.com>:

Taras Halturin

unread,
Jan 4, 2012, 3:16:58 AM1/4/12
to erlang-...@googlegroups.com
А почему yaws никто не рассматривает? Там же rest из коробки. 

2012/1/4 Yurii Rashkovskii <yra...@gmail.com>



--
With Best Regards.
Taras Halturin

Haspadar

unread,
Jan 4, 2012, 3:47:43 AM1/4/12
to erlang-...@googlegroups.com
А за что misultin ругают? Там тоже есть rest. Правда, нет многого другого.

2012/1/4 Taras Halturin <halt...@gmail.com>

Dmitry Groshev

unread,
Jan 4, 2012, 7:13:39 AM1/4/12
to erlang-...@googlegroups.com
Его код похож на отрыжку гигантского венерианского слизня-убийцы.

4 января 2012 г. 12:47 пользователь Haspadar <hasp...@gmail.com> написал:

Taras Halturin

unread,
Jan 4, 2012, 7:25:51 AM1/4/12
to erlang-...@googlegroups.com
BTW, FYI (не про рест, но в целом) http://www.ostinelli.net/a-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb/

2012/1/4 Dmitry Groshev <lambda...@gmail.com>

Dmitry Groshev

unread,
Jan 4, 2012, 7:38:55 AM1/4/12
to erlang-...@googlegroups.com
Это достаточно старый бенчмарк. Новых вроде не было, правда.

4 января 2012 г. 16:25 пользователь Taras Halturin <halt...@gmail.com> написал:

Ghost

unread,
Jan 4, 2012, 7:58:59 AM1/4/12
to erlang-...@googlegroups.com
имхуется мне март 2011 года не является сильно уж давним, с другой стороны, если уж сильно хочется, то можно провернуть все тесты, кои там выложены. есть некоторые сомнения, что графики сильно изменятся. из всех сейчас самый активный в разработке - ковбой. да и тот, быстр за счет меньшего функционала, еже ли в сравнении с уже зрелыми веб-серверами. любой проект пока молод какие-то конкретные задачи выполняет быстрее остальных полнофункциональных монстров :), что, кстати, дает повод авторам этих "монстров-молодняков" задирать нос вверх и учить жизни всех остальных ;)... знаем, видели таких )). ну это риторика...

По сабжу, для себя выбрал явс. Он при больших кол-вах соединений и при erl +K (kernel_poll) дает результаты близкие к nginx'у. А мне более и не нужно.

Max Lapshin

unread,
Jan 4, 2012, 8:09:35 AM1/4/12
to erlang-...@googlegroups.com
2012/1/4 Ghost <halt...@gmail.com>:

> имхуется мне март 2011 года не является сильно уж давним,

Совершенно ошибочное мнение, Тарас

> активный в разработке - ковбой. да и тот, быстр за счет меньшего
> функционала,

Основанное на абсолютно неверных и ошибочных данных (ведь в код взглянуть лень).

> полнофункциональных монстров :), что, кстати, дает повод авторам этих
> "монстров-молодняков" задирать нос вверх и учить жизни всех остальных ;)...
> знаем, видели таких )). ну это риторика...

Зато старперский гонор хлещет как из ассенизаторской бочки.

> По сабжу, для себя выбрал явс. Он при больших кол-вах соединений и при erl
> +K (kernel_poll) дает результаты близкие к nginx'у. А мне более и не нужно.
>

Без комментариев.

Ghost

unread,
Jan 4, 2012, 9:56:19 AM1/4/12
to erlang-...@googlegroups.com
К слову, это было не в Ваш адрес, Максим. Но Ваша реакция показательна.

Dmitrii Dimandt

unread,
Jan 4, 2012, 10:42:43 AM1/4/12
to erlang-...@googlegroups.com
А гдде на это посмотреть и есть ли где сравнение с webmachine? :)

2012/1/3 Dmitry Groshev <lambda...@gmail.com>
О, Loïc таки допилил REST? Классно. Я как-то упустил этот момент.

Boris Timokhin

unread,
Dec 26, 2012, 9:07:39 AM12/26/12
to erlang-...@googlegroups.com, alexander...@gmail.com
Экзампл в репозитории - https://github.com/extend/cowboy/tree/master/examples/rest_hello_world

26 декабря 2012 г., 17:58 пользователь Vitaly Sorokin <erun...@gmail.com> написал:
Привет.
Извиняюсь за некропостинг, но искал документацию по поддержке REST в cowboy, но ничего толком не нашел. В документации (/doc в репозитории) только одна страница по этому поводу, и то - только упоминает функцию upgrade/4, без особых пояснений. Может кто-нибудь поделиться информацией по этому поводу?
Спасибо.

--

--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Чат: xmpp://erl...@conference.jabber.ru
Чат для оффтопа: xmpp://erlang...@conference.jabber.ru
Правила, действующие в чате и рассылке: http://erlanger.ru/ru/erlang-at-conference-jabber-ru

Vitaly Sorokin

unread,
Dec 26, 2012, 9:26:04 AM12/26/12
to erlang-...@googlegroups.com, alexander...@gmail.com
Посмотрел, спасибо. И все-таки, существует ли какая-нибудь документация по этому поводу?

среда, 26 декабря 2012 г., 18:07:39 UTC+4 пользователь Boris Timokhin написал:

Dmitrii Dimandt

unread,
Dec 26, 2012, 9:29:09 AM12/26/12
to erlang-...@googlegroups.com
Можно только надеяться, что в феврале, когда выйдет cowboy 0.8.0, они улучшат документацию, как они это сделали для ranch

Yuri Zhloba

unread,
Dec 26, 2012, 9:45:49 AM12/26/12
to erlang-...@googlegroups.com
http://ninenines.eu/docs/en/cowboy/HEAD/guide/introduction
Пока только Introduction, больше ничего. Ждем.

Max Lapshin

unread,
Dec 26, 2012, 10:29:48 AM12/26/12
to erlang-...@googlegroups.com
Да, документация действительно была бы полезна, потому что не очень ясны идеи, заложенные в ковбоевский REST.

Например, в рельсах оооочень долго шли к простой идее о том, что хендлер контроллера возвращает объект, который потом рендерится в зависимости от content type, у Лоика это уже есть в примере: https://github.com/extend/cowboy/blob/master/examples/rest_hello_world/src/toppage_handler.erl


Возможно идея в том, что бы данные извлекать в rest_init, а потом отдавать их в последующих хендлерах.
Судя по https://github.com/extend/cowboy/blob/master/src/cowboy_rest.erl этот модуль не столько REST реализует, сколько вообще HTTP-сервер со всем его богатством деталей типа accept, accept-language, if-modified-since и т.п.



Yurii Rashkovskii

unread,
Dec 26, 2012, 10:32:24 AM12/26/12
to erlang-...@googlegroups.com
Max,

cowboy_rest реализует диаграмму RESTful service из webmachine с небольшими отличиями в API.


2012/12/26 Max Lapshin <max.l...@gmail.com>

Артём Семёнов

unread,
Dec 26, 2012, 10:38:34 AM12/26/12
to erlang-...@googlegroups.com
99% rest-штук Ковбоя можно подсмотреть в webmachine. Почти точная копия.


26 декабря 2012 г., 19:29 пользователь Max Lapshin <max.l...@gmail.com> написал:

Max Lapshin

unread,
Dec 26, 2012, 11:04:20 AM12/26/12
to erlang-...@googlegroups.com
Ага. Просто если честно, я хрен че понял из неё =) Но надо отметить, что я не особо и вглядывался и мне не было нужно.


2012/12/26 Артём Семёнов <sev...@gmail.com>

Vitaly Sorokin

unread,
Dec 26, 2012, 11:50:39 AM12/26/12
to erlang-...@googlegroups.com
Кстати, документация по webmachine тоже куда-то делась. По всем старым ссылкам предлагают почитать про Riak.

среда, 26 декабря 2012 г., 19:38:34 UTC+4 пользователь sevenov написал:

Max Lapshin

unread,
Dec 26, 2012, 12:06:52 PM12/26/12
to erlang-...@googlegroups.com

Vitaly Sorokin

unread,
Dec 26, 2012, 12:17:30 PM12/26/12
to erlang-...@googlegroups.com
Меня больше API интересовал...

среда, 26 декабря 2012 г., 21:06:52 UTC+4 пользователь Max Lapshin написал:

Dmitrii Dimandt

unread,
Dec 26, 2012, 1:34:29 PM12/26/12
to erlang-...@googlegroups.com
Меня больше API интересовал...

среда, 26 декабря 2012 г., 21:06:52 UTC+4 пользователь Max Lapshin написал:

Vitaly Sorokin

unread,
Dec 26, 2012, 3:10:23 PM12/26/12
to erlang-...@googlegroups.com
Спасибо за ответы. И все же, я в смятении - что выбрать для REST json-backend'а, cowboy или webmachine? Какие плюсы/минусы?

среда, 26 декабря 2012 г., 22:34:29 UTC+4 пользователь Dmitiri 'Mamut' Dimandt написал:

Max Lapshin

unread,
Dec 26, 2012, 3:15:08 PM12/26/12
to erlang-...@googlegroups.com
Ты ещё не успел что ли собрать прототип пока мы тут языками чешем?

Тебе подсказали:
валидация на уровне HTTP решается веб-сервером (лично я выбрал бы ковбой из тех соображений, что он быстро обновляется, хорошо отлаживается, хотя и будет меняться).
валидацию на уровне данных надо чем-то другим делать (например https://github.com/thethz/jiffy-v если json)


2012/12/27 Vitaly Sorokin <erun...@gmail.com>

Vitaly Sorokin

unread,
Dec 26, 2012, 3:21:10 PM12/26/12
to erlang-...@googlegroups.com
Я пока только читаю доки и ковыряю потихоньку, вживую щупать эрланг начал три дня назад. Читаю Армстронга и пытаюсь во всем разобраться.

четверг, 27 декабря 2012 г., 0:15:08 UTC+4 пользователь Max Lapshin написал:

Vitaliy Kulchevych

unread,
Dec 26, 2012, 3:22:15 PM12/26/12
to erlang-...@googlegroups.com
2012/12/26 Max Lapshin <max.l...@gmail.com>:

> валидацию на уровне данных надо чем-то другим делать (например
> https://github.com/thethz/jiffy-v если json)

Спасибо, Макс. Я когда решал подобную задачу готового ничего небыло,
написал свой валидатор. Уже подглядел пару идей)


--
live free or die;

Daniil Churikov

unread,
Dec 27, 2012, 12:55:39 AM12/27/12
to erlang-...@googlegroups.com
Выбирай cowboy, API для рест хендлеров прапктически одинаковое, только ковбой в отличии от вебмашины развивается.

четверг, 27 декабря 2012 г., 0:10:23 UTC+4 пользователь Vitaly Sorokin написал:

Dmitry Groshev

unread,
Dec 31, 2012, 10:31:56 AM12/31/12
to erlang-...@googlegroups.com
Я бы не рекомендовал без опыта писать нормальное REST API. Мы в 3 головы не придумали достаточно красивого и общего решения, костыль костыль через костыль. Это сложно, в общем.


2012/12/27 Daniil Churikov <ddo...@gmail.com>
Reply all
Reply to author
Forward
0 new messages