Балансировка нагрузки или чтение реплики в AWS RDS - PullRequest
0 голосов
/ 04 мая 2020

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

Я был ссылаясь на это, чтобы понять масштабирование RDS https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/ и https://aws.amazon.com/premiumsupport/knowledge-center/requests-rds-read-replicas/

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

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

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

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

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

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

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

Спасибо.

1 Ответ

1 голос
/ 05 мая 2020

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

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

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

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

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

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

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

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...