AWS - Что случилось с неисправным Первичным инстансом после его восстановления - PullRequest
0 голосов
/ 25 октября 2018

Я новичок в AWS Aurora.

При прочтении этого пункта ниже в по этой ссылке :

Чтобы повысить доступность, вы можете использовать реплики Aurora в качестве целей отработки отказа.То есть в случае сбоя основного экземпляра реплика Aurora повышается до основного экземпляра

Если сбойный первичный экземпляр может восстановиться, то какую роль он будет выполнять?Я предполагаю, что это станет Репликой?

Я задаю этот вопрос, потому что я думаю, что серверный код, который соединяет кластер Aurora DB, должен указывать конечную точку Первичного экземпляра и Реплики?Поскольку реплика обслуживает только запрос только для чтения, код должен иметь исправленные конечные точки после того, как реплика переведена в первичный экземпляр, чтобы выполнить запрос операции записи?

Как мой код узнает, какая конечная точка теперь является первичным экземпляром(т.е. может быть выполнен запрос операции записи)?

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Кластер Aurora не только предоставляет вам конечные точки прямого соединения для каждого узла в кластере, но также предоставляет вам конечную точку чтения-записи и конечную точку только для чтения.Конечная точка чтения-записи всегда будет указывать на основной узел.Конечная точка только для чтения будет выполнять циклический перебор DNS-соединений между узлами реплики чтения.

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

0 голосов
/ 25 октября 2018

Если сбойный первичный экземпляр может восстановиться, то какую роль он будет выполнять?Я предполагаю, что это станет Репликой?

Существует несколько сценариев сбоя модуля записи, и они обрабатываются по-разному в зависимости от сценария.Отказоустойчивость - это один из способов восстановления Авроры после сбоя.Когда происходит аварийное переключение, старый WRITER перезапускается как READER.Для других незначительных сценариев отказа Аврора будет автоматически восстанавливаться без необходимости отработки отказа.Вместо этого возрождается тот же WRITER.

Как мой код узнает, какая конечная точка теперь является первичной инстанцией

Ваш код должен всегда иметь дело с конечными точками кластера, а не с конечными точками экземпляра.Конечная точка RW кластера всегда будет указывать на мастер, а конечная точка RO кластера будет выполнять циклический перебор DNS через реплики.В любой момент, когда происходит переключение при сбое, ваши клиентские соединения сбрасываются, и они должны пытаться переподключиться с использованием конечных точек кластера.

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

0 голосов
/ 25 октября 2018

Вы подключаетесь к конечной точке кластера через URL , что-то вроде mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com:3306

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

...