免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

我的 Kafka 旅程 - Consumer

kafka采用Consumer消費(fèi)者Pull主動(dòng)拉取數(shù)據(jù)的方式,當(dāng)Broker無(wú)數(shù)據(jù)時(shí),消費(fèi)者空轉(zhuǎn) 。Kafka并不刪除已消費(fèi)的消息,各自獨(dú)立的消費(fèi)者可消費(fèi)同一個(gè)Broker分區(qū)數(shù)據(jù) 。
消費(fèi)流程1、消費(fèi)者發(fā)起網(wǎng)絡(luò)消費(fèi)請(qǐng)求

  1. # 每批次最小抓取設(shè)置(推薦1字節(jié))

  2. fetch.min.bytes

  3. # 每批次最大抓取大小設(shè)置(推薦500ms)

  4. fetch.max.bytes

  5. # 未達(dá)到大小的超時(shí)設(shè)置(推薦50M)

  6. fetch.max.wait.ms

2、拉取數(shù)據(jù)到內(nèi)存消費(fèi)隊(duì)列中
  1. # 單次拉取最大消息條數(shù)設(shè)置(推薦500條)

  2. max.poll.records

2.1、反序列化處理(對(duì)應(yīng)了Producer端的序列化動(dòng)作)
2.2、攔截器處理(如:匯總統(tǒng)計(jì)記錄)
3、數(shù)據(jù)的后續(xù)處理保存等的消費(fèi)端動(dòng)作 。
offset當(dāng)一個(gè)消費(fèi)者掛掉或重啟后,是否還記得消費(fèi)到的位置了?offset解決了此問(wèn)題 。

對(duì)于每一個(gè)topic,都會(huì)維持一個(gè)分區(qū)日志,分區(qū)中的每一個(gè)記錄都會(huì)分配一個(gè)Id來(lái)表示順序,稱之為offset,offset用來(lái)唯一的標(biāo)識(shí)分區(qū)中每條記錄,并將每次的消費(fèi)位置提交到topic中 。消費(fèi)者恢復(fù)啟動(dòng)后接著按序消費(fèi)數(shù)據(jù) 。
自動(dòng)提交
  1. # 開(kāi)啟自動(dòng)提交

  2. enable.auto.commit = true

  3. # 每次提交間隔(推薦5秒)

  4. auto.commit.interval.ms = 5000

手動(dòng)提交先關(guān)閉自動(dòng)提交后,在Consumer客戶端的代碼中,通過(guò)調(diào)用方法函數(shù)提交,通常的方法名:
  1. # 同步提交,等提交完成才可下一次再消費(fèi)

  2. .CommitSync

  3. # 異步提交,可直接進(jìn)行下一個(gè)消費(fèi),也有可能提交失敗

  4. .CommitAync

指定消費(fèi)在Consumer客戶端的代碼中,手動(dòng)指定offset的位置進(jìn)行消費(fèi),關(guān)聯(lián)到的方法函數(shù)名:
  1. # 按指定時(shí)間得出offset值

  2. .offsetsForTimes

  3. # 按指定offset值繼續(xù)消費(fèi)

  4. .seek

初始策略

    經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