Сообщение — это единица коммуникации, которая переносит информацию от отправителя к получателю. Оно может передаваться в различных формах, таких как устные или письменные слова, сигналы или электронные данные, и может варьироваться от простых инструкций до сложной информации. [1] [2]
Потребление сообщения зависит от того, как получатель интерпретирует сообщение; бывают случаи, когда получатель противоречит намерению сообщения, что приводит к эффекту бумеранга. [3] Усталость от сообщения — еще один результат, который может получить получатель, если сообщение передается слишком много источником. [4]
Одним из примеров сообщения является пресс-релиз , который может варьироваться от краткого отчета или заявления, выпущенного государственным органом, до коммерческого рекламного материала. [5] Другим примером сообщения является то, как оно представляется потребителю посредством рекламы.
Этот раздел нуждается в расширении . Вы можете помочь, дополнив его. ( Март 2022 ) |
В общении между людьми сообщения могут быть вербальными и невербальными :
Фраза «отправить сообщение» или «отправка сообщения» также используется для действий, предпринимаемых стороной для выражения ее отношения к определенной вещи. Например, правительство, которое казнит людей, совершивших акты государственной измены , посылает сообщение о том, что государственная измена не будет допускаться. [6] И наоборот, сторона, которая своими действиями поддерживает то, против чего она выступает, может быть названа «отправляющей неправильное сообщение», [6] в то время как та, которая одновременно поддерживает противоречивые вещи, может быть названа «отправляющей смешанные сообщения». [7]
В распределенных системах события представляют собой факт или изменение состояния (например, OrderPlaced ) и обычно транслируются асинхронно нескольким потребителям, способствуя слабой связанности и масштабируемости. Хотя события обычно не ожидают немедленного ответа, механизмы подтверждения часто реализуются на уровне инфраструктуры (например, смещения коммитов Kafka, статусы доставки SNS), а не являются неотъемлемой частью самого шаблона событий. [8] [9]
Напротив, сообщения выполняют более широкую роль, охватывая команды (например, ProcessPayment ), события (например, PaymentProcessed ) и документы (например, DataPayload ). Как события, так и сообщения могут поддерживать различные гарантии доставки, включая at-least-once, at-most-once и exact-once, в зависимости от технологического стека и реализации. Однако exact-once доставка часто достигается с помощью механизмов идемпотентности, а не истинной семантики exact-once на уровне инфраструктуры. [8] [9]
Шаблоны доставки как для событий, так и для сообщений включают публикацию/подписку (один ко многим) и точку-точку (один к одному). Хотя запрос/ответ технически возможен, он чаще ассоциируется с шаблонами обмена сообщениями, а не с чистыми системами, управляемыми событиями. События превосходны в распространении состояния и разъединенных уведомлениях, в то время как сообщения лучше подходят для выполнения команд, оркестровки рабочего процесса и явной координации. [8] [9]
Современные архитектуры обычно сочетают оба подхода, используя события для распределенных уведомлений об изменении состояния и сообщений для целевого выполнения команд и структурированных рабочих процессов на основе определенных требований к срокам, порядку и доставке. [8] [9]