Что больше подходит для моего сценария потоковой передачи местоположения? AWS Kinesis, SQS или другой?

#geolocation #publish-subscribe #amazon-sqs #amazon-kinesis #stream-processing

#геолокация #опубликовать-подписаться #amazon-sqs #amazon-kinesis #потоковая обработка

Вопрос:

Мы разрабатываем решение для потоковой передачи данных о местоположении для нашего веб-приложения для управления автопарком, в котором наши приложения для водителей Android и iOS будут отправлять обновления местоположения (широта, длительность, временная метка и идентификатор транспортного средства) каждые 15 секунд или около того на серверную часть в AWS. Серверная часть RESTful mobile (основанная на .Net WebAPI) размещена в beanstalk. Веб-приложение для бэк-офиса (ASP.Net основанный и также размещенный в beanstalk) позволит просматривать грузовики и их местоположение на карте в режиме реального времени.

Когда пользователь веб-приложения впервые запускает экран карты, потребуется загрузить индикаторы местоположения грузовика, которые попадают в видимую область карты, на основе последнего обновления местоположения, а затем изменить их местоположение в режиме реального времени на основе входящих обновлений местоположения и видимой области карты.

Итак, настройка, которую я представляю, чем-то похожа на

 Mobile App (AWS SDK) --(Location Updates)--> AWS Kinesis --> ? --> Web App
  

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

Я также рассматривал идею перехода на Redis pub / sub. Я также уверен, что один pub / sub не справился бы с этой задачей, поскольку нам может потребоваться запросить самые последние отдельные местоположения грузовиков, которые попадают в указанный ограниченный прямоугольник на карте (сценарий начальной загрузки).

  1. Является ли Кинезис правильным выбором? Если нет, то что лучше? (стоимость вызывает у нас огромную озабоченность)?
  2. Что касается решения, предложенного в разделе 1, каков наилучший способ загружать обновления местоположения в веб-приложение? (обозначено в приведенном выше потоке вопросительным знаком)
  3. Я бы хотел пропустить отправку данных о местоположении через beanstalk и отправить их непосредственно в Kinesis (или в решение, предложенное в 1), чтобы минимизировать затраты. Будет ли это жизнеспособным решением?

Заранее благодарю вас.