全國咨詢/投訴熱線:400-618-4000

點對點消息傳遞模式與發布訂閱消息傳遞模式【大數據培訓】

更新時間:2020年05月29日11時32分 來源:傳智播客

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

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

1、點對點消息傳遞模式

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

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


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

2、發布訂閱消息傳遞模式

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

1590722590145_發布訂閱消息傳遞模式.jpg


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

學大數據就來傳智播客



猜你喜歡

Docker與虛擬機的區別有哪些?

Docker是什么?Docker的特點有哪些?

Docker架構包括哪幾部分?

微信粉丝工厂赚钱吗 福利彩票怎么看几等奖 深证成指 和讯 股票推荐 北京28结果查询 江西多乐彩走势图工 30选5一等奖多少钱 体彩环岛赛中奖规则官网 股票交易手续费 甘肃十一选五任五推荐号码 极速时时彩是个国家的