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

Kafka和Redis如何解決流處理挑戰

開發 架構
正如我們所看到的,流可以非常適合處理大量數據,但也帶來了一系列挑戰。為了解決這些挑戰,引入了新的專用系統,如Apache Kafka和Redis Streams。

?雖然流可以是處理大量數據的有效方式,但它們也有自己的挑戰。讓我們看看其中的一些。

1. 如果消費者無法像制作人創建塊那樣快速處理塊,會發生什么?一個例子:如果消費者比生產者慢50%,會怎么樣?如果我們從一個10GB的文件開始,這意味著當生產者處理完所有10GB時,消費者只處理了5GB。剩余的5GB在等待處理時會發生什么情況?突然之間,分配給仍然需要處理的數據的50到100字節必須擴展到5GB。

圖片

圖1:如果消費者的速度比生產者慢,則需要額外的內存

2. 這只是一個噩夢場景。還有其他的。例如,如果消費者在處理一條生產線時突然失效,會發生什么情況?你需要一種跟蹤正在處理的行的方法,以及一種允許重新讀取該行和隨后的所有行的機制。

圖片

圖2:當消費者失效時

3. 最后,如果你需要能夠處理不同的事件并將其發送給不同的消費者,會發生什么?此外,如果增加額外的復雜性,一個消費者的進程依賴于另一個消費者,那么就有相互依賴的進程,會怎么樣?一個真正的風險是,你最終會遇到一個復雜的、緊耦合的、難以管理的單體系統——隨著不斷添加和刪除不同的生產者和消費者,這些需求將不斷變化。

舉個例子(圖3),假設我們有一家大型零售店,擁有數千臺服務器,支持通過網絡應用和移動應用進行購物。

假設我們正在處理三種與支付、庫存和Web服務器日志相關的數據,每種數據都有一個相應的消費者:“支付處理器”、“庫存處理器”和“Web服務器事件處理器”。此外,兩個消費者之間存在著重要的相互依賴關系。在處理庫存之前,需要先驗證付款。最后,每種類型的數據都有不同的目的地。如果是支付事件,則將輸出發送到所有系統,如數據庫、電子郵件系統、CRM等。如果是Web服務器事件,則僅將其發送到數據庫。如果是庫存事件,則將其發送到數據庫和CRM。

你可以想象,這很快就會變得非常復雜和混亂。這還不包括我們需要為每個消費者處理的慢消費者和容錯問題。

圖片

圖3:緊耦合的挑戰,因為有多個生產者和消費者

當然,所有這些都假設你正在處理一個單體架構,你有一臺服務器接收和處理所有事件。你將如何處理微服務架構?在這種情況下,許多小型服務器,即微服務,將處理事件,它們都需要能夠相互通信。突然間,你不僅僅有多個生產者和消費者,它們還分散在多個服務器上。

微服務的一個關鍵好處是,它們解決了根據不斷變化的需求擴展特定服務的問題。不幸的是,微服務只解決了一些問題。我們的生產者和消費者之間仍然存在緊耦合,我們保留了庫存微服務和支付服務之間的依賴關系。我們在最初的流媒體示例中指出的問題仍然存在:

  • 我們還沒有弄清楚當消費者崩潰時該怎么辦。
  • 我們還沒有找到一種管理慢消費者、不會迫使我們大幅擴大緩沖區規模的方法。
  • 我們還沒有辦法確保數據不會丟失。

這些只是一些主要挑戰。讓我們看看如何解決這些問題。

圖片

圖4:微服務世界中緊耦合的挑戰

專用流處理系統

正如我們所看到的,流可以非常適合處理大量數據,但也帶來了一系列挑戰。為了解決這些挑戰,引入了新的專用系統,如Apache Kafka和Redis Streams。在Kafka和Redis流的世界中,服務器不再像流那樣位于中心,其他一切都圍繞著它們。

數據工程師和數據架構師經常共享這種以流為中心的世界觀。當流成為中心時,一切都是流水線型的,這并不奇怪。

