Я разработал API, который отправляет текстовые сообщения. В настоящее время на одном сервере работают три таблицы MySql (sms_account, sms_number и sms_transaction).Масштабирование веб-приложения
Я хочу использовать haproxy для балансировки нагрузки и повышения производительности для разделения запросов между несколькими веб-серверами, но я действительно не знаю, как обрабатывать часть базы данных. Я знаю, что могу создать отдельный кластер баз данных в мастер-мастер-сценарии, но задался вопросом, можно ли это сделать лучше.
Я думал о наличии одной основной кластерной базы данных, содержащей идентичную базу данных для веб-серверов. Таблицы sms_account и sms_number могут обновляться только на этом, и это может обновлять таблицы sms_account и sms_number веб-серверов, поскольку они не меняются очень часто. Затем я подумал, что каждый экземпляр веб-сервера/mysql может периодически обновлять основную базу данных записями из каждой таблицы sms_transaction.
Это звучит немного грязно, но так думал, что загрузка базы данных будет действительно низкой, так как все базы данных веб-сервера будут оставаться маленькими и быстрыми, а основной можно использовать для выставления счетов.
Мне хотелось бы получить второе мнение о дизайне. Я думаю, что в случае сбоя любой из веб-серверов может продолжать работать независимо от других серверов.
Веб-серверы буквально регистрируют транзакцию, и это все. Нет сложных запросов. Я могу сделать отчет и т. Д. Из основной базы данных.
Большое спасибо
Привет Росс, вы уверены, что вам нужно масштабировать MySQL, а? –
, вероятно, нет, могу ли я получить увеличенную производительность с использованием нескольких веб-узлов и одного сервера базы данных? Хотя было бы неплохо иметь план, который должен мне понадобиться в будущем. – Ross