2016-06-29 10 views
-1

Я разработал API, который отправляет текстовые сообщения. В настоящее время на одном сервере работают три таблицы MySql (sms_account, sms_number и sms_transaction).Масштабирование веб-приложения

Я хочу использовать haproxy для балансировки нагрузки и повышения производительности для разделения запросов между несколькими веб-серверами, но я действительно не знаю, как обрабатывать часть базы данных. Я знаю, что могу создать отдельный кластер баз данных в мастер-мастер-сценарии, но задался вопросом, можно ли это сделать лучше.

Я думал о наличии одной основной кластерной базы данных, содержащей идентичную базу данных для веб-серверов. Таблицы sms_account и sms_number могут обновляться только на этом, и это может обновлять таблицы sms_account и sms_number веб-серверов, поскольку они не меняются очень часто. Затем я подумал, что каждый экземпляр веб-сервера/mysql может периодически обновлять основную базу данных записями из каждой таблицы sms_transaction.

Это звучит немного грязно, но так думал, что загрузка базы данных будет действительно низкой, так как все базы данных веб-сервера будут оставаться маленькими и быстрыми, а основной можно использовать для выставления счетов.

Мне хотелось бы получить второе мнение о дизайне. Я думаю, что в случае сбоя любой из веб-серверов может продолжать работать независимо от других серверов.

Веб-серверы буквально регистрируют транзакцию, и это все. Нет сложных запросов. Я могу сделать отчет и т. Д. Из основной базы данных.

Большое спасибо

+0

Привет Росс, вы уверены, что вам нужно масштабировать MySQL, а? –

+0

, вероятно, нет, могу ли я получить увеличенную производительность с использованием нескольких веб-узлов и одного сервера базы данных? Хотя было бы неплохо иметь план, который должен мне понадобиться в будущем. – Ross

ответ

0

Проблема с «Периодически обновлять» бит всегда консистенция.

Возможно создание собственного алгоритма слияния, но в конечном итоге вы столкнетесь с ошибкой обработки дороги.

Я бы порекомендовал вам ждать масштабирования MySQL до тех пор, пока вам не понадобится. Держите код доступа к данным достаточно хорошо изолированным, и вы всегда можете реорганизовать, если/когда вам нужно.

После того, как вам нужно реорганизовать, вы в совершенстве владел конфигурации/рабы рабов ..