digital-garden/_inbox/RabbitMQ.md

36 lines
2.1 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:
- RabbitMQ
tags:
- type/moc
date:
- - 2024-07-02
zero-link:
- "[[00 Архитектура ПО]]"
parents:
- "[[Брокер сообщений]]"
linked:
---
- Хранит данные в памяти
- Гарантия доставки сообщений
- at least once delivery. Гарантируется, что наше сообщение получит хотя бы один клиент.
- at most once delivery. Не гарантирует доставку.
- Гарантирует порядок передачи сообщений: FIFO
- Имеется возможность сохранения на диск
- Подтверждение отправки/получения
- Ограничение количества отправляемых сообщений
- Управление поведением не полученных сообщений
- [Кластеризация](Кластеризация.md)
- [Репликация](_inbox/Репликация.md)
Терминология:
- Queue - Буфер, который хранит messages. Никакой логики.
- Connection - [TCP](TCP.md) соединение между приложениями и менеджером очередей.
- Channel - Виртуальное соединение внутри Connection. Когда вы публикуете или получаете message через Queue, это все делается в Channel. По факту сессия.
- Exchange - получает messages от producer и отправляет его в Queue. Он решает в какую Queue будет помещено message.
- Binding - Связь между Queue и Exchange.
- Routing Key - Ключ на который смотрит Exchange и решает в какую Queue перенаправить message.
- Vhost (virtual host) - Способ разделения приложений на одном и том же экземпляре RabbitMQ.
## Заметки
- При прочтении сообщения consumer-ом сообщение удаляется из брокера.