<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 功能強大 支持多語言、二開方便! 廣告
                # Apache Kafka – 簡介 > 原文: [https://howtodoinjava.com/kafka/tutorial-introduction/](https://howtodoinjava.com/kafka/tutorial-introduction/) 從頭開始學習下載和設置 Apache Kafka 和內置的 zookeeper。 本教程適用于絕對的初學者,他們可以在長期學習 Kafka 的同時為他們提供一些技巧。 ## 1\. 什么是 Apache Kafka? Apache Kafka 是基于**發布/訂閱**消息傳遞系統的**分布式流平臺**。 Kafka 使用的另一個術語是“分布式提交日志”。 就像我們將事務性數據存儲在數據庫中一樣,以便以后可以檢索它以做出一些業務決策時,Kafka 還以消息形式存儲數據。 Kafka 中的數據按順序持久存儲,并可以確定性地讀取。 Kafka 的主要特征是其**伸縮能力**以及**使用數據復制來防止故障**的能力。 ![Overview_of_Apache_Kafka](https://img.kancloud.cn/4e/07/4e07be18fec76f81cd741debe4dd1e9c_800x597.png) #### 1.1 信息 Kafka 中數據單位**稱為消息**。 將此視為數據庫表中的一行。 按摩有兩個部分 – **鍵和主體**。 兩者都只是一個字節數組,Kafka 并沒有做任何神奇的讀取和理解這些字節的事情。 它可以是 XML,JSON,字符串或其他任何形式。 許多 Kafka 開發人員贊成使用 **Apache Avro** ,這是最初為 Hadoop 開發的序列化框架。 Kafka 不在乎并存儲所有內容。 鍵用于以更可控的方式將消息寫入分區。 Kafka 只是簡單地找到鍵的哈希值,并使用它來查找必須在其中寫入消息的分區號(邏輯并不是那么簡單,當然)。 這樣可以確保始終將具有相同鍵的消息寫入同一分區。 #### 1.2 批量 批量只是消息的**集合**,所有消息都針對*相同的主題和分區*生成。 郵件以批量的形式在網絡中移動。 這樣做是為了提高網絡利用率。 批量通常也被壓縮,以一些處理能力為代價提供更有效的數據傳輸和存儲。 #### 1.3 主題 Kafka 主題與數據庫表或文件系統中的文件夾非常相似。 主題還分為多個分區。 例如,考慮我們有一個名為“`activity-log`”的主題,該主題有 3 個分區,它們的名稱分別為: * `activity-log-0` * `activity-log-1` * `activity-log-2` 當源系統將消息發送到`activity-log`主題時,可以基于負載和各種其他因素將這些消息(1-n)存儲在任一分區中。 此處,`message-1`僅存儲在一個分區中。 同樣,`message-2`將存儲在相同或另一個分區中。 沒有消息將存儲在給定主題的多個分區中。 請注意,如果所有消息之間都有順序,則 Kafka 僅確保將消息順序存儲在單個分區中。 無法保證存儲在多個分區中的所有消息的順序。 **流**被視為存儲特定類別數據的單個主題,而不管其分區數如何。 與其他系統一起使用時,Kafka 將此主題(例如`activity-log`)顯示為這些消息流的生產者或消費者。 #### 1.4 Broker 和集群 一臺 Kafka 服務器稱為 Broker。 Broker 從生產者客戶端接收消息,分配和維護其偏移量,并將消息存儲在存儲系統中。 它還為用戶提供服務,響應對分區的提取請求并響應已提交到磁盤的消息。 如果硬件支持良好,則單個 Broker 可以輕松處理每秒數千個分區和數百萬條消息。 KafkaBroker 旨在作為集群的一部分進行運營。 在 Broker 群集中,一個 Broker 還將充當**群集控制器**,該控制器負責管理操作,包括為 Broker 分配分區并監視 Broker 故障。 ## 2\. 優勢 * Kafka 能夠提供**高吞吐量**,同時處理**多個生產者**,它們向單個主題或多個主題發送數據集。 這使得 Kafka 可以處理來自前端系統的大量事件/消息,這些事件/消息記錄了頁面瀏覽,鼠標跟蹤或用戶行為。 * Kafka **多個用戶**讀取任何單個消息流而不會互相干擾。 每個消息可以讀取 N 次,因為**消息是持久的**。 * 持久的消息還意味著消費者可以處理“歷史數據”。 不過,Kafka 也支持“實時處理”。 這也意味著,如果某些消費者在一段時間內處于脫機狀態,則他們不會丟失任何數據并在重新連接時獲取數據。 * Kafka 具有高度的可伸縮性,可以在運行時添加或刪除博克(節點)。 無需停止集群。 * Kafka 提供出色的性能,并且能夠在支持的硬件或基礎架構中每秒處理數百萬條記錄。 ## 3\. 總結 這篇文章主要是對 Kafka 的外觀進行非常高級別的概述。 當涉及到更詳細的細節時,您將閱讀很多項目。 在下一篇文章中,我們將學習下載并啟動 Kafka Broker,并將運行一些初學者命令。 學習愉快! 參考文獻:[Kafka 網站](https://kafka.apache.org/intro)
                  <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>

                              哎呀哎呀视频在线观看