Мы разрабатываем решение для потокового определения местоположения для нашего веб-приложения по управлению автопарком, в котором наши приложения для водителей для Android и iOS будут отправлять обновления местоположения (широта, долгота, метка времени и идентификатор транспортного средства) каждые 15 секунд или около того на сервер в AWS.Мобильный бэкэнд RESTful (на основе .Net WebAPI) размещен в beanstalk.Веб-приложение для бэк-офиса (на базе ASP.Net, а также размещенное в beanstalk) позволит в режиме реального времени просматривать грузовики и их местоположение на карте.
Когда пользователь веб-приложения впервые запускает экран карты, потребуется загрузить индикаторы местоположения грузовика, которые попадают в видимую область карты, на основе самого последнего обновления местоположения, а затем изменить их местоположения в режиме реального времени на основена входящих обновлениях местоположения и видимой области карты.
Таким образом, установка, которую я представляю, похожа на
Mobile App (AWS SDK) --(Location Updates)--> AWS Kinesis --> ? --> Web App
Это должно быть масштабируемым до 5000 грузовиков.Я читал противоречивые статьи в Интернете, что для pub / sub SQS лучше подходит, чем Kinesis, но также SQS может быть намного дороже, чем Kinesis в долгосрочной перспективе.Например, this
Мне также понравилась идея поехать в Redis pub / sub.Я также уверен, что один только паб / саб не справился бы с этой задачей, поскольку нам может потребоваться запросить самые последние различные местоположения грузовиков, которые попадают в предоставленный ограниченный прямоугольник на карте (сценарий начальной загрузки).
- Является ли Kinesis правильным выбором?Если нет, то что лучше?(для нас это огромная проблема)?
- Для решения, предложенного в 1, каков наилучший способ загрузки / извлечения обновлений местоположения в веб-приложение?(обозначено в приведенном выше потоке вопросительным знаком)
- Я бы хотел пропустить отправку данных о местоположении через beanstalk и отправить их непосредственно в Kinesis (или в решение, предложенное в 1), чтобы минимизировать стоимость.Будет ли это жизнеспособным решением?
Заранее спасибо.