圖5顯示了前面看到的緊耦合示例的直接映射。讓我們看看它在高層次上是如何工作的。

圖片

  • 在這里,流和數據(事件)是一等公民,而不是處理它們的系統。
  • 任何有興趣發送數據(生產者)、接收數據(消費者)或同時發送和接收數據(生產者和消費者)的系統都連接到流處理系統。
  • 由于生產者和消費者是解耦的,因此可以隨意添加其他消費者或生產者。你可以聽任何你想聽的事件。這使得它非常適合微服務架構。
  • 如果消費者速度較慢,則可以通過添加更多消費者來增加消費。
  • 如果一個消費者依賴于另一個消費者,你可以簡單地監聽該消費者的輸出流,然后進行處理。例如,在上圖中,庫存服務在處理庫存事件之前從庫存流(紫色)和支付處理流(橙色)的輸出接收事件。這就是解決相互依賴問題的方法。
  • 流中的數據是持久的(與在數據庫中一樣)。任何系統都可以隨時訪問任何數據。如果由于某種原因數據沒有被處理,你可以重新處理它。

許多流挑戰一度看似艱巨,甚至無法克服,但只要把流放在中心,就可以輕易解決。這就是為什么越來越多的人在他們的數據層中使用Kafka和Redis Streams,這也是為什么數據工程師將流視為世界的中心。

原文鏈接:https://thenewstack.io/how-kafka-and-redis-solve-stream-processing-challenges/?

責任編輯:趙寧寧 來源: 開源云中文社區
相關推薦

2020-05-19 08:11:09

AI人工智能數據

2020-02-17 13:05:37

物聯網IOT物聯網應用

2020-09-01 11:17:51

霧計算物聯網IOT

2021-08-04 07:47:18

Kafka消息框架

2021-06-28 09:34:55

數據湖大數據Flink

2023-07-11 10:26:04

數據中心冷卻計算硬件

2023-07-06 16:36:45

云遷移云計算

2022-03-09 08:00:00

實時挑戰觀眾參與技術

2019-12-17 08:54:39

物聯網IoT物聯網項目

2023-08-03 06:58:46

數據結構企業

2018-03-18 09:00:28

2024-11-21 16:47:55

2016-08-02 15:14:46

2012-07-23 09:43:05

數據中心運營能源

2022-09-28 11:50:47

物聯網安全LOT

2020-03-27 10:28:51

數據分析消防安全大數據

2024-04-17 14:34:28

物聯網

2019-11-26 16:18:39

云計算Docker軟件

2021-06-29 14:38:30

客戶期望值品牌挑戰CIO

2022-09-08 11:45:18

云計算多云IT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一本一道久久a久久精品综合蜜臀 | 欧美舔穴 | 日干夜干| 免费午夜视频 | 精品亚洲永久免费精品 | 欧美视频在线播放 | 欧美高清性xxxxhdvideosex | 黄色大片在线视频 | 国产高清视频一区 | 91国内产香蕉 | 麻豆一区二区三区 | 亚洲国产高清在线 | jvid精品资源在线观看 | 热久久性| 亚洲精品一 | 男人视频网站 | 欧美黄色网 | 一区在线观看视频 | 久久久久www| 天天影视网天天综合色在线播放 | 色网站在线免费观看 | 免费在线观看一区二区 | 国产精品无码专区在线观看 | 久久一二| 一区二区福利视频 | 日韩理论电影在线观看 | 成人国产精品一级毛片视频毛片 | 黑人巨大精品欧美一区二区免费 | 久久久久久久一区 | 91在线观看免费 | 99精品国产一区二区青青牛奶 | 久久88 | 国产黄色在线观看 | 欧美aaa一级片 | 天天躁日日躁狠狠的躁天龙影院 | 一区二区三区免费 | 一区二区三区国产 | 久久精品国产一区二区三区 | 日本久久久一区二区三区 | 欧美日韩综合视频 | 久草视频在线播放 |