Как выполнить определенные службы на каждом устройстве интернета вещей, подключенном к TCP-серверу?
У меня есть 100 тысяч iot-устройств, подключенных к tcp-серверу. Я должен выбрать конкретные службы, которые будут выполняться на каждом устройстве, основываясь на идентификаторе устройства. Прямо сейчас я использую rest api, который я вызываю,когда устройство подключается к серверу, который, в свою очередь, возвращает список служб, которые должны быть выполнены на устройстве, эти службы на каждом устройстве выбираются пользователями с помощью веб-портала, моя проблема заключается в том, что когда все эти устройства подключаются одновременно, сервер rest api выходит из строя или зависает или занимает время для обслуживания запроса, мне нужно получить ответ обратно в миллисекундах.
Что я уже пробовал:
Прямо сейчас я вызываю Rest API, когда устройство подключается к серверу, который принимает идентификатор устройства в качестве входного параметра и возвращает список служб, которые будут выполняться на устройстве.
k5054
Вы создаете новый поток или процесс, когда устройство подключается к серверу REST? Если это не так, подумайте, как вы можете сделать это для своей платформы. Если да, то взгляните на то, что вы делаете между получением соединения и порождением trhead/process.
Кроме того, посмотрите на порождение нескольких процессов при запуске сервера REST и переведите каждый из них в режим прослушивания. Вероятно, вы хотите сохранить количество предварительно порожденных потоков/процессов ниже количества доступных ядер процессора (или потоков).
Dave Kreskowiak
Сотни тысяч устройств? Похоже, вам нужно масштабировать свой сервер до фермы серверов.
Gerry Schmitz
Вместо того, чтобы транслировать, может быть, вам следует проводить опросы. Или начните инвентаризацию услуг, чтобы вам не нужно было спрашивать. Не хватает информации в целом.