Регулювання швидкості конфігурації 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.