Ответы пользователя по тегу Highload
  • Веб сервер под фото. Какую архитектуру хранения выбрать с учетом масштабирования?

    SashokSmir
    @SashokSmir
    Инженер
    Лучше сделать немного иначе. Сделать узел — входной узел для статики. Этот входной узел требует мало ресурсов, но позволит сделать интерфейс для всей вашей системы, с помощью которого вы избежите многих проблем в будете и сможете легко масштабироваться.

    Все запросы на доступ к статическим файлам нужно отправлять на этот узел, например, files.example.com. Тот, кто отправлят запрос даже не знает на каком сервере и т.д. находится файл и ему это не нужно знать.

    Именно этот узел ведет учет файлов и знает на каком именно сервере у вас находится файл. Ваше приложение (сайт) посылает запрос на узел (files.example.com) на доступ к определенному файлу и этот узел смотрит у себя в базе где именно находится этот файл (на каком сервере и по какому адресу) и в ответ отдает этот адрес, например, srv01.files.example.com/f/405/502.jpg

    Таким образом у вас будет единый интерфейс в виде точки входа и весь ваш код будет общаться за файлами именно через этот интерфейс (в виде API). Если в будущем нужно будет поменять алгоритм работы, то придется менять только то, что находится за интерфейсом, но не то, что впереди (то, что впереди интерфейса даже не заметит изменений).

    В будущем для надежности можно сделать зеркальные узлы.
    Ответ написан
    1 комментарий