2014-11-20 3 views
0

К примеру у нас есть приложение, которое миссия состоит в том:
«в режиме реального времени» приложение или рядом с ним

  1. пользователя отправить данные на сервер (Здесь все понятно)
  2. Сервер отправить данные клиенту

С мобильными устройствами все ясно. Мой сервер отправляет данные на Push Server, затем Push Server отправляет данные на устройство, после чего устройство переходит на сервер и загружает данные с сервера.

Но что делать с расширениями браузера, приложениями Mac OS или Windows? Здесь я вижу два варианта:

1) Запросить данные с сервера каждые x секунд. То, что не будет «в режиме реального времени», если мы будем использовать интервал 30 секунд, например, но если мы будем запрашивать данные каждые 2 секунды с 10 000 клиентов (например), это будет выглядеть как атака самодоступа.

2) Использование гнезд. Я знаю, что сокеты хороши для приложений чата, но если наше приложение не чат, например, мы будем отправлять данные каждые 5-60 минут или более. Поскольку я читал статьи о многих тестах производительности на сокетах, использование сервера сокетов с большим количеством людей (давайте представим себе около 1-10 тысяч подключений) требует много ресурсов.

Возможно, у меня что-то отсутствует или какие другие варианты доступны для этого случая. Не могли бы вы направить меня на правильный путь. Как отправить данные клиенту как можно быстрее?

+1

Сокет - это конечная точка для ЛЮБОЙ межсетевой связи. Таким образом, при любом подходе, который вы выберете, вы будете иметь сокеты неявно или явно. –

ответ

0
  1. Кэш часто отправляет данные, чтобы можно было перехватить вызовы базы данных и другие обработки.
  2. Используйте оборудование подходит для больших объемов сетевого трафика и серверов, которые могут справиться с высокой нагрузкой
  3. падения трафика, когда ваш сервер абсолютно слишком занят, чтобы справиться с этим
  4. Если возможно, клиенты программы так, что они будут подключаться через различные интервалы времени - не все сразу.
  5. Поддержание нескольких серверов и использование балансировки нагрузки для распространения запросов. Простым способом балансировки нагрузки является использование DNS round robin - я не говорю, что вам нужно просто выбросить его туда.
Смежные вопросы