Search
Write a publication
Pull to refresh
0
0
Дурак Обама @globalrunet

User

Send message

dklab_multiplexor: постоянное Javascript-соединение с сервером в условиях сотен тысяч онлайн-клиентов

Reading time4 min
Views6.8K
Dklab_multiplexor — это инструмент, который позволяет держать одновременно сотни тысяч долгоживущих открытых HTTP-соединений с сервером. Например, если на вашем сайте находится одновременно несколько сот тысяч посетителей, каждый из них может быть связан с сервером постоянным соединением, установленным из JavaScript. Это например, полезно при организации онлайн-чатов или мгновенных уведомлений.

Dklab_multiplexor не претендует на полную универсальность или исключительность (кстати, если знаете аналоги, близкие по простоте к multiplexor-у, пишите в комментариях). Это лишь простейший инструмент, который наконец-то дошли руки опубликовать.

Зачем это нужно?


Предположим, посетители вашего сайта могут посылать друг другу сообщения. Если получатель в момент отправки находится на сайте (просматривает какую-либо страницу), ему немедленно выдается уведомление (всплывающее окошко на JavaScript).

Данную задачу можно решить двумя способами.
  1. Неправильный способ. Раз в 10 секунд делать из JavaScript запрос на сервер для проверки, не появилось ли новых сообщений. Этот метод не работает, если на сайте одновременно находится очень большое количество пользователей, т.к. нагрузка на сервер растет слишком быстро. Кроме того, потребление трафика пользователем также оказывается крайне высоким.
  2. Правильный способ. Устанавливать постоянное и длительное соединение с сервером, ожидая поступления данных через него. Если сообщений нет, соединение просто держится открытым на протяжение нескольких минут. Если соединение по каким-либо причинам закрылось, оно вновь открывается. В итоге и трафика потребляется мало, и нагрузка на сервер оказывается невелика. Так работает GMail, Мой Круг и т. д., и именно на этом принципе построен dklab_multiplexor.
+-------------------+                    ------------------ 
| Сервер обработки  |                   |                  |   <===WAIT=== Клиент A
| и базы данных     |  ======IN=======> |   Мультиплексор  |   <===WAIT=== Клиент B
| (e.g Apache + PHP |                   |                  |   <===WAIT=== Клиент C
+-------------------+                    ------------------ 
(указаны направления установления TCP-соединений).
Читать дальше →

Прогрессивные технологии, как способ выжать из сервера максимум

Reading time5 min
Views12K

Вступление


Просто красивый rrdtool =)
Забавно, но когда программист разрабатывает какой-либо продукт, он редко задумывается над вопросом могут ли на одну кнопку в один момент времени нажать одновременно 2000 человек. А зря. Оказывается могут. Как ни странно но большинство движков, написанных такими программистами, очень плохо ведут себя под большими нагрузками. Кто бы подумал, а всего один лишний INSERT, не проставленный index, или кривая рекурсивная функция могут поднять load averages чуть ли не на порядок.

В этой статье я опишу как мы, разработчики проекта, сумели выжать из одного сервера с Pentium 4 HT / 512Mb RAM, максимум, держа одновременно 700+ пользователей на форуме и 120,000 на трекере. Да, проект этот — торрент трекер. Предлагаю сразу оставить в стороне разговоры о копирайтах и правах, мне это не интересно, что действительно интересно — это HighLoad.
читать дальше

Иерархические структуры данных и производительность

Reading time14 min
Views23K

Введение



В своей предыдущей статье я дал краткий обзор основных моделей хранения иерархических структур в реляционных БД. Как и положено тому быть, у многих читателей стал вопрос ребром о производительности представленных алгоритмов.

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

Читать дальше →

Неуловимо прекрасный user experience

Reading time6 min
Views778
Несмотря на продолжающийся рост затрат на ИТ в компаниях, многие инвесторы и предприниматели в последнее время обратили свое внимание на область конечных потребителей. Причина в том, что многие яркие успехи последних 10 лет, которые были поддержаны венчурным капиталом, это изначально B2C: Ebay, Google, RealNetworks и т.д. Траты потребителей растут, и растет рынок онлайн-рекламы. Так что многие предприниматели считают, что это подходящее время вьехать в Силиконовую Долину на белом коне с новой классной идеей потребительского сервиса.

Увы, большинство колоссальных венчурных потерь – это тоже B2C-проекты. Ошеломляющее большинство хорошо профинансированных компаний электронной коммерции и социальных сетей либо находятся на свалке спада дот-комов, или идут в том направлении. Я подумал, что было бы полезно немного порефлексировать по поводу B2C предпринимательства:
Читать дальше →

Хакеры заинтересовались расширениями Firefox

Reading time1 min
Views1.3K
Расширения Firefox — самое слабое место в системе безопасности этого свободного браузера. В момент запуска каждое расширение инициирует соединение с удалённым сервером, чтобы проверить обновления. Проблема в том, что эти обновления могут находиться на «левом» хостинге и передаваться по незащищённому протоколу. По мнению некоторых экспертов, злоумышленник может легко перехватить такое соединение, например, внедрившись в беспроводной канал передачи данных от публичного хотспота.
Читать дальше →
12 ...
12

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity