Задать вопрос

Онлайн чат для сайтов: node.js / erlang / другое?

Делаем веб сервис: виджет для встраивания на сайты клиентов. Будет функция онлайн чат. Как у jivosite.ru

Стоит вопрос, на чем писать сервер обмена сообщениями. Сейчас имеем два вариант:

Node.js.

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

Минус: пока не ясно как грамотно сделать балансировку нагрузки между множеством серверов. Чтоб собеседники могли подключаться к разным серверам, при этом общаться без проблем, подключать новых собеседников в диалог.

Erlang

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

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

Вопросы:

1. Прошу помочь, на чем лучше остановиться?
2. Возможно есть пути решения на node.js?
3. Или с Erlang не все так страшно?
4. Возможно есть другие подходящие технологии?
5. Возможно вы знаете того кто может помочь за оплату или взяться за выполнение проекта?

P.S.: Не знаю позволяют ли здесь правила искать подрядчиков. Если что, прошу администрацию извинить и затереть пункт 5.
  • Вопрос задан
  • 1039 просмотров
Подписаться 2 Оценить 3 комментария
Решения вопроса 1
@eoffsock
Кодер (Rails)
пока не ясно как грамотно сделать балансировку нагрузки между множеством серверов


У вас сколько коннектов-то? До 100к примерно можно смело говнокодить на чем угодно из списка. До 300к можно говнокодить на Эрланге. Все это спокойно будет работать на одной машине.

Вот старая уже публикация про 1м на машине с 128Гб/40 cores на Phoenix: phoenixframework.org/blog/the-road-to-2-million-we...
Это с учетом оверхеда на Phoenix еще. Уберите его, пишите на чистом Эликсире, и будет еще полегче.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
gadfi
@gadfi
https://gamega.org
Велика вероятность, если он сольется, остаться с непонятным кодом, который некому доделать. По биржам фриланса пробежался, Erlang разработчиков крайне мало.

тогда о чем вообще вопрос ?
вы уверены что вам нужно будет так сильно масштабироваться как fb ? к слову вк чаты раньше жили на node.js, сейчас на go
Ответ написан
Комментировать
@furrya_black
Node.js в вашем случае (и по "быстро найти разработчика" и по технической части).

FB, Яндекс, vk не показатель. Другие ресурсы и масштабы. Как правило фреймворки/инструменты от таких мастодонтов пишутся ими для своих же нужд и под эти же нужды затачиваются.

PS:
Быстро найти и не дорого === некачественная работа.
Node.js обманчив своей простотой.
Ответ написан
Комментировать
@Levhav
Возьмусь за разработку проектов любой сложности.
Осмелюсь предложить к рассмотрению мой проект комет сервера. С ним вы сможете писать код на php не беспокоясь о вебсокетах. Вот есть результаты нагрузочного тестирования

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

Если будут вопросы по CppComet пишите, смогу подсказать как его эффективнее использовать.
Ответ написан
begemot_sun
@begemot_sun
Программист в душе.
Здравствуйте, Александр.

Для публики: Я - это тот самый разработчик, который предлагает Erlang.
Давайте теперь по пунктам:
1. Erlang :)
2. Я не специалист в node.js, не скажу. Я уже писал вам в письмах почему Erlang.
3. Абсолютно не страшно. "Erlang учится за 2 недели, то есть за год можно выучить до 26 Эрленгов" ( tonsky.livejournal.com/281876.html )
4. Наверное есть.
5. Я бы усомнился в вашей адекватности. Предоставив какую-то мокап админку, вы просите оценить стоимость и объем работ по серверу-чата. При этом абсолютно уверуя, что мне достаточно информации.

Также вы всегда можете найти ерланг разработчика в русской расылке Erlang:

https://groups.google.com/forum/?utm_source=digest...

Удачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы