36 lines
2.1 KiB
Markdown
36 lines
2.1 KiB
Markdown
---
|
||
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-ом сообщение удаляется из брокера. |