-Поиск по дневнику

Поиск сообщений в golotyuk

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 18.11.2009
Записей: 71
Комментариев: 0
Написано: 70





Приглашаю на семинар по Интернет-бизнесу

Четверг, 26 Апреля 2012 г. 17:29 + в цитатник
Оригинал сообщения

Дорогие читатели Highload. Приглашаю вас 12 мая на семинар по Интернет-бизнесу. Который проведу вместе со своими коллегами в Киеве.

На семинаре мы расскажем как построить успешную Интернет-компанию.


Обещаю только практические примеры и много полезной информации по вопросам:



  • привлечения трафика

  • построения команды

  • нагрузок

  • монетизации.


Посмотреть детали и записаться




Проекты, которые подняли своими усилиями:

Connect.ua, Plirt.ru, Flirchi.ru

Суммарное количество показов страниц в месяц на сайтах Connect.ua, Plirt.ru, Flirchi.ru превышает 300 000 000. Это в 2 раза больше, чем на i.ua, почти в 4 раза больше, чем на bigmir.net и всего в 4 раза меньше, чем на yandex.ua.

Вывели компанию на прибыльность 2 года назад. И каждый месяц добиваемся новых высот. Про это и расскажем на семинаре


Читателям Highload скидка.



Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP


Понравилось: 5 пользователям

Используем Nginx, как кеширующий сервер

Пятница, 03 Декабря 2010 г. 20:51 + в цитатник
Оригинал сообщения

nginx


В этой статье рассмотрим применениt Nginxa в качестве кеширующего сервера. Подробно о HTTP кеширования написано в статьях о продвинутом кеширующем сервере Varnish. Сразу следует отметить, что Nginx полностью не заменяет Varnish по функционалу и возможностям, но тем не менее продставляет очень хорошое решение. Учитывая великолепную работу этого Web-сервера, наличие функциональности кеширования делает возможным подключить ее к своему сайту буквально за 2 минуты.

Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

Sphinx RT (real-time) индексы

Среда, 18 Августа 2010 г. 14:32 + в цитатник
Оригинал сообщения

spinx

Sphinx 1.10 поддерживает индексы реального времени (Reat-time или RT). Это самая важная функция в новой версии этого отличного полнотекстового поисковика. Индексы реального времени позволяют синхронно добавлять документы для поиска в индекс. Это позволяет избежать задержки появления новых документов в результатах поиска. Пробуем RT индексы на практике.


Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

Используем Nginx как “long polling” (Comet) сервер

Среда, 21 Июля 2010 г. 19:12 + в цитатник
Оригинал сообщения

comet


Принцип Long Polling (или Comet) позволяет сделать возможным установление постоянного соединения клиента с Web приложением и также периодичной отправки данных клиенту в рамках этого соединения (без необходимости клиента постоянно делать HTTP запросы для проверки новых данных). Другими словами, эта модель позволяет реализовать постоянные HTTP соединения для получения данных порциями. Наиболее популярное применение - чаты, твиттеры и другие live-updated потоки - клиент постоянно слушает сервер на предмет появления новых сообщений, и как только новые сообщения появляются - они мгновенно доставляются ему.


Сам принцип не несет в себе инноваций в HTTP протоколе, т.к. этот подход реализуем обычными средствами. Проблема заключается в том, что стандартное решение - установка постоянного соединения с обычным Web сервером (а значит и с обслуживающей платформой, например php-бекендом) - крайне ресурсоемкое и не применимо на практике. Другой подход - постоянно опрашивать приложение на предмет появления новых данных является еще более ресурсоемким.


Решением этой проблеммы стали т.н. HTTP-PUSH (или comet) сервера, позволяющие облуживать огромное количество постоянных соединений эффективно расходуя ресурсы. Как они устроены и как применяются на практике?


Принцип работы Comet-сервера


Необходимо отметить, что Comet сервер решает задачу отправки клиенту определенных данных порциями. Comet сервера реализуют т.н. HTTP Push Relay протокол (например, Basic HTTP Push Relay Protocol). Принцип работы такого протокола заключается в следующем:



  • На Web сервере создается т.н. канал с уникальным ключем. Это делается на стороне приложения путем посылки запроса к Comet-серверу

  • Клиент устанавливает обычное HTTP соединение с Comet-сервером, передавая в параметры ключ канала, из которого он будет получать данные. Сервер удерживает такое соединение, пока не отправит очередную порцию данных

  • Основное приложение, по определенному событию (например, кто-то написал сообщение клиенту), шлет в канал Comet сервера с нужным ключем это сообщение

  • Как только в канале появляется сообщение, Comet сервер отправляет его соответствующему клиенту и закрывает HTTP соединение (иногда соединения не закрываются, а продолжают быть активными)


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


Nginx и модуль HTTP Push


Модуль nginx_http_push_module позволяет превратить Nginx в Comet сервер, реализуя протокол Basic HTTP Push Relay Protocol. Преимущества этого модуля и протокола - в его простоте по сравнению с альтернативными решениями (например, протоколом Bayeux и сервером CometD).


Установка


Для установки модуля необходимо скачать его исходники и перекомпилировать Nginx, т.к. модуль является внешней разработкой:



wget http://pushmodule.slact.net/downloads/nginx_http_push_module-0.692.tar.gz
tar -xvf nginx_http_push_module-0.692.tar.gz
...
cd /where/nginx/sources/are
./configure \
--add-module=/path/to/nginx/modules/sources/nginx_http_push_module-0.692/
make; make install

Конфигурация


