首頁技術(shù)文章正文

大數(shù)據(jù)系統(tǒng)中的消息傳遞模式【大數(shù)據(jù)培訓】

更新時間:2020-05-29 來源:黑馬程序員 瀏覽量:

大數(shù)據(jù)系統(tǒng)面臨的首要困難是海量數(shù)據(jù)之間該如何進行傳輸。為了解決大數(shù)據(jù)集的傳輸困難,就必須要構(gòu)建一個消息系統(tǒng)。一個消息系統(tǒng)負責將數(shù)據(jù)從一個應用程序傳遞到另外一個應用程序中,應用程序只關(guān)注數(shù)據(jù),無須關(guān)注數(shù)據(jù)在多個應用之間是如何傳遞的,分布式消息傳遞基于可靠的消息隊列,在客戶端應用和消息系統(tǒng)之間異步傳遞消息。

 

目前市面上有許多消息系統(tǒng),如Kafka、RabbitMQ、ActiveMQ等。Kafka是專門為分布式高吞吐量系統(tǒng)而設(shè)計開發(fā)的,它非常適合在海量數(shù)據(jù)集的應用程序中進行消息傳遞。消息傳遞一共有兩種模式,分別是點對點消息傳遞模式和發(fā)布訂閱消息傳遞模式。接下來,詳細講解消息傳遞的兩種模式。

 

1、點對點消息傳遞模式

點對點消息傳遞模式(Pointtopoint,P2P),通常是一個基于拉取或者輪詢的消息傳遞模式,其消息傳遞結(jié)構(gòu)如下圖。

1590722571386_點對點消息傳遞模式.jpg


圖中所示的點對點消息傳遞模式結(jié)構(gòu)中,消息是通過一個虛擬通道進行傳遞的,生產(chǎn)者發(fā)送一條數(shù)據(jù),消息將持久化到一個隊列中,此時將有一個或者多個消費者會消費隊列中的數(shù)據(jù),但是一條消息只能被消費一次,并且消費后的消息會從消息隊列中刪除,因此,即使有多個消費者同時消費數(shù)據(jù),數(shù)據(jù)都可以被有序處理。

 

 

2、發(fā)布訂閱消息傳遞模式

發(fā)布訂閱消息傳遞模式(Publish//Subscribe)是一個基于推送的消息傳送模式,其消息傳遞結(jié)構(gòu)如下圖所示:

 

1590722590145_發(fā)布訂閱消息傳遞模式.jpg


從上圖中可以看出,在發(fā)布訂閱模式中,發(fā)布者用于發(fā)布消息,訂閱者用于訂閱消息,發(fā)布訂閱模式可以有多種不同的訂閱者,發(fā)布者發(fā)布的消息會被持久化到一個主題中,與點對點模式不同的是,訂閱者可以訂閱一個或多個主題,訂閱者可以讀取該主題中的所有數(shù)據(jù),同一條數(shù)據(jù)可以被多個訂閱者消費,數(shù)據(jù)被消費后也不會立即刪除。

1577370495235_學IT就到黑馬程序員.gif



猜你喜歡:

機器學習可以應用于哪些領(lǐng)域?

什么是機器學習?

2小時實現(xiàn)黑馬AI機器人實戰(zhàn)教程

分享到:
在線咨詢 我要報名
和我們在線交談!