Какое лучшее серверное решение для обработки большого трафика?
Требование
Там должен быть веб-сервис, где он вставляет некоторые данные в таблицу. Служба должна иметь возможность обрабатывать от 800 до 900 запросов в секунду. Просто мы получаем запрос POST, поэтому мы вставляем данные в таблицу.
Решение, которое мы придумали
Мы подумали о том, чтобы использовать серверные решения Amazon - AWS Lambda
- Создать MariaDB в Amazon RDS
- Создайте функцию Amazon Lambda для доступа к БД и вставки данных (возможно, в Node.js)
- Сконфигурируйте метод POST в Amazon API Gateway для доступа к нашей функции Lambda, затем мы получим URL-адрес invoke для доступа к функции Lambda
Может ли наше решение достичь требований, каких-либо узких мест в процессе или услуг, которые мы используем?
Есть ли лучшие решения для такого типа трафика?
Дополнительные требования
Нам нужно проанализировать наши данные, которые мы собираем с помощью нашей лямбда-функции. Для этого мы планируем переместить данные в другую таблицу, и эта часть миграции данных происходит один раз в день (возможно, в непиковый период). Какой лучший способ справиться с миграцией данных?
1 ответ
Похоже, что ваш дизайн - это API Gateway -> Lambda -> Database.
Amazon API Gateway обладает высокой масштабируемостью и легко удовлетворит ваши потребности. Вы также можете реализовать правила регулирования, чтобы клиенты не злоупотребляли вашим API.
AWS Lambda также отлично масштабируется. Существует ограничение по умолчанию на 1000 одновременных выполнений лямбда-функций, но они будут автоматически помещаться в очередь, если эта сумма будет превышена (например, если ваша функция занимает несколько секунд).
Как правило, базы данных SQL не имеют гарантии производительности. Запрос может быть простым или сложным, и трудно предсказать производительность без выполнения большого количества нагрузочных тестов.
Однако Amazon DynamoDB - это база данных NoSQL, в которой вы можете точно указать, сколько операций чтения и записи требуется в секунду. Это также позволяет ограниченный взрыв выше этого предела и возможность автоматического масштабирования для изменения производительности в течение дня.
Недостатком является то, что анализ производительности данных в базе данных NoSQL затруднен, поэтому вы захотите экспортировать их либо в традиционную базу данных SQL (например, MySQL), либо в стек ELK в сервисе Amazon Elasticsearch.