高速實(shí)時(shí)流數(shù)據(jù)處理
在線數(shù)據(jù)的增長(zhǎng)速度遠(yuǎn)遠(yuǎn)快于數(shù)據(jù)處理速度。為了讓企業(yè)保持競(jìng)爭(zhēng)力,必須隨時(shí)提供數(shù)據(jù),以便盡早做出明智的決策。實(shí)時(shí)數(shù)據(jù)流軟件正在成為數(shù)據(jù)基礎(chǔ)設(shè)施的重要組成部分,以盡早將數(shù)據(jù)傳輸?shù)教幚硐到y(tǒng)。雖然可以使用不同的流媒體軟件,但了解領(lǐng)域上下文和可用的基礎(chǔ)設(shè)施至關(guān)重要。
每個(gè)業(yè)務(wù)用例都是獨(dú)特的,應(yīng)該嚴(yán)格對(duì)待。需要記住的關(guān)鍵一點(diǎn)是,廉價(jià)、快速和優(yōu)質(zhì)永遠(yuǎn)不會(huì)成為可行的組合。經(jīng)濟(jì)實(shí)惠的解決方案可能會(huì)很快,但效果并不好;快速的解決方案可能很好,但并不便宜,等等。這個(gè)概念的一個(gè)理想例子是實(shí)時(shí)流數(shù)據(jù)處理。
處理實(shí)時(shí)流數(shù)據(jù) Apache Flink 或 Kafka Streams
隨著新技術(shù)為當(dāng)今的業(yè)務(wù)提供動(dòng)力,數(shù)字?jǐn)?shù)據(jù)的產(chǎn)生量巨大,需要比當(dāng)前的速度更快地吸收。
Apache Kafka在攝取實(shí)時(shí)流數(shù)據(jù)方面表現(xiàn)出色,并使企業(yè)能夠比傳統(tǒng)批處理工作流程更快地?cái)z取數(shù)據(jù)。它是一個(gè)開源、發(fā)布-訂閱模型的事件存儲(chǔ)和流平臺(tái)。憑借其分布式容錯(cuò)架構(gòu),Apache Kafka 可以在幾秒鐘內(nèi)可靠地處理數(shù)百萬(wàn)個(gè)事件。
將 Kafka 與 Kafka Streams 或Flink工具配對(duì)將顯著增強(qiáng)其功能,因?yàn)樗鼈?可以 在數(shù)據(jù)到達(dá)應(yīng)用程序之前 實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理,從而 減少或消除數(shù)據(jù)處理步驟的需要。 Kafka Streams 是一個(gè) 用于流處理和操作的Kafka庫(kù)。 Apache Flink 是一款可以處理流數(shù)據(jù)或批數(shù)據(jù)的數(shù)據(jù)處理軟件。
成本和基礎(chǔ)設(shè)施
Apache Kafka Streams 和 Apache Flink 之間的設(shè)置差異在基礎(chǔ)設(shè)施配置需求方面非常顯著:Apache Kafka Streams 在 Kafka 代理上運(yùn)行時(shí)無(wú)需機(jī)器費(fèi)用即可運(yùn)行,而 Apache Flink 需要一組機(jī)器來(lái)管理更大的工作負(fù)載。
表現(xiàn)
盡管 Flink 的設(shè)置和配置比 Kafka Stream 更加密集,但其好處超過(guò)了設(shè)置所需的工作。 Kafka 流可用于中等工作負(fù)載的實(shí)時(shí)分析。 Flink 可以將此負(fù)載分布在多個(gè)服務(wù)器上并并行處理,使其 更 適合低延遲、大容量的復(fù)雜工作負(fù)載。
復(fù)雜事件處理
在實(shí)時(shí)流分析中,復(fù)雜的事件處理有助于 在 數(shù)據(jù)到達(dá)時(shí)建立數(shù)據(jù)模式和趨勢(shì)。鑒于 此過(guò)程的廣泛性,它需要 更多的計(jì)算資源。 Apache Flink 憑借其專用的硬件設(shè)置,更適合 高級(jí) 復(fù)雜事件處理用例。
可靠性
Kafka 流利用其內(nèi)置的容錯(cuò)機(jī)制提供合理的容錯(cuò)能力。 Apache Flink 通過(guò)增強(qiáng)的檢查點(diǎn)系統(tǒng)提供容錯(cuò)能力,該系統(tǒng)對(duì)于關(guān)鍵數(shù)據(jù)處理場(chǎng)景高度可靠。
發(fā)展
Kafka Streams 開發(fā) 依賴于Java ,與 Flink 在無(wú)縫支持語(yǔ)言方面 提供的靈活性相比,在嘗試集成編程語(yǔ)言時(shí)可能會(huì)面臨限制 。
結(jié)論
從根本上來(lái)說(shuō),這取決于業(yè)務(wù)用例,因?yàn)?Apache Flink 和 Kafka Streams 具有相同的實(shí)時(shí)流數(shù)據(jù)處理目的。背景(例如,當(dāng)前基礎(chǔ)設(shè)施、采用新技術(shù)的學(xué)習(xí)曲線、工作負(fù)載量和復(fù)雜性)對(duì)于決定哪些技術(shù)符合公司的最佳實(shí)踐至關(guān)重要。