53 lines
2.6 KiB
Markdown
53 lines
2.6 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
tags:
|
|||
|
- maturity/🌱
|
|||
|
date: 2024-07-02
|
|||
|
---
|
|||
|
Брокеры способны обрабатывать 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|NATS]]
|
|||
|
- [00 Redis](../../meta/zero/00%20Redis.md) (pub/sub, stream)
|
|||
|
|
|||
|
![[../../meta/files/images/Pasted image 20241103222905.png]]
|
|||
|
***
|
|||
|
## Мета информация
|
|||
|
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
|||
|
**Родитель**::
|
|||
|
**Источник**::
|
|||
|
**Автор**::
|
|||
|
**Создана**:: [[2024-07-02]]
|
|||
|
### Дополнительные материалы
|
|||
|
-
|
|||
|
### Дочерние заметки
|
|||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
|||
|
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
|||
|
- [[00 RabbitMQ]]
|
|||
|
- [[Advanced Message Queuing Protocol]]
|
|||
|
- [[NATS]]
|
|||
|
<!-- SerializedQuery END -->
|