成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不要讓Apache Kafka成為你的數據庫

譯文 精選
數據庫 其他數據庫
Kafka在支持數據聚合和實時指標等用例方面提供了最大的價值。使用Kafka和Apache生態系統工具(如Spark、Flink或KStreams),開發人員可以對流數據進行聚合和轉換,然后將這些數據推送到所需的數據庫。

作者丨Andrew Mills

編譯丨諾亞

出品 | 51CTO技術棧(微信號:blog51cto)

關于Kafka到底能否被認為是數據庫的討論由來已久。支持方認為,Kafka不應該僅僅是一個消息隊列,其工作機制涉及到海量數據的存儲與處理,根據需求Kafka 是可以作為數據庫來使用的。而反對方則表示,Kafka 沒有傳統數據庫的數據模型,也不能很好地支持查詢優化,而且Kafka沒有嚴格的隔離機制,也就無從保證在并發讀寫情況下的數據準確。

本文作者Andrew Mills是開源數據庫公司Instaclustr的高級解決方案架構師,在他看來,將Kafka作為一個數據庫來使用并不能解決問題。2016年,Andrew開始了他的數據流之旅,此后他設計和實現了幾個以Kafka為核心的大數據管道,對Apache Kafka及其生態系統有了深厚的沉淀。       

企業總是在與其現有的關系數據庫的性能和可伸縮性限制作斗爭。負責尋找新解決方案的團隊,著眼于事件驅動架構,發現了Apache Kafka,驚嘆:“這就是我們需要的數據庫解決方案!”它速度快、可擴展、高可用,正是他們期待的完美新解法。

這些團隊將Kafka設置為他們的數據庫,并期望它作為他們的可信單一數據源(SSOT),存取他們可能需要的所有數據。但是,這就是問題開始的時候。核心問題是Kafka實際上并不是一個數據庫,使用它作為數據庫并不能解決他們所遇到的可擴展性和性能問題。

1、“什么是數據庫”正在被挑戰   

當開發人員來定義一個數據庫時,他們通常會想到具有二級索引和表的數據存儲,就像大多數SQL和NoSQL解決方案一樣。另一個傳統需求是遵循ACID原則:即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。

然而,關于數據庫定義的傳統思維正在不斷受到挑戰。例如,Redis沒有表,RocksDB沒有二級索引。兩者都不遵循ACID。但是,兩者通常都被稱為數據庫。還有,比如Apache Cassandra被稱為NoSQL數據庫,但它同樣不遵循ACID。  

我在Kafka上劃清了界限,我認為它不是數據庫,而且在很大程度上不應該被用作數據庫。冒昧地說,我覺得Kafka社區大部分人在很大程度上都持有相似的觀點。

Kafka沒有查詢語言。你可以訪問特定時間段的特定記錄,但是你訪問的是預寫日志。Kafka確實有偏移量和主題,但它們不能替代索引和表。而且,Kafka不符合ACID原則。雖然可以使用Kafka作為數據存儲或創建自己版本的數據庫,但Kafka本身并不是數據庫。

這就引出了一系列問題:千方百計地使用Kafka作為數據庫是否有意義?你的用例真的需要它嗎?從長遠來看,迫使Kafka像數據庫一樣運行,你又是否有足夠的專業知識來承擔隨之而來的技術債務?對于大多數用戶和用例,我的答案是堅決的否定。

2、Kafka取代不了關系數據庫

為用例選擇正確的技術,關鍵都在于,讓解決方案與你試圖解決的問題相匹配。Kafka旨在作為一個分布式事件流平臺,僅此而已。雖然它可以用作長期數據存儲(技術上),但這樣做意味著在訪問這些數據時需要進行重大權衡。

Kafka生態系統中的工具,比如ksqlDB,可以讓Kafka感覺更像一個數據庫,但這種方法只適用于中等規模的用例。大多數選擇實現Apache Kafka的企業都有高速數據,而ksqlDB無法滿足他們的需求。

正確的策略是讓Kafka做它最擅長的事情,即以快速可靠的方式接收和分發事件。例如,考慮一個帶有API的電子商務網站,該API通常會將所有數據直接保存到具有大量表的關系數據庫中,因此性能、可擴展性和可用性都很差。引入Kafka,我們可以設計一個高級的事件驅動生態系統,將API中的數據作為事件推送到Kafka。

