Регулювання швидкості конфігурації MQTT


1

У мене є проблема, яку я намагаюся вирішити, яка відчуває, що це загальна проблема і таким чином ймовірно має загальне рішення у вигляді мережевого протоколу. Мої знання мережевих протоколів дещо обмежений, і я не можу знайти існуючий протокол, щоб вирішити цю проблему за допомогою пошуку Google, якщо за допомогою іншого протоколу є рішення, яке я дійсно потребую.

Моя конфігурація

Використовуючи MQTT, у мене є єдиний виробник, який публікує повідомлення до теми і, можливо, кілька споживачів, які підписалися на цю тему. Виробник може виробляти повідомлення з певною максимальною швидкістю. Кожен споживач бажає обробляти повідомлення зі швидкістю, яка є унікальною для окремого споживача. Якщо споживач отримує повідомлення швидше, ніж вони можуть обробляти, вони можуть просто викинути повідомлення.

Моя турбота

Наприклад, у мене може бути виробник, який може натискати зображення, скажімо, на 100 зображень на секунду, але мої 2 споживачі можуть споживати їх лише зі швидкістю 8 в секунду і 5 в секунду відповідно. Для збереження мережевих ресурсів оптимальною швидкістю публікації буде 8 зображень в секунду.

Моя думка

Один із способів зробити цю роботу, полягає в тому, щоб виробники та споживачі підключалися до загальної служби переговорів зі швидкістю, метою якої було б змінювати швидкість, з якою видавець видає повідомлення до спільної теми.

Питання

Чи варто розглядати можливість використання іншого протоколу для цієї мети, чи буде щось інше, що я повинен розглянути, щоб допомогти мені вирішити цю проблему і вирішити свою проблему?


@PimpJuiceIT: Я намагаюся зберегти ресурси (особливо пропускну здатність мережі, а також пам'ять і процесор), використовуючи тільки те, що необхідно, і намагаюся з'ясувати, чи є існуючий протокол, який допоможе мені зробити це, або якщо я винайти мої власні. Ключовим обмеженням є те, що клієнтам потрібна найновіша інформація і вони будуть викидати всі повідомлення, отримані до останньої. Хочу уникнути відходів. Якщо видавець надто швидко публікує, мені потрібен метод, щоб клієнти могли повідомити його про сповільнення до певної ставки.
— Alex Ryan

@PimpJuiceIT: Наша потреба дуже специфічна. Споживачі повинні мати останнє зображення, відправлене виробником. Клієнтам потрібно набагато більше часу для обробки зображення, ніж швидкість, з якою можна створювати зображення, але час обробки кожного споживача змінюється. Ми зовсім повинні мати можливість для споживачів повідомити виробнику швидкість, з якою вони хотіли б отримувати зображення, і щоб продюсер вирішив, який оптимальний рівень. Без цього ми витрачаємо кошти, які потім не можна використовувати для інших речей, які нам потрібно робити. Я не бачу, як протокол MQTT "просто обробляє це для мене".
— Alex Ryan

@PimpJuiceIT Це не обмеження клієнта. Це важка і швидка і незмінна вимога. Це необхідність. Якщо технологія не відповідає потребам, то необхідно знайти обхідну роботу. MQTT - протокол обміну повідомленнями низького рівня. Моя інтуїція полягає в тому, що якщо існує протокол переговорів з тарифами, то це більш загальний протокол вищого рівня, ніж MQTT, що є лише одним з багатьох способів проведення публікації. Питання було переписано тим, хто вважав, що вирішення проблеми лежить в протоколі MQTT, але це навряд чи буде IMHO.
— Alex Ryan

Отже, ви хочете використовувати інший протокол, а не MQTT, оскільки він недостатній у вашій конфігурації - ви вже зробили пошук Google для " Протоколи даних M2M або IOT "і зробили свою частку домашнього завдання з цього питання? Які ваші думки після вашої оцінки, поки ви чекаєте інших, щоб дати вам відповідь інакше? достатнім і достатнім для потреби.
— Pimp Juice IT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.