<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Kafka 術語 * 消息(Record) * Kafka 中發布訂閱的對象是 `Topic`,可以為每個業務、應用、數據類型定義 Topic。 * 生產者(Producer) * 消費者(Consumer) * 客戶端(Clients):生產者、消費者統稱為客戶端 * 服務端 * Kafka 的服務器端:Broker 服務進程 * 一個 Kafka 集群由多個 Broker 組成 * Broker:負責接收和處理客戶端發送過來的請求 & 消息持久化 * 多個 Broker 進程能夠運行在同一臺機器上 * 但常見做法:將不同的 Broker 分散運行在不同的機器上 * 備份機制(Replication) * 備份思想:把相同的數據拷貝到多臺機器上 * 副本(Replica):Kafka 中稱這些相同的數據為副本 * 副本保存相同的數據 * 但有不通的角色和作用 * 領導者副本(Leader Replica) * 對外提供服務(i.e. 與客戶端進程交互) * 追隨者副本(Follower Replica) * 只追隨領導者副本數據 * 不對外提供服務 * 副本的工作機制 * Producer * 向 Leader Replica 寫消息 * Consumer * 從Leader Replica 讀消息 * Follower Replica * 向 Leader Replica 發送請求,獲取最新生產的消息 * 目的:與 Leader 保持同步 * 副本的優缺點 * 優點 * 保證數據的持久化 / 消息不丟失 * 缺點 * 不能解決伸縮性問題 * 伸縮性(Scalability) * 伸縮性問題:當 Leader Replica 副本積累太多以至于單臺 Broker 機器無法容納的問題 * 考慮將數據分割成多份保存在不同的 Broker 上 * 分區機制(Partitioning) * Kafka 將每個 Topic 劃分為多個分區(Partition) * 每個分區是一組有序的消息日志 * Producer 生產的每條消息只會發送到一個分區中 * Kafka 分區編號從 0 開始 * 副本是分區這個層級定義的,即對 Partition 實現副本機制 * 每個 Partition 可以配置 N 個副本,其中 1 個 Leader Replica,N-1 個 Follower Replica * Producer 向分區寫消息,每條消息在分區中的位置信息由一個叫`位移(Offset)`的數據來表征 * 分區位移從 0 開始 * 日志 * 追加寫 * 日志段 * 通過日志段進行回收 ### Broker 持久化數據 * Kafka 使用消息日志(Log)保存數據 * 一個日志 * 定義:磁盤上一個只能追加寫(Append-only)消息的物理文件 * Apped-only 避免了緩慢的隨機 IO 操作,改為性能更好的順序 IO 寫 * 回收磁盤 * 通過日志段(Log Segment)機制 * 當寫滿了一個日志段后,Kafka 會自動切分出一個新的日志段 * 同時將老日志段封存 * Kafka 在后臺通過定時任務,定期檢查老日志段是否可以刪除,從而回收磁盤 ### P2P 模式的實現 * P2P 指消息只能被下游一個消費者消費 * 消費者組(Consumer Group) * 通過飲用消費者組來實現 P2P * 定義:多個 Consumer 共同組成一個組來消費一組 Topic * 這組 Topic 中的每個 Partition 都只會被組內的一個 Consumer 消費 * e.g. 一個 Topic 被分 N 個 Partition,那么這個消費者組中可以有 N 個 Consumer,每一個 Consumer 消費一個 Partition * 分配后的 Partition 其他 Consumer 不能消費 * 引入消費者組的目的 * 提升消費端吞吐量(TPS) * 一個消費者實例(Consumer Instance) * 可以是業務 * 也可以是單個進程、線程 * Kafka 重平衡(Rebalance) * 當一個消費者組內某個 Consumer 實例掛了 * Kafka 通過自動檢測,將 Failed Consumer 實例之前負責的 Partition 轉移給其他活著的消費者 * 消費者位移(Consumer Offset) * 每個 Consumer 在消費中通過字段記錄它當前消費到了哪個 Partition 的哪個位置 * 每個 Consumer 都是不一樣的 * 上面位移表示 Partition 內消息的位置,是不同的,因此其也稱為分區位移 * 消費者位移可能隨時變化,類似一個指針 ### Kafka 的三層架構 * Topic * 每個 Topic 配置 M 個 Partition * Partition * 每個 Partition 配置 N 個副本 * 1 個 Leader Replica,對外提供服務 * N-1 個 Follower Replica,只提供消息冗余作用 * Record * 每個 Partition 包含若干 Record * 每個 Record 的位移從 0 開始,依次遞增 ### Kafka 提供高可用的手段總結 * Broker * Kafka 集群中每臺機器都會運行多個 Broker 進程 * 一臺機器掛了,其他機器的 Broker 依然能夠對外提供服務 * 備份機制 ### Follower Replica & MySQL * Kafka 的 Follower Replica 是不會對外提供服務的 * 相反的,MySQL 的從庫會對外提供讀服務 ![](https://img.kancloud.cn/06/db/06dbe05a9ed4e5bcc191bbdb985352df_1173x634.png)
                  <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>

                              哎呀哎呀视频在线观看