У меня есть облачный сервис на Azure
и на этом облачном сервисе у меня 2 VMs
, И я имею apache
, php
, mysql
, phpmyadmin
установлен на обоих. Обе виртуальные машины также имеют одинаковый набор доступности.
Если мой облачный сервис dns
является hello.cloudapp.net
и я получаю доступ к phpmyadmin, перейдя в hello.cloudapp.net/phpmyadmin
и создать базу данных, на какой виртуальной машине она будет создана?
Один из двух, в зависимости от того, на какой балансировщик нагрузки решит отправить вас.
Проблема заключается в наличии отдельного экземпляра MySQL, локального для каждой виртуальной машины. Вместо этого вам нужно что-то, что создаст общий контекст данных между двумя экземплярами; MySQL Cluster выглядит многообещающе
Поскольку набор доступности просто гарантирует, что ваше приложение не будет затронуто отдельными точками отказа, такими как сетевой коммутатор или блок питания стойки серверов. И у вас есть 2 одинаковые виртуальные машины в облачной службе, поэтому балансировщик нагрузки может создавать разные данные в этих экземплярах MySQL V. Таким образом, вы должны обрабатывать такие, как синхронизация в MySQL, например MySQL Cluster, как @Ic. сказал.
В качестве другого подхода мы можем создать новую базу данных MySQL с установленной виртуальной машиной в новом облачном сервисе в качестве уровня данных.
Разумеется, в качестве альтернативного подхода вы можете использовать услугу 3-й части, то есть ClaerDB, которая, как правило, заботится о большинстве из этих вещей для вас.