Балансировка нагрузки или чтение реплики в 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-чтение-реплики /
Однако я не получил много подсказок, подтверждающих мой бизнес-сценарий.
Мои вопросы (с учетом приведенного выше сценария):
Есть ли способ передать мой запрос GET в RDS (SQL Server), чтобы он мог быстро вернуть 500 элементов с SQL-сервера?
Можно ли добиться этого без изменения кода или существующей архитектуры (как из.net, так и в конце SQL)?
Какие способы мне следует попробовать, чтобы улучшить производительность?
Каковы сведения о ценах на реплику для чтения?
Примечание. Приложение выполняет как чтение, так и запись. И меня больше беспокоят именно эти вызовы GET API.
Спасибо.
1 ответ
Есть ли способ передать мой запрос GET в RDS (SQL Server), чтобы он мог быстро вернуть 500 элементов с SQL-сервера?
- Вам потребуется маршрутизатор в вашем приложении, который будет направлять запрос репликам чтения (их может быть много).
- Вы можете подготовить реплику для чтения с другим типом экземпляра с расширенной емкостью для этого варианта использования.
- Вы можете попробовать кэш памяти, это может сократить время отклика и может переложить нагрузку на чтение на реплики чтения.
Можно ли добиться этого без изменения кода или существующей архитектуры (как из.net, так и в конце SQL)?
- Согласно документации, "приложения могут подключаться к реплике для чтения так же, как и к любому экземпляру БД". Это означает, что ваше приложение требует дополнительных изменений для поддержки варианта использования.
Какие способы мне следует попробовать, чтобы улучшить производительность?
- кэш памяти и тип экземпляра с увеличенной емкостью для чтения (то же предложение выше)
Каковы сведения о ценах на реплику для чтения?
- Это будет зависеть от типа экземпляра, который вы предоставляете.