Реплика чтения 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
Я порекомендую вам изменить заголовок этого вопроса на что-нибудь лучше, которое точно описывает проблему. Настоящее название - это скорее тег.