Реплика чтения AWS RDS

У меня есть основное приложение dotNet, и это база данных MySQL RDS, настроенная в лондонском регионе AWS, используемая пользователями из Великобритании.

Теперь у меня есть пользователи из Австралии, у которых наблюдается низкая производительность при использовании приложения для Великобритании.

Я хотел бы улучшить производительность для этих пользователей и подумать о создании реплики базы данных только для чтения, поскольку считывается 90% активности БД.

Как приложение узнает, использовать ли реплику Sydney Read only или London Read/Write? Он каким-то образом определяет, что пользователь находится в Сиднее, и просто направляет его к ближайшему? Или мне также нужно развернуть версию моего приложения, чтобы это работало?

1 ответ

Я много работал над такими вариантами использования. Вы всегда можете использовать Route53 для перенаправления пользователей на любые конкретные конечные точки. Я предполагаю, что ваши пользователи НЕ взаимодействуют напрямую с базой данных. Они будут попадать в конечную точку приложения. Для вашего сценария; вам также придется разместить свое приложение в Австралии (вместе с репликой для чтения). Теперь внутри приложения для запросов чтения вы подключитесь к реплике чтения; в то время как для запросов на запись ваше приложение будет записывать в базу данных Великобритании. Пока приложение развернуто на сервере Великобритании; будет использовать один и тот же британский сервер для обоих. Все это достигается с помощью файлов свойств, имеющих URL-адреса базы данных. И вы развертываете в разных местах, используя разные файлы свойств. Этот файл свойств будет иметь следующее:

    For UK: 
readQueries=uk.mysql.master 
writeQueries=uk.mysql.master 

    For Australia:
 readQueries=aus.mysql.read 
writeQueries=uk.mysql.master

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

Другие вопросы по тегам