Я новичок в масштабировании, так что не судите меня слишком строго, спасибо!
Насколько я знаю, у вас должна быть одна БД (например, экземпляр postgres) - которая считается «главной», в которую вы можете писать, и тогда у вас может быть несколько «рабочих» БД, которые копируют данные из «главной БД», из которых вы только читаете (не уверен, как реализовать копирование из мастера, возможно, используя очередь задач (python celery?) (участствует ли RabbitMQ)? если у вас есть идеи, как это реализовать, я был бы очень благодарен!)
тогда я могу разместить конфигурацию восходящего потока Nginx на своем основном сервере, чтобы распределить нагрузку примерно так:
вышестоящее myapp { сервер http://89.219.32.50:80; сервер http://90.250.32.50:80; сервер http://102.219.32.50:80; } (или домены вместо простых IP-адресов)
Так я застрял с одной главной БД? Я имею в виду, можете ли вы масштабировать основную мастер-БД? что, если количество запросов превысит 1 миллион в день, Может ли один экземпляр БД Postgres обрабатывать такое количество операций записи? следует ли масштабировать главный сервер горизонтально, это единственный вариант? Необходимо ли на этом этапе использовать некоторых поставщиков серверов, таких как AWS?
И как мне узнать, когда мне нужно масштабироваться? мне нужно вести журналы о проценте использования процессора или что-то в этом роде?
Я понимаю, что это довольно большой вопрос, я только начинаю его изучать
Мобильная версия