<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          《Kafka成神之路》- 三圖搞懂分區(qū)、組消費模式

          共 1128字,需瀏覽 3分鐘

           ·

          2020-12-05 21:58


          ? 點擊上方“JavaEdge”,關(guān)注公眾號

          設(shè)為“星標(biāo)”,好文章不錯過!

          1 分區(qū)消費模式


          直接由客戶端(任一語言編寫)使用Kafka提供的協(xié)議向服務(wù)器發(fā)送RPC請求獲取數(shù)據(jù),服務(wù)器接受到客戶端的RPC請求后,將數(shù)據(jù)構(gòu)造成RPC響應(yīng),返回給客戶端,客戶端解析相應(yīng)的RPC響應(yīng)獲取數(shù)據(jù)。

          Kafka支持的協(xié)議眾多,使用比較重要的有:

          • 獲取消息的FetchRequest和FetchResponse

          • 獲取offset的OffsetRequest和OffsetResponse

          • 提交offset的OffsetCommitRequest和OffsetCommitResponse

          • 獲取Metadata的Metadata Request 和 Metadata Response

          • 生產(chǎn)消息的 ProducerRequest 和 ProducerResponse



          1.1 分區(qū)消費模式服務(wù)器端源碼過程


          ? ? ? ? ? ? ? ? ? ? ? ??

          2 組消費者模式




          2.1 流程


          3 總結(jié)




          3.1 分區(qū)消費模式特點


          • 指定消費topic、partition和offset通過向服務(wù) 器發(fā)送RPC請求進行消費

          • 需要自己提交offset

          • 需要自己處理各種錯誤,如:leader切換錯誤

          • 需自行處理消費者負(fù)載均衡策略




          3.2 組消費模式特點


          • 最終也是通過向服務(wù)器發(fā)送RPC請求完成的(和分區(qū)消費模式一樣)

          • 組消費模式由Kafka服務(wù)器端處理各種錯誤,然后將消息放入隊列再封裝為迭代器(隊列為FetchedDataChunk對象),客戶端只需在迭代器上迭代取出消息

          • 由Kafka服務(wù)器端周期性的通過scheduler提交當(dāng)前消費的offset,無需客戶端負(fù)責(zé)

          • Kafka服務(wù)器端處理消費者負(fù)載均衡

          • 監(jiān)控工具Kafka Offset Monitor和Kafka Manager均是基于組消費模式


          所以,盡可能使用組消費模式,除非需要

          • 自己管理offset,比如想實現(xiàn)消息投遞的其他語義

          • 自己處理各種錯誤,根據(jù)自己業(yè)務(wù)的需求

          往期推薦


          大廠如何解決數(shù)值精度/舍入/溢出問題

          大廠數(shù)據(jù)庫事務(wù)實踐-事務(wù)生效就能保證正確回滾?

          線上問題事跡(一)數(shù)據(jù)庫事務(wù)居然都沒生效?

          硬核干貨:HTTP超時、重復(fù)請求必見坑點及解決方案

          給大忙人們看的Java NIO教程之Channel





          目前交流群已有?800+人,旨在促進技術(shù)交流,可關(guān)注公眾號添加筆者微信邀請進群


          喜歡文章,點個“在看、點贊、分享”素質(zhì)三連支持一下~

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品产在线播放内射 | 青娱乐久久 | 国产成人无码免费看片 | 午夜老司机福利 | 免费无码婬片AAAA片在线蜜芽 |