自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖解Kafka適用場景,全網(wǎng)最全!

云計(jì)算 Kafka
如果將事件作為系統(tǒng)中的一等公民(即事實(shí)來源),那存儲(chǔ)應(yīng)用程序的狀態(tài)就是一系列事件,系統(tǒng)中的其他所有內(nèi)容都可根據(jù)這些持久且不可變的事件重新計(jì)算。

消息系統(tǒng)

消息系統(tǒng)被用于各種場景,如解耦數(shù)據(jù)生產(chǎn)者,緩存未處理的消息。Kafka 可作為傳統(tǒng)的消息系統(tǒng)的替代者,與傳統(tǒng)消息系統(tǒng)相比,kafka有更好的吞吐量、更好的可用性,這有利于處理大規(guī)模的消息。

根據(jù)經(jīng)驗(yàn),通常消息傳遞對吞吐量要求較低,但可能要求較低的端到端延遲,并經(jīng)常依賴kafka可靠的durable機(jī)制。

在這方面,Kafka可以與傳統(tǒng)的消息傳遞系統(tǒng)(ActiveMQ 和RabbitMQ)相媲美。

存儲(chǔ)系統(tǒng)

寫入到kafka中的數(shù)據(jù)是落地到了磁盤上,并且有冗余備份,kafka允許producer等待確認(rèn),通過配置,可實(shí)現(xiàn)直到所有的replication完成復(fù)制才算寫入成功,這樣可保證數(shù)據(jù)的可用性。

Kafka認(rèn)真對待存儲(chǔ),并允許client自行控制讀取位置,你可以認(rèn)為kafka是-種特殊的文件系統(tǒng),它能夠提供高性能、低延遲、高可用的日志提交存儲(chǔ)。

日志聚合

日志系統(tǒng)一般需要如下功能:日志的收集、清洗、聚合、存儲(chǔ)、展示。Kafka常用來替代其他日志聚合解決方案。

和Scribe、Flume相比,Kafka提供同樣好的性能、更健壯的堆積保障、更低的端到端延遲。日志會(huì)落地,導(dǎo)致kafka做日志聚合更昂貴。

kafka可實(shí)現(xiàn)日志的:

  • 清洗(需編碼)
  • 聚合(可靠但昂貴,因需落地磁盤)
  • 存儲(chǔ)

ELK是現(xiàn)在比較流行的日志系統(tǒng)。在kafka的配合 下才是更成熟的方案,kafka在ELK技術(shù)棧中,主要起到buffer的作用,必要時(shí)可進(jìn)行日志的匯流。

圖片圖片

系統(tǒng)監(jiān)控與報(bào)警

與日志分析系統(tǒng)類似,我們需要收集系統(tǒng)指標(biāo)以進(jìn)行監(jiān)控和故障排除。區(qū)別在于指標(biāo)是結(jié)構(gòu)化數(shù)據(jù),而日志是非結(jié)構(gòu)化文本。指標(biāo)數(shù)據(jù)發(fā)送到 Kafka 并在 Flink 中聚合。聚合數(shù)據(jù)由實(shí)時(shí)監(jiān)控儀表板和警報(bào)系統(tǒng)(例如 PagerDuty)使用。

圖片圖片

Commit Log

Kafka 可充當(dāng)分布式系統(tǒng)的一種外部提交日志。日志有助于在節(jié)點(diǎn)之間復(fù)制數(shù)據(jù),并充當(dāng)故障節(jié)點(diǎn)恢復(fù)數(shù)據(jù)的重新同步機(jī)制。

Kafka 中的日志壓縮功能有助于支持這種用法。

跟蹤網(wǎng)站活動(dòng) - 推薦系統(tǒng)

kafka的最初始作用就是,將用戶行為跟蹤管道重構(gòu)為一組實(shí)時(shí)發(fā)布-訂閱源。把網(wǎng)站活動(dòng)(瀏覽網(wǎng)頁、搜索或其他的用戶操作)發(fā)布到中心topics中,每種活動(dòng)類型對應(yīng)一個(gè)topic?;谶@些訂閱源,能夠?qū)崿F(xiàn)一系列用例,如實(shí)時(shí)處理、實(shí)時(shí)監(jiān)視、批量地將Kafka的數(shù)據(jù)加載到Hadoop或離線數(shù)倉系統(tǒng),進(jìn)行離線數(shù)據(jù)處理并生成報(bào)告。

每個(gè)用戶瀏覽網(wǎng)頁時(shí)都生成了許多活動(dòng)信息,因此活動(dòng)跟蹤的數(shù)據(jù)量通常非常大。(Kafka實(shí)際應(yīng)用)

像亞馬遜這樣的電子商務(wù)網(wǎng)站使用過去的行為和相似的用戶來計(jì)算產(chǎn)品推薦。下圖展示了推薦系統(tǒng)的工作原理。Kafka 傳輸原始點(diǎn)擊流數(shù)據(jù),F(xiàn)link 對其進(jìn)行處理,模型訓(xùn)練則使用來自數(shù)據(jù)湖的聚合數(shù)據(jù)。

