jenia
Новичок
1. Есть контентный сайт. Работает на CMS Drupal. Работает нормально, ничего оптимизировать не нужно.
2. Для сайта был дописан раздел - агрегатор цен. Для хранения цен используется MongoDB.
3. Каждый магазин или поставщик обычно имеет 10-20 тыс. товаров в каждой торговой точке. В итоге, максимальное количество записей в базе MongoDB может достигнуть 200 млн. Всё храниться в одной таблице, просто расставлены индексы в нужных полях. Сомневаюсь, что данных когда-либо будет так много, как я написал. Возможно их будет значительно меньше.
Проблемы:
1. Уже сейчас, когда добавлено всего 10 магазинов/поставщиков, я вижу, что даже просто парсинг и приведение данных от магазина к нужному формату съедает немало ресурсов сервера. Если поставщиков добавится в агрегатор больше, то нужно как-то решать проблему того, что парсинг мешает работе сайта. Как я писал выше, сервер справляется с нагрузкой (даже с большим запасом) если его не отвлекать задачами парсинга и добавления данных в MongoDB.
2. Добавление в MongoDB тоже использует ресурсы сервера, а соответственно может приводить к перебоям в работе сайта.
Мне кажется, что решением первой и второй проблемы было бы разведение сайта, парсера и БД MongoDB по разным серверам (отдельный сервер для БД, отдельный для парсера и отдельный для сайта). Пока что всё нормально работает, но, если добавить ещё 10 магазинов, то начнутся перебои в работе сайта.
Плюс этого решения: в случае увеличения количества магазинов, не нужно постоянно обновлять web-сервер сайта. Нужно будет только обновлять сервера, на которых расположены MongoDB и парсер. На веб-сервере не всё так легко можно перенести на новый сервер (на этом сервере не один сайт находится, много настроек оптимизирующих работу и т. д.), а вот MongoDB и парсер можно легко переносить.
Минус этого решения: более сложная архитектура, а, соответственно, более сложная программная реализация.
Не мог бы кто-то подсказать что-то по этому вопросу?
2. Для сайта был дописан раздел - агрегатор цен. Для хранения цен используется MongoDB.
3. Каждый магазин или поставщик обычно имеет 10-20 тыс. товаров в каждой торговой точке. В итоге, максимальное количество записей в базе MongoDB может достигнуть 200 млн. Всё храниться в одной таблице, просто расставлены индексы в нужных полях. Сомневаюсь, что данных когда-либо будет так много, как я написал. Возможно их будет значительно меньше.
Проблемы:
1. Уже сейчас, когда добавлено всего 10 магазинов/поставщиков, я вижу, что даже просто парсинг и приведение данных от магазина к нужному формату съедает немало ресурсов сервера. Если поставщиков добавится в агрегатор больше, то нужно как-то решать проблему того, что парсинг мешает работе сайта. Как я писал выше, сервер справляется с нагрузкой (даже с большим запасом) если его не отвлекать задачами парсинга и добавления данных в MongoDB.
2. Добавление в MongoDB тоже использует ресурсы сервера, а соответственно может приводить к перебоям в работе сайта.
Мне кажется, что решением первой и второй проблемы было бы разведение сайта, парсера и БД MongoDB по разным серверам (отдельный сервер для БД, отдельный для парсера и отдельный для сайта). Пока что всё нормально работает, но, если добавить ещё 10 магазинов, то начнутся перебои в работе сайта.
Плюс этого решения: в случае увеличения количества магазинов, не нужно постоянно обновлять web-сервер сайта. Нужно будет только обновлять сервера, на которых расположены MongoDB и парсер. На веб-сервере не всё так легко можно перенести на новый сервер (на этом сервере не один сайт находится, много настроек оптимизирующих работу и т. д.), а вот MongoDB и парсер можно легко переносить.
Минус этого решения: более сложная архитектура, а, соответственно, более сложная программная реализация.
Не мог бы кто-то подсказать что-то по этому вопросу?