RabbitMQ各个名词介绍
?Broker:接收和分發消息的應用,RabbitMQ Server 就是 Message Broker
Virtual host:出于多租戶和安全因素設計的,把 AMQP 的基本組件劃分到一個虛擬的分組中,類似于網絡中的 namespace 概念。當多個不同的用戶使用同一個 RabbitMQ server 提供的服務時,可以劃分出多個 vhost,每個用戶在自己的 vhost 創建 exchange/queue 等
Connection:publisher/consumer 和 broker 之間的 TCP 連接
Channel:如果每一次訪問 RabbitMQ 都建立一個 Connection,在消息量大的時候建立 TCP Connection 的開銷將是巨大的,效率也較低。Channel 是在 connection 內部建立的邏輯連接,如果應用程序支持多線程,通常每個 thread 創建單獨的 channel 進行通訊,AMQP method 包含了 channel id 幫助客戶端和 message broker 識別 channel,所以 channel 之間是完全隔離的。Channel 作為輕量級的Connection 極大減少了操作系統建立 TCP connection 的開銷
Exchange:message 到達 broker 的第一站,根據分發規則,匹配查詢表中的 routing key,分發消息到 queue 中去。常用的類型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)
Queue:消息最終被送到這里等待 consumer 取走
Binding:exchange 和queue 之間的虛擬連接,binding 中可以包含 routing key,Binding 信息被保存到 exchange 中的查詢表中,用于 message 的分發依據
總結
以上是生活随笔為你收集整理的RabbitMQ各个名词介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RabbitMQ 核心部分
- 下一篇: RabbitMQ生产者代码