Черга повідомленьЧерга повідомлень (англ. Message queue) в програмуванні — механізм операційної системи, що використовується для організації взаємодії між процесами або взаємодії між потоками програми. Такі компоненти використовують чергу для впорядкування повідомлень. ОглядЧерги повідомлень надають асинхронний протокол передавання даних, означаючи, що відправник і одержувач повідомлення не зобов'язані взаємодіяти з чергою повідомлень одночасно. Розміщені в черзі повідомлення зберігаються доти, поки не отримують їх. Черги повідомлень мають неявні або явні обмеження на розмір даних, які можуть передаватися в одному повідомленні, і кількість повідомлень, які можуть залишатися в черзі. Багато реалізацій черг повідомлень функціонують внутрішньо: всередині операційної системи або всередині застосунка. Такі черги існують тільки для цілей цієї системи. Інші реалізації дозволяють передавати повідомлення між різними комп'ютерними системами, потенційно підключаючи кілька застосунків і кілька операційних систем. Ці системи черг повідомлень зазвичай забезпечують розширену функціональність для забезпечення стійкості, щоб гарантувати, що повідомлення не будуть «втрачені» в разі збою системи. ЗастосуванняДля реалізації черги повідомлень системний адміністратор встановлює і налаштовує програмне забезпечення для організації черг повідомлень (диспетчер черги або брокер) і визначає іменовану чергу повідомлень. Або вони реєструються в службі черг повідомлень. Потім застосунок реєструє програмну процедуру, яка «слухає» повідомлення, поміщені в чергу. Друге і наступні застосунки можуть підключатися до черги і передавати на неї повідомлення. Програмне забезпечення менеджера черг зберігає повідомлення доти, поки що приймаюча програма не підключиться, а потім викличе зареєстровану програмну процедуру. Потім застосунок-одержувач обробляє повідомлення відповідним чином. Існує безліч варіантів точної семантики передачі повідомлень, в тому числі:
Всі ці фактори можуть істотно вплинути на семантику транзакцій, надійність і ефективність системи. Стандарти і протоколиІсторично чергу повідомлень використовувала власні закриті протоколи, які обмежували здатність різних операційних систем або мов програмування взаємодіяти в гетерогенном безлічі середовищ. З'явилися три стандарти, які використовуються в реалізаціях черги повідомлень з відкритим вихідним кодом:
Ці протоколи знаходяться на різних стадіях стандартизації та реалізації. Перші два працюють на тому ж рівні, що і HTTP, MQTT на рівні TCP/IP. Синхронний або асинхроннийБагато з широко відомих протоколів зв'язку використовуються синхронно. Протокол HTTP, який використовується у Всесвітній павутині і в вебсервісах, пропонує наочний приклад, коли користувач відправляє запит на вебсторінку, а потім чекає відповіді. Однак існують сценарії, в яких синхронна поведінка не підходить. Наприклад, AJAX (асинхронний JavaScript і XML) можна використовувати для асинхронної відправки текстових, JSON- або XML-повідомлень для поновлення частини вебсторінки з більш релевантною інформацією. Реалізація в UNIXВ UNIX є 2 поширені реалізації черг. Одна є частиною SYS V API, а інша — частина POSIX. Див. також
Посилання
|
Portal di Ensiklopedia Dunia