Zzepish
21.02.2013 - 01:20
saddam123
огна гшенерируется автоматически! Это сообщения, они тянутся из базы
Цитата (Zzepish @ 20.02.2013 - 20:58) |
I++ Последние 30 сообщений! А я думаю, что мемкеш не тащит! Забивать оперативу- зачем? А если каналов over 9000? |
Допустим у тебя 9000 каналов, максимальная длина сообщения 1024 символа в анси, получается 263 мегабайта памяти
для 9000 каналов и 30 последних сообщений для каждого канала, твой ajax чат умрет в муках даже на дедике если в каждом из каналов будет хотябы по 10 человек, тупо апач зафлудят.90к запросов в сек, думаю положат обычный дедик или vps.
SlavaFr
21.02.2013 - 10:24
Цитата (Zzepish @ 20.02.2013 - 16:58) |
I++ Последние 30 сообщений! А я думаю, что мемкеш не тащит! Забивать оперативу- зачем? А если каналов over 9000? |
а если больше милиона?
Если дела пойдут хорошо, то тогда все ровно одного сервера не хватит.
Кеширование должно использовать возможности HTTP с использованием Еtag
_____________
↓↓↓↓↓↓↓↓↓↓ответ может быть здесьили в mysql_error();
Возможности http и etag для чата? Кажется мы под онлайн-чатом понимаем разные вещи. Возможно если подробней описать принцип работы этой возможности и что под этим подразумевается, будет яснее.
А если больше миллиона, то вообще апача не должно быть, на фронте nginx с распределением нагрузки по серверам на Си написанный демон на бэкенде, с созданием воркеров, на фронтенде 1 точка входа на порту с форвадингом на нужный сервак с демоном общение по вебсокетам или костыль в виде врапера на флеше с сокетами для js, чтобы юзать сжатие и уменьшить количество данных.
Так же запастись оперативкой, файловые кеши и другие вещи тут не подойдут, это станет узким местом, если сообщения нужно логировать php вообще не подойдет, на запись в файл например фризится основной поток и это будет узкое место, запись логов в файл должно вестись независимо от основного потока работы с чатом и сетью, пых такого не умеет, хотя pthreads есть, но я еще не юзал, руки не дошли.
Но я думаю, что тут не аська целая, а просто чатик максимум на 200 человек.
Zzepish
21.02.2013 - 14:53
I++
Я вообще его для практики пишу! И пытаюсь не тупо кеширование запилить, а осознанно! Чтоб знать, как оптимальней
Я конструирую машину, я вот думаю ей ставить реактивный двигатель или нет. Возможно она будет использоваться по бездорожью, но я должен учесть, что буду участвовать в гонках болидов формулы-1 но еще возможно машина должна быть и грузовой для перевозки 200 таджиков за 1 раз, но я еще подумываю погружаться на ней в Мариунскую впадину, а от туда стартовать на на марс, там разгрузить из машины модули для марсианской базы, а затем включив гипердрайв отправиться в иследьвание галактики
Вопрос какую марку колес выбрать мешлен для спорта или якохаму для бездорожья?
На твой вопрос нет ответа, так как нет конкретной задачи.
inpost
22.02.2013 - 13:42
I++Задача простая, научиться: файловый кеш, аякс, динамика на JS (переключение каналов).
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Zzepish
22.02.2013 - 16:05
I++
Стас за меня выразился)
Сложно представляю файловый кеш для чата. Вижу только либо субд либо массивы в памяти работающие по принципам стека, либо мемкеш по той же методике. Хотя если говорится о полу-чате обрубке, то вполне можно использовать полный кеш уже сгенерированной страницы, например как это в форумкх делается или гостевых. Но это актуально при частых загрузках, т.е новых юзеров, либо вот как тут чат, гуляешь по форуму, а чат каждый раз поновой грузится, проще его закешировать, что очень актуально, в таком случае лучше кешировать каждый раз при новой месаги.
Zzepish
22.02.2013 - 20:35
I++
Просто я хочу сделать так, чтоб шло минимум обращений к базе! Только при добавлении или удалении сообщения
Zzepish
23.02.2013 - 03:36
Еще актуально!
Ну смотри 9000 каналов, минимальный кеш 1024 байта, итого 240 метров мелких файлов, апдейт раз у секунду, диски сас 1000 iops 90к запросов = смерть
Лучше в таком случае отожрать 350 примерно метров оперативки и не мучать диск, но глупые обновления по ajax будут создавать ничего не делающий паразитный трафик и грузить проц, очевидно, что лучше использовать вебсокеты или флеш костыль для TCP сокетов.
Zzepish
23.02.2013 - 13:16
I++
Флеша не знаю!
На тему веб- сокетов: мечта у меня их освоить! Однако ест одна мааленькая беда- я читал, что она не везде работают
habrahabr.ru/post/51757/
Лень было погуглить на тему враперов сокетов на флеше?
----- Однако ест одна мааленькая беда- я читал, что она не везде работают
Точно в моем любимом lynx например или в ie 6 и других древних системах коих в мире 2% и юзают их обычно люди с минимальной покупательной способностью.
--- Еще актуально!
Что именно? Идея дана, куда копать тоже, чатов овер9000 уже написано с данными техниками с овер9000 каналами и другими прелестями, остается дело за малым копи, паста, прегреплейс копирайт на свой
Zzepish
23.02.2013 - 16:33
I++
Ну, я буду капать в сторону веб-сокетов) уже все гуд! Т.е.- я перезаписываю файл только тогда, когда отправка\прием сообщений? А веб-сокет сам обновит мне его! так?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.