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

簡要分析Kafka Stream有意思的點

企業(yè)動態(tài) Kafka
Kafka一直缺乏一個商業(yè)公司來推動,這個問題現(xiàn)在要稍稍改變一些了,原LinkedIn Kafka作者離職后創(chuàng)業(yè)Confluent Inc來推動kafka商業(yè)化,并推出Kafka Stream。今天只講kafka stream幾個有意思的點。

kafka歷史背景

Kafka是2010年Kafka是Linkedin于2010年12月份開源的消息系統(tǒng),我接觸的不算早,大概14年的時候,可以看看我們14年寫的文章《高速總線kafka介紹》。

消息總線一直是作IT系統(tǒng)集成的核心概念,IBM/oracle等傳統(tǒng)廠商都有相關(guān)中間件產(chǎn)品。傳統(tǒng)消息中間件解決是消息的傳輸,一般支持AMQP協(xié)議來實現(xiàn),如RabbitMQ。AMQP的主要特征是面向消息、隊列、路由(包括點對點和發(fā)布/訂閱)、可靠性、安全。AMQP協(xié)議更多用在企業(yè)系統(tǒng)內(nèi),對數(shù)據(jù)一致性、穩(wěn)定性和可靠性要求很高的場景,對性能和吞吐量的要求還在其次。

Kafka上來劍走偏鋒,追求高吞吐量,所以特別適合,大數(shù)據(jù)的數(shù)據(jù)收集和分發(fā)等功能。高吞吐的原因核心是kafka的一些獨特的涉及,包括直接使用linux cache/zero-copy/數(shù)據(jù)存放方法等,這方面的分析很多,我前面的文章《高速總線kafka介紹》第4節(jié)也簡單寫了下。Kafka一直缺乏一個商業(yè)公司來推動,所以發(fā)展并不是很快。幾年過去了,自己看了看,還是0.10版本,特性也發(fā)展比較慢。

Kafka一直缺乏一個商業(yè)公司來推動,這個問題現(xiàn)在要稍稍改變一些了,原LinkedIn Kafka作者離職后創(chuàng)業(yè)Confluent Inc來推動kafka商業(yè)化,并推出Kafka Stream。

Kafka Stream

詳細的設(shè)計理念,概念,大家看看slidershare上的PPT,講的比較清楚,不詳細展開了:https://www.slideshare.net/GuozhangWang/introduction-to-kafka-streams。

kafka stream

今天只講kafka stream幾個有意思的點:

1. 首先是定位:

比較成熟度的框架有:Apache Spark, Storm(我們公司開源Jstorm), Flink, Samza 等。第三方有:Google’s DataFlow,AWS Lambda。

1)現(xiàn)有框架的好處是什么?

強大計算能力,例如Spark Streaming上已經(jīng)包含Graph Compute,MLLib等適合迭代計算庫,在特定場景中非常好用。

2)問題是什么?

A、使用起來比較復(fù)雜,例如將業(yè)務(wù)邏輯遷移到完備的框架中,Spark RDD,Spout等。有一些工作試圖提供SQL等更易使用模式降低了開發(fā)門檻,但對于個性化ETL工作(大部分ETL其實是不需要重量級的流計算框架的)需要在SQL中寫UDF,流計算框架就退化為一個純粹的容器或沙箱。

B、作者認為部署Storm,Spark等需要預(yù)留集群資源,對開發(fā)者也是一種負擔(dān)。

Kafka Stream

Kafka Stream定位是輕量級的流計算類庫,簡單體現(xiàn)在什么方面?

C、所有功能放在Lib中實現(xiàn),實現(xiàn)的程序不依賴單獨執(zhí)行環(huán)境

D、可以用Mesos,K8S,Yarn和Ladmda等獨立調(diào)度執(zhí)行Binary,試想可以通過Lamdba+Kafka實現(xiàn)一個按需付費、并能彈性擴展的流計算系統(tǒng),是不是很cool?

E、可以在單、單線程、多線程進行支持

F、在一個編程模型中支持Stateless,Stateful兩種類型計算

編程模型比較簡潔,基于Kafka Consumer Lib,及Key-Affinity特性開發(fā),代碼只要處理執(zhí)行邏輯就可以,F(xiàn)ailover和規(guī)模等問題由Kafka本身特性幫助解決。

