Как лучшее решение для отслеживания транспортных средств GPS сбора данных в C #? - PullRequest
3 голосов
/ 01 апреля 2009

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

Ответы [ 3 ]

6 голосов
/ 01 апреля 2009

Моя личная любимая ферма WCF или WebService перекачивает данные в очередь сообщений Microsoft (MSMQ), а сервер приложений (1 или более) преобразует данные и помещает их в базу данных.

По мере углубления (если вам когда-либо понадобится) вы можете использовать функции MSMQ для обработки тайм-аутов, буферизации загрузки, «мертвых писем», сбоев сервера, чего угодно. Рассмотрим эту статью .

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

В качестве дальнейшего примечания, используя MSMQ, вы также можете увидеть, как далеко «отстает» система, посмотрев, сколько сообщений находится в очереди. Если это число близко к 0, то вам хорошо. Если это число непрерывно растет, вам нужно больше производительности (добавьте еще один сервер приложений).

1 голос
/ 01 апреля 2009

Мы делаем именно то, что говорит Джейсон, за исключением использования прямого прослушивателя сокетов TCP / UDP с пользовательской полезной нагрузкой для более высокой производительности.

0 голосов
/ 01 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...