Ответы пользователя по тегу Highload
  • Нужно ли переключать реплики при смене мастера с сохранением IP адреса?

    @maxtm
    Make money, not job
    На старом IP уже работает новый сервер, старый просто не может подключится к сети, т.к. его IP занят.
    Ответ написан
  • Как загружать и хранить медиа данные юзеров на разных серверах?

    @maxtm
    Make money, not job
    1. Для хранения файлов выделяется 2 сервера, мне нужно загрузку файлов распределить по ним и соотствественно для каждого файла надо знать на каком сервере он хранится? Как сделать разбиение и по какому признаку? Нужен ли для отдачи медиа данных балансировщик или просто при сохранении файлов писать полный путь с сервером?

    1. Если физически файлов много, либо к ним большой трафик, то разносите так как вы написали.
    Разбивайте по признаку "один сюда, другой сюда", то есть 50/50%.
    Балансировщик нужен тогда, когда у Вас один вид контента одновременно находится на многих сервера, и Вы распределяете между ними нагрузку.
    А тут у Вас уникальный контент на каждом сервере, соответственно балансировать нечего.
    Просто обращайтесь напрямую к этому сервер (s1.example.com, s2.example.com)

    2. Как реализовать запуск 2 веб серверов с одинаковыми версиями приложений и балансировать между ними? Можно ли обойтись nginx или нужен HAproxy? Правильно я понимаю, что для подключения 3 сервера потребуется также развернуть на нем такую же версию приложения, а если 10 серверов нужно добавить будет и балансировать между ними?


    2. nginx отлично справится с балансировкой.
    Да, добавляя новую ноду обеспокойтесь чтобы там была абсолютная копия приложения.
    Обычно это делается через эталонный image-сервера, и при создании новой ноды просто выбирается этот образ компьютера - и вуаля, у вас уже готовая нода.
    Будь у вас 2 сервера, или 20 - nginx отлично сделает балансировку в соответствии с Вашими желаниями.

    3. Вопрос про горизинтальное масштабирование, предположим что база будет расти, и надо будет распределить нагрузку между отдельными серверами баз данных?

    3. С постгри имею не большой опыт. Могу по опыту MySQL сказать.
    В последних версиях mariadb есть galera cluster, это полнофункциональный кластер из мастер-мастер mysql-нод.
    Возможно, у pg есть аналог.
    Суть в том, что трафик по бд раскидывается по нодам, записи типа SELECT выполняются на разных машинах остальные запросы сразу на всех машинах.
    Ряд нод работает с одной БД, другая - с другой, при этом данные у них одинаковы.

    Либо шардирование. "Ручное" распределение данных между несколькими серверами.

    Прежде чем думать о создании нескольких нод базы данных, определите что именно этот участок приложения является узким горлышком.
    Куда проще прикруть кэш, чем организовывать работу с несколькими БД.
    Ответ написан
    4 комментария
  • Работа с очередями (queue) в Node.js, и уведомления о завершении задач, как?

    @maxtm
    Make money, not job
    Посмотрите в сторону AMQP. Отлично подойдет Rabbit
    У него мощная система поставщиков задач и подписчиков на оные.
    Ответ написан
    Комментировать
  • Как хранить время последней активности пользователя в MySQL?

    @maxtm
    Make money, not job
    1) Сделайте отдельную таблицу user_last_activity (user_id, timestamp), InnoDB
    2) Информацию о последней активности пишите в memcache (обновляйте не чаще раза в минуту, сверяйтесь с сессией)
    3) Демоном раз минуту берите данные из memcache и вставляйте в user_last_activity
    4) last_activity юзера также кэшируйте на одну минуту
    Ответ написан
    Комментировать
  • VDS не выдерживает нагрузки. Что делать?

    @maxtm
    Make money, not job
    Вы взяли норм железо, но боюсь не настроили его.
    Сделайте тюнинг веб-сервера, php, БД, сессий, кэша , etc
    Тогда все взлетит.
    Ответ написан