2.4 KiB
2.4 KiB
aliases | tags | date | zero-link | parents | linked | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
-
Хранит данные в памяти
-
Гарантия доставки сообщений
- at least once delivery. Гарантируется, что наше сообщение получит хотя бы один клиент.
- at most once delivery. Не гарантирует доставку.
-
Гарантирует порядок передачи сообщений: FIFO
-
Имеется возможность сохранения на диск
-
Подтверждение отправки/получения
-
Ограничение количества отправляемых сообщений
-
Управление поведением не полученных сообщений
Терминология:
- Queue - Буфер, который хранит messages. Никакой логики.
- Connection - TCP соединение между приложениями и менеджером очередей.
- Channel - Виртуальное соединение внутри Connection. Когда вы публикуете или получаете message через Queue, это все делается в Channel. По факту сессия.
- Exchange - получает messages от producer и отправляет его в Queue. Он решает в какую Queue будет помещено message.
- Binding - Связь между Queue и Exchange.
- Routing Key - Ключ на который смотрит Exchange и решает в какую Queue перенаправить message.
- Vhost (virtual host) - Способ разделения приложений на одном и том же экземпляре RabbitMQ.
Типы Exchange:
- direct
- fanout
- topics
- headers
Обработка сообщений
- Поставщик публикует сообщение в Exchange.
- Обработчик получает сообщение
Заметки
- При прочтении сообщения consumer-ом сообщение удаляется из брокера.