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