Какое лучшее серверное решение для обработки большого трафика?

Требование

Там должен быть веб-сервис, где он вставляет некоторые данные в таблицу. Служба должна иметь возможность обрабатывать от 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.

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