Литература по проектированию систем мониторинга в реальном времени

Рейтинг: 1Ответов: 1Опубликовано: 30.03.2015

В недалеком будущем планируется рефакторинг системы GPS трекинга транспорта.

Задача такая:

  1. Есть худо-бедно работающая система с 2 пользователями.
  2. У каждого пользователя есть порядка 100 автомобилей с установленными GPS трекерами.
  3. Координаты автомобилей хранятся в БД.
  4. В личном кабинете пользователя есть возможность отображения на карте пройденного пути некоторой машины. + Есть возможность составления отчетов (сколько было стоянок на маршруте, средняя скорость движения и т.д.).

В недалеком будущем планируется перепроектировать систему таким образом, чтобы ей могли пользоваться до 100 пользователей (у каждого пользователя до 100 автомобилей). Территориально пользователи находятся в Москве и МО.

С учетом новых требований я выделил основные сложные моменты:

  1. Стремительный рост хранимых данных. За полгода у 2 пользователей накопилось около 100 млн координат автомобилей. А в идеале планируем вытянуть 100 пользователей. Более того, планируем хранить не только координаты автомобилей, но и значения, передаваемые различными датчиками.
  2. Оперативная обработка поступающих данных. Пример, автомобиль отклонился от указанного маршрута, на почтовый ящик пользователя отправляется сообщение.
  3. Составление статистических расчетов для логистов.

Подскажите, пожалуйста, ответы на следующие вопросы:

  1. Существует ли литература (книги, статьи из журналов и т.д.) по проектированию систем подобного рода?
  2. Какой стек технологий лучше использовать для данной системы?

Ответы

▲ 4Принят

Серьезный вопрос.

Получается, что сейчас у Вас в среднем приходит 6.5 SMS (ведь координаты получаете по SMS?) в секунду. Видимо, около 60 в пике.

Соответственно, в новой системе можно ожидать в пике порядка 10000 сообщений в секунду. IMHO это довольно много даже с т.з. сети, а сколько будет запросов к базе? -- наверное только вы сами можете посчитать.

Тут прежде всего Вам нужно помоделировать такую нагрузку и посмотреть, а справляется ли в принципе существующее решение или надо проектироать нечто новое с распределенной базой и несколькими физически разными пунктами приема сообщений.

Почитайте разные материалы на тему Проблема 10000 соединений. Ну, и наверное, High Availability (эта ссылка лишь обозначение термина, реально нужно читать другие технические материалы (надеюсь, сами нагуглите)) не стоит обходить вниманием.

Только сразу учтите, дешевых решений подобных задач не существует.

--

Просто преобразовать комментарии (да еще и с сохранением ссылок) в ответ у меня так и не получилось, поэтому один оставил, а то будет совсем непонятно, поскольку удалять чужие комментарии я не могу.