Балансировка нагрузки или чтение реплики в AWS RDS

Приложение ASP.net MVC находится в EC2 и взаимодействует с RDS ( SQL Server). Приложение отправляет массовый запрос GET (вызов API) в RDS через NHibernate для получения элементов. Производительность приложения очень низкая, так как иногда выполняется около 500 вызовов GET API для получения 500 элементов из БД (примечание: получение элементов из БД имеет свою собственную хранимую процедуру / логику)

Я имел в виду это, чтобы понять масштабирование RDS https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/ и https://aws.amazon.com/premiumsupport / центр знаний / запросы-rds-чтение-реплики /

Однако я не получил много подсказок, подтверждающих мой бизнес-сценарий.

Мои вопросы (с учетом приведенного выше сценария):

  1. Есть ли способ передать мой запрос GET в RDS (SQL Server), чтобы он мог быстро вернуть 500 элементов с SQL-сервера?

  2. Можно ли добиться этого без изменения кода или существующей архитектуры (как из.net, так и в конце SQL)?

  3. Какие способы мне следует попробовать, чтобы улучшить производительность?

  4. Каковы сведения о ценах на реплику для чтения?

Примечание. Приложение выполняет как чтение, так и запись. И меня больше беспокоят именно эти вызовы GET API.

Спасибо.

1 ответ

Есть ли способ передать мой запрос GET в RDS (SQL Server), чтобы он мог быстро вернуть 500 элементов с SQL-сервера?

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

Можно ли добиться этого без изменения кода или существующей архитектуры (как из.net, так и в конце SQL)?

  • Согласно документации, "приложения могут подключаться к реплике для чтения так же, как и к любому экземпляру БД". Это означает, что ваше приложение требует дополнительных изменений для поддержки варианта использования.

Какие способы мне следует попробовать, чтобы улучшить производительность?

  • кэш памяти и тип экземпляра с увеличенной емкостью для чтения (то же предложение выше)

Каковы сведения о ценах на реплику для чтения?

  • Это будет зависеть от типа экземпляра, который вы предоставляете.

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