更新時(shí)間:2022-07-25 來(lái)源:黑馬程序員 瀏覽量:
1. 消息
kafka更好的替換傳統(tǒng)的消息系統(tǒng),消息系統(tǒng)被用于各種場(chǎng)景,與大多數(shù)消息系統(tǒng)比較kafka有更好的吞吐量?jī)?nèi)置分區(qū),副本和故障轉(zhuǎn)移,這有利于處理大規(guī)模的消息。
根據(jù)我們的經(jīng)驗(yàn)消息往往用于較低的吞吐量,但需要低的端到端延遲并需要提供強(qiáng)大的耐用性的保證。在這一領(lǐng)域的kafka比得上傳統(tǒng)的消息系統(tǒng),如ActiveMQ或RabbitMQ等。
2. 網(wǎng)站活動(dòng)追蹤
kafka原本的使用場(chǎng)景是用戶的活動(dòng)追蹤,網(wǎng)站的活動(dòng)(網(wǎng)頁(yè)游覽,搜索或其他用戶的操作信息)發(fā)布到不同的話題中心,這些消息可實(shí)時(shí)處理實(shí)時(shí)監(jiān)測(cè)也可加載到Hadoop或離線處理數(shù)據(jù)倉(cāng)庫(kù)。
3. 指標(biāo)
kafka也常常用于監(jiān)測(cè)數(shù)據(jù),分布式應(yīng)用程序生成的統(tǒng)計(jì)數(shù)據(jù)集中聚合。
4. 日志聚合
許多人使用Kafka作為日志聚合解決方案的替代品。日志聚合通常從服務(wù)器中收集物理日志文件,并將它們放在中央位置(可能是文件服務(wù)器或HDFS)進(jìn)行處理。Kafka抽象出文件的細(xì)節(jié),并將日志或事件數(shù)據(jù)更清晰地抽象為消息流。這允許更低延遲的處理并更容易支持多個(gè)數(shù)據(jù)源和分布式數(shù)據(jù)消費(fèi)。
5. 流處理
kafka中消息處理一般包含多個(gè)階段。其中原始輸入數(shù)據(jù)是從kafka主題消費(fèi)的,然后匯總,豐富,或者以其他的方式處理轉(zhuǎn)化為新主題,例如,一個(gè)推薦新聞文章,文章內(nèi)容可能從“articles”主題獲??;然后進(jìn)一步處理內(nèi)容,得到一個(gè)處理后的新內(nèi)容,最后推薦給用戶。這種處理是基于單個(gè)主題的實(shí)時(shí)數(shù)據(jù)流。從0.10.0.0開(kāi)始,輕量,但功能強(qiáng)大的流處理,就可以這樣進(jìn)行數(shù)據(jù)處理了。
除了Kafka Streams還有ApacheStorm和Apache Samza可選擇。
6. 事件采集
事件采集是一種應(yīng)用程序的設(shè)計(jì)風(fēng)格,其中狀態(tài)的變化根據(jù)時(shí)間的順序記錄下來(lái),kafka支持這種非常大的存儲(chǔ)日志數(shù)據(jù)的場(chǎng)景。
7. 提交日志
kafka可以作為一種分布式的外部日志,可幫助節(jié)點(diǎn)之間復(fù)制數(shù)據(jù),并作為失敗的節(jié)點(diǎn)來(lái)恢復(fù)數(shù)據(jù)重新同步,kafka的日志壓縮功能很好的支持這種用法,這種用法類(lèi)似于Apacha BookKeeper項(xiàng)目。