三、發(fā)布訂閱

上一節(jié)的練習(xí)中我們創(chuàng)建了一個工作隊列。隊列中的每條消息都會被發(fā)送至一個工作進程。這節(jié),我們將做些完全不同的事情——我們將發(fā)送單個消息發(fā)送至多個消費者。這種模式就是廣為人知的“發(fā)布訂閱”模式。

為了說明這種模式,我們將構(gòu)建一個簡單的日志系統(tǒng)。包括2個應(yīng)用程序,一個傳送日志消息另一個接收并打印這些消息。

我們的日志系統(tǒng)中每一個運作的接收端程序都會收到這些消息。這種方式下,我們就可以運行一個接收端發(fā)送日志消息至硬盤,同時可以運行另一個接收端將日志打印到屏幕上。

理論上講,已發(fā)布的日志消息將會被廣播到所有的接收者。

交換器(Exchange

之前的幾節(jié)練習(xí)中我們發(fā)送接收消息都是在隊列中進行,是時候介紹下RabbitMQ完整的消息傳遞模式了。

先來迅速的回顧下我們之前章節(jié):

  • 一個生產(chǎn)者就是一個用來發(fā)送消息的應(yīng)用程序

  • 一個 隊列好比存儲消息的緩存buffer

  • 一個消費者就是一個用戶應(yīng)用程序用來接收消息

網(wǎng)友評論