Pusher vs Pubnub vs с открытым исходным кодом Socket.io/SignalR.net/Faye/jWebSocket

Я оцениваю Pusher и PubNub на данный момент, чтобы обеспечить двунаправленную связь в реальном времени между моими главным образом веб-клиентами и моими серверами. Оба выглядят впечатляюще, поскольку документы Pusher кажутся лучше, а масштабируемость и надежность PubNub явно являются для них сильной стороной.

Однако, поскольку я управляю бюджетом, я обеспокоен тем, что расходы Pusher и PubNub могут стать проблемой для нас, и поэтому я рассматриваю возможность использования одной из альтернатив с открытым исходным кодом - я смотрел в первую очередь на Socket.io, Faye и jWebSocket.

У меня есть свои проблемы, хотя я сам запускаю службу:

  • Кто-нибудь на самом деле масштабировал Socket.io или другое решение с открытым исходным кодом на нескольких серверах раньше? PubNub утверждает, что имеет дело с 1M сообщениями в секунду!, я несколько сомневаюсь, что Socket.io может сделать это без непостижимого количества серверов, если он вообще будет работать.
  • Есть ли возможности в платных сервисах, которые я, вероятно, собираюсь пропустить по линии, должен ли я идти с решениями с открытым исходным кодом?
  • Является ли латентность действительно проблемой, если у меня есть сервер на AWS? PubNub находятся в нескольких местах, поэтому я ожидаю, что это должно уменьшить задержку, хотя, если сообщение должно быть отправлено из США в Японию, если сервер в Японии не поможет с задержкой, поскольку он все равно должен туда путешествовать так или иначе.

Спасибо за совет.

Ответ 1

Faye с использованием Node.js было очень легко настроить для меня и изначально очень хорошо себя зарекомендовало в тестировании. Однако, несмотря на то, что нагрузка на мое приложение составляет всего около 10 запросов в секунду с около 3000 открытых подключений - когда я переключил его на live Node. Использование js cpu было закреплено на 100% (1 ядро ​​из 8 доступных на моем ящике), Я был немного разочарован этим и ожидал большего.

Я рассмотрел использование redis или запуск более одного экземпляра node на разных портах, а затем разделение нагрузки на моем конце приложения, но, глядя на цены PubNub, было намного проще просто разгрузить все это для них.

Попробовав Pusher и PubNub, я обнаружил, что PubNub будет дешевле и значительно ниже для меня (я принимаю участие в Сингапуре, а Pusher для вас - 500 мс, для меня PubNub - это около 250 мс для меня из моего приложения). Если вы размещены в США, разница будет, вероятно, намного меньше.

Я также посмотрел Ape-Server, но не нашел хороших учебников/документации для создания модели публикации/подписки, поэтому пропустил ее, но, возможно, вы умнее меня и будете иметь лучший опыт:)