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

39 lines
1.9 KiB
Markdown
Raw Normal View History

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