国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kafka 生產(chǎn)者

這篇具有很好參考價(jià)值的文章主要介紹了Kafka 生產(chǎn)者。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、kafka生產(chǎn)者原理

二、kafka異步發(fā)送

配置kafka

創(chuàng)建對象,發(fā)送數(shù)據(jù)

帶回調(diào)函數(shù)的異步發(fā)送

同步發(fā)送

?文章來源地址http://www.zghlxwxcb.cn/news/detail-413572.html

三、kafka生產(chǎn)者分區(qū)

分區(qū)策略

指定分區(qū):

?指定key:

什么都不指定:

自定義分區(qū)器

四、生產(chǎn)者提高吞吐量

五、數(shù)據(jù)的可靠性

ACK應(yīng)答級別

數(shù)據(jù)完全可靠條件

可靠性總結(jié)

代碼中配置ACK

五、數(shù)據(jù)重復(fù)

冪等性

生產(chǎn)者事務(wù)

六、數(shù)據(jù)有序、亂序

數(shù)據(jù)有序

數(shù)據(jù)亂序


?

一、kafka生產(chǎn)者原理

main線程中創(chuàng)建生產(chǎn)者對象,然后調(diào)用send方法來發(fā)送數(shù)據(jù),根據(jù)生產(chǎn)環(huán)境的需求來判斷是否要增加攔截器(一般建議不用),因?yàn)槭强绻?jié)點(diǎn)通信,所以要對數(shù)據(jù)進(jìn)行序列化,用kafka自帶的序列化器處理,再由分區(qū)器來規(guī)定數(shù)據(jù)發(fā)送到哪個(gè)分區(qū),先發(fā)送到了一個(gè)緩存隊(duì)列當(dāng)中,隊(duì)列大小是32M,其中每個(gè)批次默認(rèn)大小是16k,達(dá)到16k后就會進(jìn)入sender線程發(fā)送到kafka集群,或者等待時(shí)間到了也會自動(dòng)發(fā)送,每一個(gè)broker節(jié)點(diǎn)接受一個(gè)隊(duì)列的消息,發(fā)送到分區(qū)后,分區(qū)最多緩存5個(gè)請求,如果達(dá)到5個(gè)請求都沒有ack應(yīng)答的話,那么接下來消息就會發(fā)送到別的分區(qū)上。

通過Selector將底層鏈路進(jìn)行打通進(jìn)行發(fā)送數(shù)據(jù),集群收到后進(jìn)行一個(gè)副本的同步,同步完成后進(jìn)行ack應(yīng)答。

Kafka 生產(chǎn)者

?

應(yīng)答成功后清理隊(duì)列中的數(shù)據(jù)

Kafka 生產(chǎn)者

?應(yīng)答失敗會進(jìn)行retry重試

Kafka 生產(chǎn)者

?

二、kafka異步發(fā)送

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

?創(chuàng)建Maven工程導(dǎo)入kafka客戶端依賴

Kafka 生產(chǎn)者

?導(dǎo)包

Kafka 生產(chǎn)者

配置kafka

Kafka 生產(chǎn)者

創(chuàng)建對象,發(fā)送數(shù)據(jù)

Kafka 生產(chǎn)者

?

帶回調(diào)函數(shù)的異步發(fā)送

Kafka 生產(chǎn)者

?

同步發(fā)送

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

?

三、kafka生產(chǎn)者分區(qū)

Kafka 生產(chǎn)者

分區(qū)策略

Kafka 生產(chǎn)者

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

指定分區(qū):

?Kafka 生產(chǎn)者

?指定key:

Kafka 生產(chǎn)者

什么都不指定:

Kafka 生產(chǎn)者

?

怎么把訂單表的數(shù)據(jù)發(fā)送到kafka的指定分區(qū)中?

????? key 上寫表名,表名的hashcode值一定會發(fā)送到同一個(gè)分區(qū)(生產(chǎn)環(huán)境通常將表名作為key)

自定義分區(qū)器

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

?在生產(chǎn)者中關(guān)聯(lián)自定義分區(qū)器

Kafka 生產(chǎn)者

?在生產(chǎn)環(huán)境中可以過濾一些臟數(shù)據(jù)!

四、生產(chǎn)者提高吞吐量

Kafka 生產(chǎn)者

壓縮類型:

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

五、數(shù)據(jù)的可靠性

ACK應(yīng)答級別

0的時(shí)候,數(shù)據(jù)發(fā)過來還沒落盤就應(yīng)答,結(jié)果leader掛了導(dǎo)致了數(shù)據(jù)丟失。