這種事件驅動的方法將處理分離為單獨的組件。一個事件可能包含客戶數據,另一個事件可能包含訂單數據,等等——支持多個作業同時獨立地處理事件。這種方法是企業架構的下一個發展方向。我們已經從單體到微服務,現在又發展到事件驅動架構,它擁有與微服務相同的諸多優點,比如,具有更高的可用性和更快的速度。

一旦事件被保存在Kafka中,你就可以非常靈活地處理它們。如果有需要將原始事件存儲在關系數據庫中,那么可以使用Kafka Connect這樣的生態系統工具來簡化這一過程。   

關系數據庫仍然是現代企業架構中的一個關鍵工具,特別是當你考慮到,使用熟悉的工具和成熟的生態系統的優勢是有優勢的。Kafka并不是我們所熟悉的這些工具的替代品。它只是使我們能夠處理我們所看到的大量涌入的數據。

3、可插拔且多功能,但不是一個數據庫

Kafka在支持數據聚合和實時指標等用例方面提供了最大的價值。使用Kafka和Apache生態系統工具(如Spark、Flink或KStreams),開發人員可以對流數據進行聚合和轉換,然后將這些數據推送到所需的數據庫。其中一些工具還可以以時間序列或窗口方式聚合數據,并將其推送到報告引擎以獲得實時指標。

如果開發人員希望將某些數據保存到緩存中——可能是為了支持網站或CRM系統——很簡單,可以利用Kafka數據流并將數據推送到Redis或一個壓縮的Kafka主題。來自Kafka的數據流允許團隊添加他們認為合適的各種組件,而不用擔心服務的降級,因為Kafka具有非常好的可擴展性、可靠性和可用性。這包括將數據輸入任何數據存儲,無論是Apache Cassandra、大數據平臺、數據湖,還是幾乎任何其他選擇。

如果數據是現代企業的命脈,那么Kafka應該是數據生態系統的核心。使用Kafka,用戶可以將數據傳輸到任何需要的地方。通過這種方式,Kafka是你的數據庫的補充,但不應該是你的數據庫。正確利用Kafka的方式應該包括“按其預期使用”的方向作為,這意味著將它視為一個強大的消息代理,事件流的處理中心、組織的核心數據管道。

參考鏈接:https://www.infoworld.com/article/3711181/dont-make-apache-kafka-your-database.html

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2023-04-13 08:25:03

2015-03-11 09:44:58

云環境云數據中心數據移動

2017-06-07 11:48:47

Hadoop數據存儲

2011-05-27 13:46:58

2010-11-24 10:57:56

槽理

2012-11-19 14:25:07

數據中心SDN

2012-11-19 16:32:16

數據中心

2009-07-02 00:26:00

臨時表空間Oracle數據庫性能

2010-04-13 14:04:04

系統遷移

2016-01-13 15:14:06

云計算OpenStack

2013-10-12 09:43:56

系統管理軟件

2019-11-24 19:25:17

網絡安全邊緣計算攻擊

2022-01-17 11:03:17

領導者技術決策醫療保健

2011-04-28 08:59:20

項目框架

2023-07-27 10:24:54

數字化轉型NetOps

2017-03-17 17:36:50

互聯網

2011-03-11 08:58:26

Apache Couc

2025-06-17 10:02:50

MySQL數據庫事務原理

2016-09-12 20:36:38

2023-07-20 20:54:09

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频500部 a久久 | 日韩中文一区二区三区 | 国产精品久久久久久久久久免费看 | 五十女人一级毛片 | 日本天天操 | 鲁大师一区影视 | 国产精品99久久久久久久vr | 精品视频久久久久久 | 免费一区二区三区 | 免费视频久久久久 | 免费特级黄毛片 | 亚洲国产成人精品久久久国产成人一区 | 国产精品片aa在线观看 | 涩涩视频网站在线观看 | 亚洲激情综合 | 成人在线h | 成年人免费看的视频 | 日本不卡免费新一二三区 | 国产成人高清 | 日韩国产一区二区三区 | 在线一级片| 黄视频免费在线 | 久久久成人免费一区二区 | 成人久久18免费网站 | 一区二区三区中文字幕 | 国产精品欧美一区二区三区不卡 | 国产日韩精品久久 | 欧美色综合一区二区三区 | 亚洲日日夜夜 | 免费一级欧美在线观看视频 | 毛片久久久 | 中文字幕国产精品 | 国产成人一区二区 | 欧洲一区二区三区 | 免费av在线| 99视频在线| 岛国av免费在线观看 | 久久av在线播放 | 精品中文字幕视频 | 久久99精品久久久久久 | 欧美日韩在线综合 |