digital-garden/_inbox/Брокер сообщений.md

39 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- зрелость/🌱
date:
- - 2024-07-02
zero-link:
- "[[00 Архитектура ПО]]"
parents:
linked:
---
Брокеры способны обрабатывать 10000+ сообщений в секунду
Для чего используются:
- Межсервисное общение
- Асинхронная запись логов приложения
- Тяжелые ассинхронные задачи
Требования к брокерам:
- гарантия доставки сообщений
- at least once delivery. Гарантируется, что наше сообщение получит хотя бы один клиент.
- at most once delivery. Не гарантирует доставку.
- exactly once delivery. Гарантируется, что только один получатель получит сообщение.
- порядок передачи сообщений
- управление размером очереди
- зеркалирование
- масштабирование
**Терминология:**
- Брокер - это приложение, которое реализует модель [AMQP](Advanced%20Message%20Queuing%20Protocol.md). Которое принимает соединения клиентов для маршрутизации сообщений и т.п.
- Сообщение (message) - это единица передаваемых данных. Включая мета-информацию.
- Потребитель (consumer) - приложение, которое читает сообщения из очереди.
- Производитель (producer) - приложение, которое отправляет сообщения в брокер.
Примеры реализаций брокеров сообщений:
- [00 RabbitMQ](00%20RabbitMQ.md)
- [00 Kafka](00%20Kafka.md)
- [[_inbox/NATS]]
- [Redis](Redis.md) (pub/sub, stream)