Kafka 生產(chǎn)者

?

?1的時(shí)候,數(shù)據(jù)發(fā)送過來,leader落盤后就會應(yīng)答,生產(chǎn)者收到ack應(yīng)答認(rèn)為信息已經(jīng)發(fā)送成功,隨后就會清除掉隊(duì)列中的消息,但是此時(shí)follwer可能還沒完成同步,這個(gè)時(shí)候leader掛掉,就會有一個(gè)follwer成為新的leader,可是生產(chǎn)者已經(jīng)認(rèn)為信息發(fā)送成功從隊(duì)列中清除了消息,這就導(dǎo)致了數(shù)據(jù)的丟失。

Kafka 生產(chǎn)者

?

-1(all):leader收到消息,并且所有follwer都完成消息同步后返回ack應(yīng)答

Kafka 生產(chǎn)者

Kafka 生產(chǎn)者

Kafka 生產(chǎn)者follwer掛掉的話,等時(shí)間達(dá)到閾值還沒向Leader發(fā)送通信請求或同步數(shù)據(jù)就會被踢出ISR,意味著這個(gè)follwer就不是有效副本了!

?Kafka 生產(chǎn)者

?

?

?上面幾種都有數(shù)據(jù)丟失的風(fēng)險(xiǎn),如何真正保護(hù)數(shù)據(jù)的可靠性呢?

數(shù)據(jù)完全可靠條件

Kafka 生產(chǎn)者

ack級別設(shè)置為-1,且至少1個(gè)leader+1個(gè)follwer,ISR里min.insync.replicas >= 2

?

可靠性總結(jié)

Kafka 生產(chǎn)者

?

代碼中配置ACK

Kafka 生產(chǎn)者

?

五、數(shù)據(jù)重復(fù)

Kafka 生產(chǎn)者

冪等性

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

?

生產(chǎn)者事務(wù)

Kafka 生產(chǎn)者

?Kafka 生產(chǎn)者

Kafka 生產(chǎn)者?

Kafka 生產(chǎn)者?

六、數(shù)據(jù)有序、亂序

數(shù)據(jù)有序

Kafka 生產(chǎn)者

數(shù)據(jù)亂序

Kafka 生產(chǎn)者

?

