消息隊(duì)列之kafka(基礎(chǔ)介紹)-創(chuàng)新互聯(lián)

消息隊(duì)列之kafka(基礎(chǔ)介紹)

創(chuàng)新互聯(lián)成立于2013年,我們提供高端成都網(wǎng)站建設(shè)、網(wǎng)站制作公司成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、全網(wǎng)整合營(yíng)銷推廣、成都小程序開發(fā)、微信公眾號(hào)開發(fā)、成都網(wǎng)站推廣服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為成都樓梯護(hù)欄企業(yè)提供源源不斷的流量和訂單咨詢。

一、關(guān)于JMS

1. JMS 的基礎(chǔ)

JMS是Java提供的一套技術(shù)規(guī)范。即Java消息服務(wù)(Java message service)。應(yīng)用程序接口。是一個(gè)Java平臺(tái)中關(guān)于面向消息中間件的API。用于在兩個(gè)應(yīng)用程序之間或者分布式系統(tǒng)中發(fā)送消息,進(jìn)行異步通信。Java消息服務(wù)是一個(gè)與具體平臺(tái)無關(guān)的API。
用來異構(gòu)系統(tǒng)集成通信,緩解系統(tǒng)瓶頸。 提高系統(tǒng)的伸縮性、增強(qiáng)系統(tǒng)用戶體驗(yàn)。使得系統(tǒng)模塊化和組件化變得可行并更加靈活。
JAVA2EE十三大規(guī)范:https://blog.csdn.net/qq_41637061/article/details/84640947

2. JMS消息傳輸模型

(1)點(diǎn)對(duì)點(diǎn)

點(diǎn)對(duì)點(diǎn)模型通常是一個(gè)基于拉取或者輪詢的消息傳送模型,這種模型從隊(duì)列中請(qǐng)求信息,而不是將消息推送到客戶端。這個(gè)模型的特點(diǎn)是發(fā)送到隊(duì)列的消息被一個(gè)且只有接受者接受處理,即使有多個(gè)消息監(jiān)聽者也是如此??偟膩碚f就是:一對(duì)一,消費(fèi)者主動(dòng)拉取數(shù)據(jù),消息收到后消息清除


消息隊(duì)列之kafka(基礎(chǔ)介紹)


(2) 發(fā)布/訂閱模式

發(fā)布訂閱模型則是一個(gè)基于推送的消息傳送模型。發(fā)布訂閱模型可以有多種不同的訂閱者,臨時(shí)訂閱者只在主動(dòng)監(jiān)聽主題時(shí)才接收消息,而持久訂閱者則監(jiān)聽主題的所有消息,即時(shí)當(dāng) 前訂閱者不可用,處于離線狀態(tài)。
消息隊(duì)列之kafka(基礎(chǔ)介紹)

3.JMS 核心組件

消息隊(duì)列之kafka(基礎(chǔ)介紹)
Destination:消息發(fā)送的目的地,也就是前面說的Queue 和 Topic。
Message:從字面上就可以看出來是被發(fā)送的消息。
Producer:消息的生產(chǎn)者,發(fā)送一個(gè)消息,必須通過這個(gè)產(chǎn)生者來發(fā)送。
MessageConsumer:與生產(chǎn)者相對(duì)應(yīng),這是消息的消費(fèi)者或接收者,通過它來接收一個(gè)消息。
其中 message有分為很多種類:
StreamMessage:Java 數(shù)據(jù)流消息,用標(biāo)準(zhǔn)流操作來順序的填充和讀取。
MapMessage:一個(gè) Map 類型的消息;名稱為 string 類型,而值為 Java 的基本類型。
TextMessage:普通字符串消息,包含一個(gè) String。
ObjectMessage:二進(jìn)制數(shù)組消息,包含一個(gè) byte[]。
XMLMessage:一個(gè) XML 類型的消息。
其中最常用的就是TextMessage 和 ObjectMessage。

4.常見的消息隊(duì)列服務(wù)

(1) ActiveMQ

