每日一句
Human beings are designed for many things, but loneliness isn't one of them.
人類能應對許多問題,但孤獨并不在其中,
概述
RabbitMQ 是一個訊息中間件:它接受并轉發訊息,類比于快遞站點,當你要發送一個包裹時,你把你的包裹放到快遞站,快遞員最侄訓把你的快遞送到收件人那里,按照這種邏輯 RabbitMQ 是一個快遞站,一個快遞員幫你傳遞快件,
RabbitMQ 與快遞站的主要區別在于,它不處理快件而是接收,存盤和轉發訊息資料,
幾個核心概念
- 生產者與消費者
- 交換機
- 佇列
生產者與消費者
生產者:向佇列發送訊息的一方,發布訊息的最終目的在于將訊息內容傳遞給其他系統/模塊,使對方按照約定處理該訊息,
消費者:消費者大多時候是一個等待接收訊息的程式,很多時候生產者,消費者和訊息中間件并不在同一機器上,同一個應用程式既可以是生產者又是可以是消費者,接收訊息的一方,當消費者消費一條訊息時,只是消費訊息的訊息體,在訊息路由的程序中,會丟棄標簽,存入到佇列中的只有訊息體,
交換機
交換機是 RabbitMQ 非常重要的一個部件,一方面它接收來自生產者的訊息,另一方面它將訊息推送到佇列中,
交換機必須確切知道如何處理它接收到的訊息,由交換機型別決定是將這些訊息推送到特定佇列還是推送到多個佇列,亦或者是把訊息丟棄.
佇列
佇列是用于存盤訊息的,生產者將訊息送到佇列,消費者從佇列中獲取和消費訊息,多個消費者可以同時訂閱同一個佇列,佇列里的訊息分配給不同的消費者,
佇列僅受主機的記憶體和磁盤限制的約束,本質上是一個大的訊息緩沖區,
名詞介紹
- Broker:接收和分發訊息的應用,RabbitMQ Server 就是 Message Broker
- Virtual host:虛擬地址,用于進行邏輯隔離,是最上層的訊息路由,一個 Virtual Host 里面可以有若干個 Exchange 和 Queue,同一個 Virtual Host 里面不能有相同名稱的 Exchange 或 Queue
- Connection:連接,應用程式與 Broker 的網路連接
- Channel:網路信道,幾乎所有的操作都在 Channel 中進行,Channel 是進行訊息讀寫的通道,客戶端可建立多個 Channel,每個Channel 代表一個會話任務;
- Exchange:交換機,負責接收訊息,根據路由鍵將訊息轉發到系結的佇列;
- Queue:也稱 Message Queue,訊息佇列,保存訊息并將它們轉發給消費者,
- Binding:exchange 和 queue 之間的虛擬連接,binding 中可以包含 routing key,Binding 資訊被保存到 exchange 中的查詢表中,用于 message 的分發依據
美文佳句
人們常說:“念念不忘,必有回響,”只要信念一直在,就總有被回應的一天,比別人多一點努力,你就會多一點成績;比別人多一點執著,你就會多一點機會;比別人多一點堅持,你就會多一點識訓,
你好,我是yltrcc,日常分享技術點滴,歡迎關注我:ylcoder
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419041.html
標籤:其他
