Вопрос на фантазию
Хочу сделать следующую систему:
Имеется несколько сайтов. В перспективе их количество может быть несколько тысяч. Сейчас исходим из начального количества 30штук. На каждом из сайтов хочу сделать терминал, некий чат. Заходит пользователь на сайт и у него есть идентификатор, который составляется из его логина после авторизации, и домен + поддомен сайта. Дальше он может открыть терминал чата и написать другим пользователям, с других сайтов. Написать сообщения можно даже если других пользователей нет в сети, некий аналог аськи. Теперь залезем глубже: Один из этих сайтов будет главным, на него будут поступать все сообщения, и далее другими сайтами будет опрашиваться главный, на предмет новых сообщений. Опрашиваться сервер будет как я понимаю на AJAX, с интервалом, допустим 15 секунд, и поможет мне в этом наверное эта статья. Тут как бы всё понятно. Далее, на главном сайте будет несколько пользователей. Они будут считаться, допустим администраторами. И если им пишут, тогда необходимо как-то их оповестить. Значит, администраторы должны получать уведомления о поступивших к ним сообщениях. И тут придется пофантазировать. Хотел сделать на СМС. Но посчитал: 1000 пользователей = 1000 рублей за СМС, если каждый напишет хоть по одному сообщению. Пока кризис, такой вариант явно не катит. Хотел бы сделать вариант такой, отправка сообщений на аську. Но лазил в интернете, ни один из найденых мною скриптов так и не отправил сообщение. Думал о варианте с почтой, можно, но банально, т.к. за компом администратора может и не быть, а на телефоне почту проверять не охото. Другое дело с аськой, она "ооукнула" на телефоне, тогда можно зайти на почту и посмотреть, что там написали, или на сайт сразу. Также интересно ваше мнение по поводу: какой мощности сервер должен быть, чтобы выдержать такое количество опросов с других доменов? Чтобы облегчить нагрузку, я даже готов писать это без использования SQL, построена система будет только на файлах. Что вы думаете по всему, выше изложенному? |
плохо лазил по инету, раз не смог найти скрипт для работы с аськой...
|
по моему, это зря ты отказался заранее от БД, и решил на файлах.
допустим у тебя 1000 сайтов по 20 пользователей он-лайн это порядка 1333 запросов в секунду. я конечно не сильно в курсе, насчет высоконагруженных серверных приложений, но полагаю, винчестер будет просто "разрыватся" в таком режиме. гораздо лучше текущие актуальные данные(переписка за последние 10 минут) хранить в оперативе, ИМХО. для этого можно использовать несколько инструментов: 1)HEAP-таблицы в MySQL.они хранятся в оперативе 2)в PHP вроде есть встроенные инструменты, для хранения чего-то в общем "хранилище" в оперативе.но, я с этими инструментами не работал, поэтому не уверен, что это то, что я думаю.работает только под никсами вот оно(если это не подходит, просьба не пинать) Если сам скрипт также будет висеть постоянно в оперативе, при помощи Zend-а, это также будет весьма положительно. грубо говоря в этой системе узкое место-не количество данных, а скорость реакции вообще-же советую, предварительно сделать тест на своем домвшнем компьтере простейший. мульти-курлом вполне можно сформировать необходимую нагрузку на фоне запускаем Системный монитор, либо сторонню утилиту наблюдения за производительностью, и смотрим, что творится с винчестером и прочим.также запрашиваемый скрипт(если это будет скрипт конечно), пускай ведет логи вермени своего выполнения(в разные файлы, для того чтобы не тормозить тест на нежных блокировках) еще можно почитать статьи о высоконагруженных приложениях В принципе кратко свои мысли обрисовал. Если нужны какие-то более подробные советы, можеш стукнуть в аську(в моем профайле указана), при наличии свободной времени, помогу |
Цитата:
|
Gvozd,
Спасибо Вам огромное, интересный взгляд, интересные слова, посижу поразбираюсь). |
Про оповещения, советую посмотреть в сторону Джаббера, так дело обстоит куда лучше, чем с аськой.
|
Цитата:
|
Цитата:
|
опять же, имхо, сложная задача (чат). Я бы начал с изучения существующих, например, http://php.spb.ru/chat/
|
Kolyaj,
Спасибо, ссылочка то, что надо). Скажите правильно ли я всё понял относительно Джабера, а именно: Я могу на свой главный сайт поставить сервер Jabber, а на другие сайты поставить клиенты Jabber, и на телефоне поставить у себя клиент Jabber. После всё это дело настроить,и получится некая единая система. |
Часовой пояс GMT +3, время: 10:30. |