broker:訊息伺服器
producer:訊息生產者,生產訊息給broker
consumer:訊息消費者,從broker處獲取訊息
topic:訊息主題,訂閱模式下訊息匯集處,不同的producer向topic傳送訊息,topic再將訊息傳送給不同的consumer,實現廣播功能。
queue:佇列,ptp(point to point)模式下,特定的生產者將訊息傳送給queue,queue再將特定的訊息傳送給consumer。
message:訊息體,根據不同的協議對訊息進行封裝傳輸。
ptp (點對點)
ptp點對點:使用queue作為通訊載體
訊息被消費以後,queue中不再儲存,所以訊息消費者不可能消費到已經被消費的訊息。 queue支援存在多個消費者,但是對乙個訊息而言,只會有乙個消費者可以消費。
發布/訂閱
pub/sub發布訂閱(廣播):使用topic作為通訊載體
queue實現了負載均衡,將producer生產的訊息傳送到訊息佇列中,由多個消費者消費。但乙個訊息只能被乙個消費者接受,當沒有消費者可用時,這個訊息會被儲存直到有乙個可用的消費者。
topic實現了發布和訂閱,當你發布乙個訊息,所有訂閱這個topic的服務都能得到這個訊息,所以從1到n個訂閱者都能得到乙個訊息的拷貝。
你以為我會求你?
生產者消費者 生產者與消費者模式
一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...
生產者消費者
using system using system.collections.generic using system.threading namespace gmservice foreach thread thread in producers q.exit console.read public...
生產者消費者
執行緒通訊 乙個執行緒完成了自己的任務時,要通知另外乙個執行緒去完成另外乙個任務.wait 等待 如果執行緒執行了wait方法,那麼該執行緒會進入等待的狀態,等待狀態下的執行緒必須要被其他執行緒呼叫notify方法才能喚醒。notify 喚醒 喚醒執行緒池等待執行緒其中的乙個。notifyall 喚...