1. 程式人生 > >兩種訊息模型: 點對點&&釋出/訂閱

兩種訊息模型: 點對點&&釋出/訂閱

點對點: 
訊息生產者生產訊息傳送到queue中,然後訊息消費者從queue中取出並且消費訊息。這裡要注意: 
訊息被消費以後,queue中不再有儲存,所以訊息消費者不可能消費到已經被消費的訊息。 
Queue支援存在多個消費者,但是對一個訊息而言,只會有一個消費者可以消費。 
釋出/訂閱 

訊息生產者(釋出)將訊息釋出到topic中,同時有多個訊息消費者(訂閱)消費該訊息。和點對點方式不同,釋出到topic的訊息會被所有訂閱者消費

生產者傳送一條訊息到queue,只有一個消費者能收到。

釋出者傳送到topic的訊息,只有訂閱了topic的訂閱者才會收到訊息。

小結

queue實現了負載均衡,一個訊息只能被一個消費者接受,當沒有消費者可用時,這個訊息會被儲存直到有 一個可用的消費者,一個queue可以有很多消費者,他們之間實現了負載均衡, 
所以Queue實現了一個可靠的負載均衡。 
topic實現了釋出和訂閱,當你釋出一個訊息,所有訂閱這個topic的服務都能得到這個訊息,所以從1到N個訂閱者都能得到一個訊息的拷貝, 
只有在訊息代理收到訊息時有一個有效訂閱時的訂閱者才能得到這個訊息的拷貝。