ActiveMQ 是 Apache 出品,最流行的,能力強(qiáng)勁的開源消息總線。ActiveMQ 是一個(gè)完全支 持 JMS1.1 和 J2EE 1.4 規(guī)范的。
特點(diǎn):
? - 生產(chǎn)者、服務(wù)器和消費(fèi)者都可分布
? - 消息存儲(chǔ)順序?qū)?br/>? - 性能極高,吞吐量大
? - 支持消息順序
? - 客戶端 pull,隨機(jī)讀,利用 sendfile 系統(tǒng)調(diào)用,zero-copy ,批量拉數(shù)據(jù)
? - 支持消費(fèi)端事務(wù)
? - 支持消息廣播模式
? - 支持異步發(fā)送消息
? - 支持 http 協(xié)議
? - 數(shù)據(jù)遷移、擴(kuò)容對(duì)用戶透明
? - 支持同步和異步復(fù)制兩種 HA

(2) RocketMQ

RocketMQ 是一款分布式、隊(duì)列模型的消息中間件
特點(diǎn):
? - 能夠保證嚴(yán)格的消息順序
? - 提供豐富的消息拉取模式
? - 高效的訂閱者水平擴(kuò)展能力
? - 實(shí)時(shí)的消息訂閱機(jī)制
? - 億級(jí)消息堆積能力

二、kafka的基礎(chǔ)介紹

1. Kafka 的介紹

kafak是一種分布式的,基于發(fā)布/訂閱的消息系統(tǒng)。以時(shí)間復(fù)雜度為O(1)的方式提供消息持久化能力,即使對(duì)TB級(jí)以上數(shù)據(jù)也能保證常數(shù)時(shí)間復(fù)雜度的訪問性能。 高吞吐率。即使在非常廉價(jià)的商用機(jī)器上也能做到單機(jī)支持每秒100K條以上消息的傳輸。支持Kafka Server間的消息分區(qū),及分布式消費(fèi),同時(shí)保證每個(gè)Partition內(nèi)的消息順序傳輸。同時(shí)支持離線數(shù)據(jù)處理(hive、HBASE)和實(shí)時(shí)數(shù)據(jù)處理(spark、storm)。

2.kafka的優(yōu)勢(shì)

- 解耦:允許獨(dú)立的擴(kuò)展或者修改兩邊的處理過程,只要確保他們遵循同樣的接口約束。
- 冗余:消息隊(duì)列把數(shù) 據(jù)進(jìn)行持久化直到它們已經(jīng)被完全處理,通過這一方式規(guī)避了數(shù)據(jù)丟失風(fēng)險(xiǎn)。直到保存到使用完畢。
- 擴(kuò)展性:增大消息入隊(duì)和處理的頻率是很容易
- 靈活性&峰值處理能力:消息隊(duì)列能夠 使關(guān)鍵組件頂住突發(fā)的訪問壓力,而不會(huì)因?yàn)橥话l(fā)的超負(fù)荷的請(qǐng)求而完全崩潰。
- 可恢復(fù)性:系統(tǒng)的一部分組件失效時(shí),不會(huì)影響到整個(gè)系統(tǒng)。
- 順序保證:Kafka 保證一個(gè) Partition 內(nèi)的消息的有序性。
- 緩沖:消息隊(duì)列通過一個(gè)緩沖層來幫助任務(wù)最高效率的執(zhí)行。寫入隊(duì)列的處理 會(huì)盡可能的快速。該緩沖有助于控制和優(yōu)化數(shù)據(jù)流經(jīng)過系統(tǒng)的速度。
- 異步通信:消息隊(duì)列提供了異步處理機(jī)制,允許用戶把一個(gè)消息放入隊(duì)列,但并不立即處理它。(想放多少放多少,需要的時(shí)候在處理)

3.kafka的特性

- 高吞吐、低延遲:kafka 每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒。
- 可擴(kuò)展性:kafka 集群支持熱擴(kuò)展
- 可靠性:消息被持久化到本地磁盤,并且支持?jǐn)?shù)據(jù)備份防止數(shù)據(jù)丟失
- 容錯(cuò)性:允許集群中節(jié)點(diǎn)失敗
- 高并發(fā):支持?jǐn)?shù)千個(gè)客戶端同時(shí)讀寫

4.kafka的應(yīng)用場(chǎng)景

經(jīng)典架構(gòu):Flume + Kafka + Storm /spark streaming+ Redis。
應(yīng)用場(chǎng)景:消息系統(tǒng)、跟蹤網(wǎng)站活動(dòng)、運(yùn)營(yíng)指標(biāo)、日志聚合、流處理、采集日志、提交日志。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:消息隊(duì)列之kafka(基礎(chǔ)介紹)-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.muchs.cn/article42/dgigec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、電子商務(wù)Google、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)