2. 設(shè)計理念和概念抽象

強調(diào)簡單化,Partition中的數(shù)據(jù)到放入消費隊列之前進行一定的邏輯處理(Processor Topology)提供一定的數(shù)據(jù)處理能力(api),沒有Partition之間的數(shù)據(jù)交換,實現(xiàn)代碼9K行。

數(shù)據(jù)抽象分兩種:

1)KStream:data as record stream, KStream為一個insert隊列,新數(shù)據(jù)不斷增加進來

2)KTable: data as change log stream, KTable為一個update隊列,新數(shù)據(jù)和已有數(shù)據(jù)有相同的key,則用新數(shù)據(jù)覆蓋原來的數(shù)據(jù)

后面的并發(fā),可靠性,處理能力都是圍繞這個數(shù)據(jù)抽象來搞。

3. 支持兩種處理能力

Kafka Stream

1)Stateless(無狀態(tài)):例如Filter,Map,Joins,這些只要數(shù)據(jù)流過一遍即可,不依賴于前后的狀態(tài)。

2)Stateful(有狀態(tài)):主要是基于時間Aggregation,例如某段時間的TopK,UV等,當(dāng)數(shù)據(jù)達到計算節(jié)點時需要根據(jù)內(nèi)存中狀態(tài)計算出數(shù)值。

Kafka Streams把這種基于流計算出來的表存儲在一個本地數(shù)據(jù)庫中(默認是RocksDB,但是你可以plugin其它數(shù)據(jù)庫)

4. 未來支持exactly once

未來0.11版本會支持exactly once ,這是比較牛逼的能力。(提前預(yù)告)

https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/

1)at most once: 消費者fetch消息,保存offset,處理消息

消費者處理消息過程中出現(xiàn)意外,消費者恢復(fù)之后,將不能恢復(fù)處理出錯的消息

2)at least once: 消費者fetch消息,處理消息,保存offset

消費者處理消息過程中出現(xiàn)意外,可以恢復(fù)之后再重新讀取offsert處的原來的消息

3)exactly once: 確保消息唯一消費一次,這個是分布式流處理最難的部分。

“processing.guarantee=exactly_once”

這個是怎么實現(xiàn)的,去看看《分布式系統(tǒng)的一致性探討》http://blog.jobbole.com/95618/

和《關(guān)于分布式事務(wù)、兩階段提交協(xié)議、三階提交協(xié)議》

http://blog.jobbole.com/95632/。

5. 主要應(yīng)用場景

kafka的核心應(yīng)用場景還是輕量級ETL,和flink/storm更多是一個補充作用。

Building a Real-Time Streaming ETL Pipeline in 20 Minutes

https://www.confluent.io/blog/building-real-time-streaming-etl-pipeline-20-minutes/

最后希望kafka在商業(yè)公司的推動下有個更大的發(fā)展。

【本文為51CTO專欄作者“大數(shù)據(jù)和云計算”的原創(chuàng)稿件,轉(zhuǎn)載請通過微信公眾號獲取聯(lián)系和授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2021-03-25 06:12:55

SVG 濾鏡CSS

2022-08-03 08:03:03

前端APIjavascript

2022-06-15 07:21:47

鼠標指針交互效果CSS

2022-08-15 22:34:47

Overflow方向裁切

2022-07-11 13:09:26

mmapLinux

2020-12-12 13:50:16

云開發(fā)

2021-01-27 13:54:05

開發(fā)云原生工具

2018-06-24 16:39:28

Tomcat異常線程

2012-06-19 16:49:19

Web開發(fā)

2013-08-28 09:46:09

Debian LinuLinux發(fā)行版

2010-04-09 11:24:59

Oracle 排序

2021-11-17 10:45:58

Chrome 95新特性前端

2015-10-28 13:57:29

融合架構(gòu)華三UIS

2012-05-22 10:12:59

jQuery

2015-09-17 17:49:13

華三/UIS

2021-04-09 08:23:30

Css前端加載動畫

2021-02-20 16:01:26

Github前端開發(fā)

2022-08-23 08:01:09

CSS前端

2023-05-15 09:16:18

CSSCSS Mask

2012-04-12 15:14:31

idf2012英特爾
點贊
收藏

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