Для базовой конфигурации нам необходимо объявить две рабочих точки в Nginxe: точка публикации сообщений (приватная - доступна только для самого приложения) и точка раздачи сообщений (публичная - к которой будут подключаться клиенты):



location /publish {
# Название переменной с идентификатором канала
# в нашем примере "cid", т.е. запрос будет таким:
# http://example.com/publish?cid=s42378fwe
set $push_channel_id $arg_cid;
push_publisher;

# Отключаем хранение очереди (сообщение удаляется после доставки)
push_store_messages off;
}

location /listen {
push_subscriber;

# Обслуживать только первого "слушателя"
# Остальным отправляем 403
push_subscriber_concurrency first;

# Идентификатор канала
set $push_channel_id $arg_cid;

# Тип ответа
default_type text/plain;
}

После этого при отправке сообщения нужно будет посылать его в соотв. канал, делая POST запрос на /publish. Клиент же отправляет GET запрос на /listen и ждет ответа. Когда приходит ответ, клиент делает повторный запрос на /listen и т.д.


Все параметры конфигурации с подробным описанием смотрите на официальном сайте.


Пример


В качестве примера ниже приведен код на PHP, который используется для отправки сообщения в канал:




# Определяем ID канала
$channel_id = 12345;

# Сообщение
$message = 'Привет тебе!';

# Отправляем сообщение в канал
$c = curl_init( 'http://localhost/publish?cid=' . $channel_id );
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, json_encode($message));
$r = curl_exec($c);

Для получения сообщения код на Javascript будет выглядеть где-то так (на основе Jquery):



var channelId = 12345;
function check_messages() {
$.get('/listen?cid=' + channelId, {}, function(r) {
// Считаем, что у нас есть div c id=messages,
// куда мы дописываем сообщения
$('#messages').append(r);
setTimeout(check_messages, 500);
}, 'json');
}

check_messages();

В каких случаях Вам приходилось пользоваться comet-серверами?



Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

NoSQL - подходы к решению типичных задач

Четверг, 03 Июня 2010 г. 20:30 + в цитатник
Оригинал сообщения

nosql


Врядли сегодня найдется тот, кто еще не слышал про key-value базы данных, или как их называют в народе NoSQL. Те, кто успел попробовать продукты вроде Redis, MemcacheDB и других, обнаружили некторые сложности при решении привычных задач - выборка списков и поиск.


В этой статье мы рассмотрим принципы решения типичных задач в key-value базах данных.


Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

Полнотекстовый поиск в MongoDB используя Sphinx

Четверг, 27 Мая 2010 г. 15:07 + в цитатник
Оригинал сообщения

sphinx Многие из тех, кто успел попробовать MongoDB в действии, столкнулись с трудностями с полнотекстовым поиском. Встроенный механизм полнотекстового поиска в MongoDB (его так можно назвать с большой натяжкой) не пригоден для реальных потребностей.


Основная проблема заключается в том, что sphinx не позволяет использовать буквенно-цифровые значения в качестве ID документов. Есть несколько вариантов решения этой проблемы.


Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

memcache vs memached - сравниваем клиенты для PHP

Пятница, 07 Мая 2010 г. 18:47 + в цитатник
Оригинал сообщения

performance


Какой клиент лучше использовать при разработке на PHP - php-memcached или php-memcache? Все зависит от того, какие особенности Вам нужны (неужели?). Давайте сравним в двух аспектах - функциональность и производительность.


Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

Блог на я.ру

Вторник, 27 Апреля 2010 г. 00:28 + в цитатник
Друзья, теперь вы можете читать и комментировать мои записи и на Я.ру — crazyden-rpg!


Делаем ленту обновлений на MongoDB + PHP

Суббота, 24 Апреля 2010 г. 16:45 + в цитатник
Оригинал сообщения

Делаем ленту обновлений на MongoDB + PHP


Вы, конечно, много раз видели ленту обновлений на фейсбуке и твиттере. В двух словах - это список событий, которые произошли недвано на сайте и касаются Вас (чаще всего это деятельность Ваших друзей). Это очень удобный инструмент информирования пользователей и неотъемлемая часть современных социальных проектов. А как обстоит дело с реализацией?


На первый взгляд все очень просто, а на практике все сложно. Давайте разберемся детально (на примере MongoDB + PHP, заодно посмотрим на эту новую шумную СУБД).

Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

Sysbench - тестируем производительность MySQL и платформы

Пятница, 05 Марта 2010 г. 16:47 + в цитатник
Оригинал сообщения

Sysbench - утилита для тестирования производительности MySQL (и других СУБД), а также параметров операционной системы. Подобный инструмент незаменим для предварительного тестирования эффективности системы с (потенциально) высокой нагрузкой. Sysbench позволяет оценить производительность сервера СУБД и операционной системы в различных условиях при различной нагрузке.


Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP

Mongo DB - документо-ориентированная база данных и MySQL

Вторник, 02 Марта 2010 г. 20:35 + в цитатник
Оригинал сообщения

screenshot-home-mongodb-10gen-confluence-chromium


Одним из основных принципов разработки масштабируемых и эффективных приложений является выбор подходящих технологий для решения той или иной задачи. Многие современные РСУБД представляют из себя решения универсальные, но во многих случаях в них просто нет необходимости.


Одним из альтернативных решений для хранения и обработки данных является СУБД Mongo DB (humongous - огромный, невероятный).


Читать далее...

Я сейчас нахожусь: Киев
Мой настрой: Супер
Я слушаю: Все подряд

LIci WP


Поиск сообщений в golotyuk
Страницы: [4] 3 2 1 Календарь