到了這里,關(guān)于Kafka 生產(chǎn)者的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • kafka入門(五):kafka生產(chǎn)者發(fā)送消息

    構(gòu)建消息,即創(chuàng)建 ProduceRecord 對象。 (1) kafka發(fā)送消息,最常見的構(gòu)造方法是: topic 表示主題, value 表示值。 (2) kafka發(fā)送消息指定key,ProducerRecord 的 key ,既可以作為消息的唯一id,也可以用來決定消息該被寫到主題的哪個(gè)分區(qū)。擁有相同key 的消息,將被寫到同一個(gè)分區(qū)。

    2024年01月17日
    瀏覽(39)
  • 多圖詳解 kafka 生產(chǎn)者消息發(fā)送過程

    多圖詳解 kafka 生產(chǎn)者消息發(fā)送過程

    生產(chǎn)者客戶端代碼 KafkaProducer 通過解析 producer.propeties 文件里面的屬性來構(gòu)造自己。例如 :分區(qū)器、Key 和 Value 序列化器、攔截器、 RecordAccumulator消息累加器 、 元信息更新器 、啟動(dòng)發(fā)送請求的后臺線程 生產(chǎn)者元信息更新器 我們之前有講過. 客戶端都會保存集群的元信息,例如

    2023年04月09日
    瀏覽(28)
  • 分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的方式

    分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的方式

    不管是把Kafka作為消息隊(duì)列、消息總線還是數(shù)據(jù)存儲平臺,總是需要一個(gè)可以往Kafka寫入數(shù)據(jù)的生產(chǎn)者、一個(gè)可以從Kafka讀取數(shù)據(jù)的消費(fèi)者,或者一個(gè)兼具兩種角色的應(yīng)用程序。 Kafka 生產(chǎn)者是指使用 Apache Kafka 消息系統(tǒng)的應(yīng)用程序,它們負(fù)責(zé)將消息發(fā)送到 Kafka 集群中的一個(gè)或多

    2024年02月13日
    瀏覽(29)
  • 分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的分區(qū)策略

    分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的分區(qū)策略

    01. Kafka 分區(qū)的作用 分區(qū)的作用就是提供負(fù)載均衡的能力,或者說對數(shù)據(jù)進(jìn)行分區(qū)的主要原因,就是為了實(shí)現(xiàn)系統(tǒng)的高伸縮性。不同的分區(qū)能夠被放置到不同節(jié)點(diǎn)的機(jī)器上,而數(shù)據(jù)的讀寫操作也都是針對分區(qū)這個(gè)粒度而進(jìn)行的,這樣每個(gè)節(jié)點(diǎn)的機(jī)器都能獨(dú)立地執(zhí)行各自分區(qū)的

    2024年02月13日
    瀏覽(32)
  • 分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的3種方式

    分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的3種方式

    不管是把Kafka作為消息隊(duì)列、消息總線還是數(shù)據(jù)存儲平臺,總是需要一個(gè)可以往Kafka寫入數(shù)據(jù)的生產(chǎn)者、一個(gè)可以從Kafka讀取數(shù)據(jù)的消費(fèi)者,或者一個(gè)兼具兩種角色的應(yīng)用程序。 Kafka 生產(chǎn)者是指使用 Apache Kafka 消息系統(tǒng)的應(yīng)用程序,它們負(fù)責(zé)將消息發(fā)送到 Kafka 集群中的一個(gè)或多

    2024年02月13日
    瀏覽(26)
  • kafka服務(wù)端允許生產(chǎn)者發(fā)送最大消息體大小

    ????????server.properties中加上的message.max.bytes配置,我目前設(shè)置為5242880,即5MB,可以根據(jù)實(shí)際情況增大。 ????????在生產(chǎn)者端配置max.request.size,這是單個(gè)消息最大字節(jié)數(shù),根據(jù)實(shí)際調(diào)整,max.request.size 必須小于 message.max.bytes 以及消費(fèi)者的 max.partition.fetch.bytes。這樣消息

    2024年02月15日
    瀏覽(24)
  • Kafka 入門到起飛系列 - 生產(chǎn)者發(fā)送消息流程解析

    Kafka 入門到起飛系列 - 生產(chǎn)者發(fā)送消息流程解析

    生產(chǎn)者通過 producerRecord 對象封裝消息主題、消息的value(內(nèi)容)、timestamp(時(shí)間戳)等 生產(chǎn)者通過 send() 方法發(fā)送消息,send()方法會經(jīng)過如下幾步 1. 首先將消息交給 攔截器(Interceptor) 處理, 攔截器對生產(chǎn)者而言,對所有消息都是生效的,攔截器也支持鏈?zhǔn)骄幊蹋ㄘ?zé)任器鏈)的

    2024年02月16日
    瀏覽(23)
  • Kafka中的生產(chǎn)者如何處理消息發(fā)送失敗的情況?

    在Kafka中,生產(chǎn)者可以通過以下方式處理消息發(fā)送失敗的情況: 同步發(fā)送模式(Sync Mode):在同步發(fā)送模式下,生產(chǎn)者發(fā)送消息后會阻塞等待服務(wù)器的響應(yīng)。如果發(fā)送失敗,生產(chǎn)者會拋出異常(例如 ProducerRecord 發(fā)送異常)或返回錯(cuò)誤信息。開發(fā)者可以捕獲異常并根據(jù)需要進(jìn)行

    2024年02月06日
    瀏覽(22)
  • 07、Kafka ------ 消息生產(chǎn)者(演示 發(fā)送消息) 和 消息消費(fèi)者(演示 監(jiān)聽消息)

    07、Kafka ------ 消息生產(chǎn)者(演示 發(fā)送消息) 和 消息消費(fèi)者(演示 監(jiān)聽消息)

    簡單來說,就是一個(gè)數(shù)據(jù)項(xiàng)。 ▲ 消息就是 Kafka 所記錄的數(shù)據(jù)節(jié)點(diǎn),消息在 Kafka 中又被稱為記錄(record)或事件(event)。 從存儲上來看,消息就是存儲在分區(qū)文件(有點(diǎn)類似于List)中的一個(gè)數(shù)據(jù)項(xiàng),消息具有 key、value、時(shí)間戳 和 可選的元數(shù)據(jù)頭。 ▲ 下面是一個(gè)示例事件

    2024年01月20日
    瀏覽(44)
  • kafka生產(chǎn)者發(fā)送消息報(bào)錯(cuò) Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected

    kafka生產(chǎn)者發(fā)送消息報(bào)錯(cuò) Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected

    報(bào)這個(gè)錯(cuò)誤是因?yàn)閗afka里的配置要修改下 在config目錄下 server.properties配置文件 這下發(fā)送消息就不會一直等待,就可以發(fā)送成功了

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包