圖片圖片

這使得能夠持續(xù)改進(jìn)每個(gè)用戶的推薦的相關(guān)性。Kafka 的另一個(gè)重要用例是實(shí)時(shí)點(diǎn)擊流分析。

流處理 - kafka stream API

Kafka社區(qū)認(rèn)為僅僅提供數(shù)據(jù)生產(chǎn)、消費(fèi)機(jī)制是不夠的,他們還要提供流數(shù)據(jù)實(shí)時(shí)處理機(jī)制

從0.10.0.0開始, Kafka通過提供Strearms API來提供輕量,但功能強(qiáng)大的流處理。實(shí)際上就是Streams API幫助解決流引用中一些棘手的問題,比如:

  • 處理無序的數(shù)據(jù)
  • 代碼變化后再次處理數(shù)據(jù)
  • 進(jìn)行有狀態(tài)的流式計(jì)算

Streams API的流處理包含多個(gè)階段,從input topics消費(fèi)數(shù)據(jù),做各種處理,將結(jié)果寫入到目標(biāo)topic, Streans API基于kafka提供的核心原語構(gòu)建,它使用kafka consumer、 producer來輸入、輸出,用Kfka來做狀態(tài)存儲(chǔ)。

流處理框架: flink、spark streaming、Storm本是正統(tǒng)流處理框架,Kafka在流處理更多扮演流存儲(chǔ)角色。

CDC( Change data capture,變更數(shù)據(jù)捕獲)

  • CDC將數(shù)據(jù)庫變化流式傳輸?shù)狡渌到y(tǒng),以進(jìn)行復(fù)制或緩存/索引更新
  • Kafka 還是構(gòu)建data pipeline的絕佳工具,使用它從各種來源獲取數(shù)據(jù)、應(yīng)用處理規(guī)則并將數(shù)據(jù)存儲(chǔ)在倉庫、數(shù)據(jù)湖或數(shù)據(jù)網(wǎng)格中
  • 如下,事務(wù)日志發(fā)送到 Kafka 并由 ElasticSearch、Redis 和輔助數(shù)據(jù)庫攝取。

圖片圖片

img

系統(tǒng)遷移

升級遺留服務(wù)具有挑戰(zhàn)性:

  • 舊語言
  • 復(fù)雜邏輯
  • 缺乏測試

可利用MQ降低風(fēng)險(xiǎn)。

為升級訂單服務(wù),更新舊的訂單服務(wù)以消費(fèi)來自 Kafka 的輸入并將結(jié)果寫入 ORDER topic。新訂單服務(wù)使用相同的輸入并將結(jié)果寫入 ORDERNEW topic:

圖片圖片

Reconciliation調(diào)節(jié)服務(wù)比較 ORDER 和 ORDERNEW。如果它們相同,則新服務(wù)通過測試。

事件溯源

如果將事件作為系統(tǒng)中的一等公民(即事實(shí)來源),那存儲(chǔ)應(yīng)用程序的狀態(tài)就是一系列事件,系統(tǒng)中的其他所有內(nèi)容都可根據(jù)這些持久且不可變的事件重新計(jì)算。

事件溯源就是捕獲一系列事件中狀態(tài)的變化。通常使用 Kafka 作為主要事件存儲(chǔ)。如果發(fā)生任何故障、回滾或需要重建狀態(tài),可隨時(shí)重新應(yīng)用 Kafka 中的事件。

責(zé)任編輯:武曉燕 來源: JavaEdge
相關(guān)推薦

2023-06-06 08:18:24

Kafka架構(gòu)應(yīng)用場景

2010-03-02 16:50:34

WCF返回值

2019-06-17 16:17:03

存儲(chǔ)MySQL主流

2011-05-26 15:10:15

靜態(tài)變量

2020-06-16 15:40:32

閉鎖柵欄線程

2020-02-25 22:08:02

ZooKeeper典型應(yīng)用場景

2009-06-05 10:43:29

struts2 checheckbox實(shí)例

2024-10-11 11:50:05

Redis適用場景

2021-08-16 13:54:23

大數(shù)據(jù)深信服

2018-01-25 19:09:40

JavaThreadLocal線程

2021-03-04 09:00:00

架構(gòu)Lambda工具

2024-06-26 08:14:43

2019-09-23 10:47:52

Kafka架構(gòu)微服務(wù)

2015-01-16 11:30:07

Openstack分布式存儲(chǔ)

2021-12-06 20:32:41

AI

2025-02-14 08:04:15

2021-12-03 18:03:06

算法場景Rsa

2011-05-17 15:24:18

Shibboleth認(rèn)證

2024-08-23 16:04:45

2025-03-03 00:45:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號