<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                * 消費者通過訂閱消息并消費消息 * Offset的管理是基于消費組(group.id)的級別 * <mark>每個Partition只能由同一消費組內的一個Consumer來消費</mark> * <mark>每個Consumer可以消費多個分區</mark> * 消費過的數據仍會保留在Kafka中 * 消費者不能超過分區數量 * 消費模式 * 隊列:所有消費者在一個消費組內 * 發布/訂閱:所有消費者被分配到不同的消費組 * 提交方式 * 自動提交:自動提交的優點是方便,但是可能會重復處理消息。 * 手動提交:又分為同步提交commitSync和異步提交commitAsync。 ![](https://img.kancloud.cn/33/7d/337dc9a8888daa6e50dc4f1ac1210d2a_1171x851.png) Consumer 負責訂閱(消費)主題并處理消息。Consumer 負責維護到 Broker 的 TCP 連接以便獲取數據,在一個 Partition 中每一個記錄的 Offset 是該記錄的 唯一標識,即每一個 Offset 唯一標識當前 Partition 中的一條記錄,同時 Offset 也可以標識 Consumer 在 Partition 中的位置(Position)。對 Consumer 來講,這個 位置有兩種含義:Current Offset 和 Committed Offset。 <br/> **1. Current Offset** <mark>保存在 Consumer 客戶端中</mark>,它表示 Consumer 希望收到的下 一條消息的序號。它僅僅在 `poll()`方法中使用,例如,Consumer 第一次調用 `poll()` 方法后收到了 20 條消息(offset:0-19),那么 Current Offset 就被設置為 20。這樣 Consumer 下一次調用 poll()方法時,Kafka 就知道應該從序號為 20 的消息開始讀 取。這樣就能夠保證每次 Consumer poll 消息時,都能夠收到不重復的消息。 <br/> **2. Committed Offset** <mark>保存在 Broker 上</mark>,它表示 Consumer 已經確認消費過的 消息的序號。主要通過 `commitSync` 和 `commitAsync` API 來操作。 例如,如果 Committed Offset 為 0,Consumer 通過 `poll()`方法收到 20 條消息 后,此時 Current Offset 就是 20,經過一系列的邏輯處理后,并沒有調用 `consumer.commitAsync()`或 `consumer.commitSync()`來提交 Committed Offset,那么 此時 Committed Offset 依舊是 0,下一次 Consumer 重啟后調用 poll()繼續從 0 開 始消費。 <br/> 又如,如果一個 Consumer 消費了 5 條消息(`poll` 并且成功 `commitSync`)之 后宕機了,重新啟動之后它仍然能夠從第 6 條消息開始消費,因為 Committed Offset 已經被 Kafka 記錄為 5。 <br/> 可以將多個 Consumer 設置為同一個 Consumer Group,組內的所有 Consumer 協調在一起來消費訂閱主題的所有分區。但是<mark>每個分區只能由同一個消費組內的 一個 Consumer 來消費</mark>。很明顯,<mark>Consumer Group 的作用是為了實現多個 Consumer 并行消費一個 Topic</mark>。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看