消息隊(duì)列的兩種模式:
1、點(diǎn)對點(diǎn)模式(一對一银萍,消費(fèi)者主動(dòng)拉取數(shù)據(jù)恤左,消息收到后消息清除):
????????點(diǎn)對點(diǎn)模型通常是一個(gè)基于拉取或者輪詢的消息傳送模型,這種模型從隊(duì)列中請求信息飞袋,而不是將消息推從到客戶端。這個(gè)模型的特點(diǎn)是發(fā)送到隊(duì)列的消息被一個(gè)且只有一個(gè)接受者接受處理瓶您,即使有很多個(gè)消息監(jiān)聽者也是如此。
2呀袱、發(fā)布/訂閱模式(一對多,數(shù)據(jù)產(chǎn)生后压鉴,推送給所有的訂閱者)
????????發(fā)布訂閱模型是一個(gè)基于推送消息的傳送模型。發(fā)布訂閱模型可以有多種不同的訂閱者击蹲,臨時(shí)訂閱只在主動(dòng)監(jiān)聽主題時(shí)才接收消息婉宰,而持久訂閱者則監(jiān)聽所有的消息,即使當(dāng)前訂閱者不可用心包,處于離線狀態(tài)。
為什么要用消息隊(duì)列:
1痕惋、解耦
允許你獨(dú)立的擴(kuò)展和修改兩邊的處理過程娃殖,只要保證他們遵守同樣的接口約束
2、冗余
消息隊(duì)列 把數(shù)據(jù)進(jìn)行持久化知道他們已經(jīng)被完全處理炉爆,通過這一方式規(guī)避了丟失數(shù)據(jù)的風(fēng)險(xiǎn),許多消息隊(duì)列所采用的 “ 插入-獲取-刪除 ”范式中芬首,再把一個(gè)消息從隊(duì)列中刪除之前,需要處理系明確指出該消息已經(jīng)被處理完畢赦政,從而保證你的數(shù)據(jù)安全的保存直到你使用完畢艺晴。
3、擴(kuò)展性
因?yàn)橄㈥?duì)列解耦了你的處理過程封寞,所以增大消息入隊(duì)和處理的頻率時(shí)很容易的。另外增加處理過程即可碗淌。
4、靈活性和峰值處理能力
5亿眠、可恢復(fù)性
6、順序保證
7荆烈、緩沖
8竟趾、異步通信
什么是Kafka:
一個(gè)分布式消息隊(duì)列。