b0bah1
Новичок
В общем на одном из новых проектов решили сделать БД на разных серверах, так же клиенты которые будут обращаться к ним тоже на разных серверах.
Дабы избежать нагрузок и возможность расширение с возросшими нагрузками.
Каждый юзер привязан к своему серверу и все данные о нем хранятся только на этом сервере.
Есть управляющий сервер который хранит данные обо всех серверах и какой юзер на каком сервере находится, при первом запросе мы получаем данные и больше
не проверяем это на управляющем сервере а идет обращение только к серверу где хранится юзер.
Теперь вопросы:
1. Есть грубо говоря поиск данных у пользователей, например выборка предметов по фильтрам. Нам нужно получить данные например с 5 серверов с этой выборкой.
Нужно по идее сделать 5 параллельных запросов, а потом их сложить и выдать пользователю. Как это можно реализовать именно параллельные запросы на PHP?
2. Вопрос про кеширование. Есть SELECTы по LIKE названию предмета, его цене и т.д. фильтров может быть около 10, и кол-во предметов на каждом сервере может быть несколько миллионов. На текущем проекте я использую мемкешь, но там для селектов используется всего несколько десятков тысяч предметов, а тут будут миллионы. Нагрузка будет очень высокой. Какие есть идеи реализации кеша при запросах? Когда 1 пользователь будет все отлично работать, а вот 100-200 запросов одновременных на выборки будет убивать базы.
Архитектура проекта выглядит примерно вот так:
Дабы избежать нагрузок и возможность расширение с возросшими нагрузками.
Каждый юзер привязан к своему серверу и все данные о нем хранятся только на этом сервере.
Есть управляющий сервер который хранит данные обо всех серверах и какой юзер на каком сервере находится, при первом запросе мы получаем данные и больше
не проверяем это на управляющем сервере а идет обращение только к серверу где хранится юзер.
Теперь вопросы:
1. Есть грубо говоря поиск данных у пользователей, например выборка предметов по фильтрам. Нам нужно получить данные например с 5 серверов с этой выборкой.
Нужно по идее сделать 5 параллельных запросов, а потом их сложить и выдать пользователю. Как это можно реализовать именно параллельные запросы на PHP?
2. Вопрос про кеширование. Есть SELECTы по LIKE названию предмета, его цене и т.д. фильтров может быть около 10, и кол-во предметов на каждом сервере может быть несколько миллионов. На текущем проекте я использую мемкешь, но там для селектов используется всего несколько десятков тысяч предметов, а тут будут миллионы. Нагрузка будет очень высокой. Какие есть идеи реализации кеша при запросах? Когда 1 пользователь будет все отлично работать, а вот 100-200 запросов одновременных на выборки будет убивать базы.
Архитектура проекта выглядит примерно вот так:
