Как мне обрабатывать мгновенные пики в трафике c в моих API - PullRequest
0 голосов
/ 06 февраля 2020

Я использую aws для своей облачной инфраструктуры. Я использую ECS Fargate в качестве моей вычислительной машины. В настоящее время я поддерживаю 10-20 apis, которые взаимодействуют с участниками, у которых мое приложение загружено на их телефон. Очевидно, что один или два из этих API-интерфейсов являются моими «основными» API-интерфейсами, и это те, которые действительно персонализированы для моих пользователей, и, честно говоря, это единственные два API-интерфейса, к которым участники имеют доступ (переходя к этим экранам).

Моя бизнес-команда хочет разослать участникам уведомления pu sh, чтобы предупредить их о некоторых новых событиях, которые выводят их на экран, где необходимо вызывать эти API. Из-за этого в моем приложении за этот промежуток времени произошли мини-сбои.

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

У меня есть идеи:

  • Отправка уведомлений в пакетном режиме. Это кажется лучшим решением, хотя и требует немного усилий, хотя я не уверен, сколько.
  • Пусть безсерверный компьютер выполняет мои запросы (aws лямбда-функции) для тех API, которые необходимо мгновенно масштабировать , У меня есть много других API-интерфейсов, которые я храню в fargate, потому что я не хочу, чтобы моя лямбда-функция была слишком тяжелой, а затем запускалась некоторое время.
  • Все время масштабировать машины, чтобы справиться с нагрузкой. получать во время пу sh уведомления. Это кажется неоптимальным из-за стоимости.
  • Масштабируйте машины только в те периоды, когда я хочу отправлять уведомления pu sh, а они уменьшают их. Это похоже на достойное решение, если я могу автоматизировать весь процесс. У меня может быть поток, за которым я следую для каждого уведомления pu sh, который приведет к масштабированию системы, а затем начнет отправлять уведомления.

Есть ли лучший способ сделать это. Это кажется относительно простой проблемой для людей, но я не вижу слишком много информации по этой теме c.

1 Ответ

1 голос
/ 06 февраля 2020

Мне больше нравится ваш второй вариант, потому что им намного легче управлять (потому что вам не нужно управлять им). После этого я бы go с вашим последним вариантом. Я бы использовал пошаговые функции для управления этим, где первым шагом является увеличение количества экземпляров в Fargate. Как только это достигнет желаемого уровня, вы будете отправлять уведомления. Добавьте автоматическое масштабирование к вашим услугам в Fargate, чтобы оно автоматически обрабатывалось.

...