[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выбор средства для огранизации масштабируемости
ADiel
Всем привет. В данный момент изучаю инструменты для организации работы нескольких серверов с мультипоточностью на php.
К сожалению, я недавно подключился к этому проекту, а с прошлым программистом связь утеряна.

Задача следующая: Обрабатывать каждый запрос отдельным потоком на нескольких серверах с общей базой. Приложение высоконагружаемое, потому в данный момент применяется memcache и shared memory.

Сейчас смотрю в сторону gaerman и redis. Мне не удалось найти отзывов по работе этих систем. Если кто то имел опыт работы с одним из этих продуктов, прокомментируйте пожалуйста. Интересуют недостатки и преимущества.

К сожалению, форки в PHP ведут себя нестабильно, приходится использовать exec для запуска процессов, может есть другие методы?



Спустя 3 минуты, 46 секунд (16.07.2011 - 19:03) Nikitian написал(а):
Почему решили memcache на redis?
Запросы настолько нагруженные, что каждый надо обрабатывать на нескольких серверах или всё же идёт распределение нагрузки балансером?

Спустя 5 минут, 25 секунд (16.07.2011 - 19:09) ADiel написал(а):
Это сокет серверы со своим протоколом, нужна быстрая обработка больших очередей. Масштабируемость больше для распределения нагрузки. Думаю, что можно реплицировать как master-master так и master-slave

В memcache нет мьютексов, но он масштабируемый. По сути можно сделать свои мьютексы, но это костыль. Должны же быть средства.

Спустя 4 минуты, 17 секунд (16.07.2011 - 19:13) ADiel написал(а):
Насчет балансера.. Он будет работать в случае отсутствия ответа одного из серверов. На каждом сервере будет своя рабочая база, но должна быть возможность обмена частью информации. Тут до конца еще не продумано.

В данный момент нужно одно. Семафоры в мемкеше rolleyes.gif
Допустим, есть мемкеш сервер и два воркера. Клиенты, подключены к разным воркерам. На мемкеш сервере появляется запись и передается на воркеры, воркеры, в свою очередь, посылают сообщение клиентам о новой записи. КЛиенты должны записать туда какую то информацию. Записать может только один. Допустим, что это и есть мемкеш. Оба клиента одновременно пытаются послать запрос на запись, так совпало, что оба воркера так же в одно и то же время начали писать. Получим коллизию. Представьте, что клиентских запросов на запись 5000 одновременно

Спустя 14 часов, 22 минуты, 32 секунды (17.07.2011 - 09:36) ADiel написал(а):
Жаль, что никто не в курсе. Я ожидал горячих споров =)

Может тему не там создал?

Спустя 19 минут, 3 секунды (17.07.2011 - 09:55) Nikitian написал(а):
Хм... Ни разу не случалось использовать более одного воркера мемкеша.
Сейчас выходные, вот и неактивно отвечают.

Спустя 5 дней, 4 часа, 42 минуты, 4 секунды (22.07.2011 - 14:37) ADiel написал(а):
Выходные прошли, а мы уже выбрали Redis

Спустя 3 минуты, 13 секунд (22.07.2011 - 14:40) waldicom написал(а):
Gearman не выбрали по какой причине? Не подходит, redis в данном случае лучше? Было бы интересно почитать.

Спустя 2 часа, 38 минут, 7 секунд (22.07.2011 - 17:18) ADiel написал(а):
Я не до конца понимал ситуацию. Gearman немного не тот продукт, что нам был нужен. Он хорош как средство управления задачами или тасками, Redis же - key=>value хранилище. Т.е. Абсолютно разные продукты. Возможно, будем использовать их вместе, время покажет =)

Если называть вещи своими именами, то gaerman с легкостью может контролировать множество демонов с разных серверов, котовые используют достаточно быструю key\value базу, репелицирующуюся какой ужас на несколько серверов. Т.е. в итоге, имея шаблон серера, можем ставить их N - количество, не задумываясь. Нагрузка будет распределяться равномерно.

UPD: Позже, как опробую все это на практике, напишу пост в блоге. Жаль, на хабре меня нет =)


_____________
Ищи меня тут (ilyaplot)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.