Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Вопрос на фантазию (https://javascript.ru/forum/offtopic/3269-vopros-na-fantaziyu.html)

greatilya 02.04.2009 07:10

Вопрос на фантазию
 
Хочу сделать следующую систему:
Имеется несколько сайтов. В перспективе их количество может быть несколько тысяч. Сейчас исходим из начального количества 30штук. На каждом из сайтов хочу сделать терминал, некий чат. Заходит пользователь на сайт и у него есть идентификатор, который составляется из его логина после авторизации, и домен + поддомен сайта. Дальше он может открыть терминал чата и написать другим пользователям, с других сайтов. Написать сообщения можно даже если других пользователей нет в сети, некий аналог аськи.

Теперь залезем глубже:
Один из этих сайтов будет главным, на него будут поступать все сообщения, и далее другими сайтами будет опрашиваться главный, на предмет новых сообщений. Опрашиваться сервер будет как я понимаю на AJAX, с интервалом, допустим 15 секунд, и поможет мне в этом наверное эта статья. Тут как бы всё понятно. Далее, на главном сайте будет несколько пользователей. Они будут считаться, допустим администраторами. И если им пишут, тогда необходимо как-то их оповестить. Значит, администраторы должны получать уведомления о поступивших к ним сообщениях. И тут придется пофантазировать. Хотел сделать на СМС. Но посчитал: 1000 пользователей = 1000 рублей за СМС, если каждый напишет хоть по одному сообщению. Пока кризис, такой вариант явно не катит. Хотел бы сделать вариант такой, отправка сообщений на аську. Но лазил в интернете, ни один из найденых мною скриптов так и не отправил сообщение. Думал о варианте с почтой, можно, но банально, т.к. за компом администратора может и не быть, а на телефоне почту проверять не охото. Другое дело с аськой, она "ооукнула" на телефоне, тогда можно зайти на почту и посмотреть, что там написали, или на сайт сразу.
Также интересно ваше мнение по поводу: какой мощности сервер должен быть, чтобы выдержать такое количество опросов с других доменов? Чтобы облегчить нагрузку, я даже готов писать это без использования SQL, построена система будет только на файлах.

Что вы думаете по всему, выше изложенному?

ZoNT 02.04.2009 11:51

плохо лазил по инету, раз не смог найти скрипт для работы с аськой...

Gvozd 02.04.2009 13:19

по моему, это зря ты отказался заранее от БД, и решил на файлах.
допустим у тебя 1000 сайтов по 20 пользователей он-лайн
это порядка 1333 запросов в секунду.
я конечно не сильно в курсе, насчет высоконагруженных серверных приложений, но полагаю, винчестер будет просто "разрыватся" в таком режиме.
гораздо лучше текущие актуальные данные(переписка за последние 10 минут) хранить в оперативе, ИМХО.
для этого можно использовать несколько инструментов:
1)HEAP-таблицы в MySQL.они хранятся в оперативе
2)в PHP вроде есть встроенные инструменты, для хранения чего-то в общем "хранилище" в оперативе.но, я с этими инструментами не работал, поэтому не уверен, что это то, что я думаю.работает только под никсами
вот оно(если это не подходит, просьба не пинать)

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

В принципе кратко свои мысли обрисовал.
Если нужны какие-то более подробные советы, можеш стукнуть в аську(в моем профайле указана), при наличии свободной времени, помогу

greatilya 02.04.2009 15:18

Цитата:

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

greatilya 02.04.2009 15:19

Gvozd,
Спасибо Вам огромное, интересный взгляд, интересные слова, посижу поразбираюсь).

Андрей Параничев 02.04.2009 15:25

Про оповещения, советую посмотреть в сторону Джаббера, так дело обстоит куда лучше, чем с аськой.

greatilya 02.04.2009 15:37

Цитата:

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

Kolyaj 02.04.2009 15:55

Цитата:

Сообщение от greatilya
еще не совсем понял что это, и с чем это едят

http://habrahabr.ru/blogs/webdev/50756/

x-yuri 03.04.2009 02:31

опять же, имхо, сложная задача (чат). Я бы начал с изучения существующих, например, http://php.spb.ru/chat/

greatilya 03.04.2009 13:11

Kolyaj,
Спасибо, ссылочка то, что надо). Скажите правильно ли я всё понял относительно Джабера, а именно:
Я могу на свой главный сайт поставить сервер Jabber, а на другие сайты поставить клиенты Jabber, и на телефоне поставить у себя клиент Jabber. После всё это дело настроить,и получится некая единая система.


Часовой пояс GMT +3, время: 11:59.