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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 名詞 無論是kafka集群還是producer和consumer都依賴于zookeeper集群保存一些meta信息,來保證系統可用性 * Topic :消息根據Topic進行歸類 * Producer:發送消息者 * Consumer:消息接受者 * broker:已發布的消息保存在一組服務器中,稱之為Kafka集群。集群中的每一個服務器都是一個代理(Broker). 消費者可以訂閱一個或多個主題(topic),并從Broker拉數據,從而消費這些已發布的消息。 * Zookeeper:依賴集群保存meta信息 * Consumer Group (CG):這是kafka用來實現一個topic消息的廣播(發給所有的consumer)和單播(發給任意一個consumer)的手段。一個topic可以有多個CG。topic的消息會復制(不是真的復制,是概念上的)到所有的CG,但每個partion只會把消息發給該CG中的一個consumer。如果需要實現廣播,只要每個consumer有一個獨立的CG就可以了。要實現單播只要所有的consumer在同一個CG。用CG還可以將consumer進行自由的分組而不需要多次發送消息到不同的topic * Partition:為了實現擴展性,一個非常大的topic可以分布到多個broker(即服務器)上,一個topic可以分為多個partition,每個partition是一個有序的隊列。partition中的每條消息都會被分配一個有序的id(offset)。kafka只保證按一個partition中的順序將消息發給consumer,不保證一個topic的整體(多個partition間)的順序,partition是有主從概念的,主partition負責寫入數據和讀取數據 * Offset:kafka的存儲文件都是按照offset.kafka來命名,用offset做名字的好處是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件即可。當然the first offset就是00000000000.kafka * segment:每個partition在broker中是一個文件夾,文件夾中有很多segment用來保存數據.好處在于刪除歷史數據時方便快捷 ![](https://box.kancloud.cn/0693942d4ce4eda7acc6b210bef4edb8_323x223.png) # 核心API * Producer API 發布消息到1個或多個topic(主題)。 * Consumer API 來訂閱一個或多個topic,并處理產生的消息。 * Streams API 充當一個流處理器,從1個或多個topic消費輸入流,并生產一個輸出流到1個或多個輸出topic,有效地將輸入流轉換到輸出流。 * Connector API允許構建或運行可重復使用的生產者或消費者,將topic連接到現有的應用程序或數據系統。例如,一個關系數據庫的連接器可捕獲每一個變化 # 架構 ![](https://box.kancloud.cn/04c90d5f13087558e5c315ddd1717e92_945x461.png) 1. Producer :消息生產者,就是向kafka broker發消息的客戶端; 2. Consumer :消息消費者,向kafka broker取消息的客戶端; 3. Topic(主題) :可以理解為一個隊列。屬于特定類別的消息流稱為主題,數據存儲在主題中,主題被拆分成分區,每個這樣的分區包含不可變有序序列的消息。分區被實現為具有相等大小的一組分段文件。 4. Broker :一臺kafka服務器就是一個broker。一個集群由多個broker組成。一個broker可以容納多個topic; 5. Partition:為了實現擴展性,一個非常大的topic可以分布到多個broker(即服務器)上,一個topic可以分為多個partition,每個partition是一個有序的隊列。partition中的每條消息都?? ?會被分配一個有序的id(offset)。kafka只保證按一個partition中的順序將消息發給consumer,不保證一個topic的整體(多個partition間)的順序; 6. Partition offset(分區偏移):kafka的存儲文件都是按照offset.kafka來命名,用offset做名字的好處是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件即可。當然the first offset就是00000000000.kafka。 7. Replicas of partition(分區備份),副本只是一個分區的備份。 副本從不讀取或寫入數據。 它們用于防止數據丟失。 8. Consumer Group (CG):這是kafka用來實現一個topic消息的廣播(發給所有的consumer)和單播(發給任意一個consumer)的手段。一個topic可以有多個CG。topic的消息會復制(不是真的復制,是概念上的)到所有的CG,但每個partion只會把消息發給該CG中的一個consumer。如果需要實現廣播,只要每個consumer有一個獨立的CG就可以了。要實現單播只要所有的consumer在同一個CG。用CG還可以將consumer進行自由的分組而不需要多次發送消息到不同的topic **注意** * 同一個消費組同時只能有一個消費者消費消息 * 同一個消費組中的消費者不會重復消費 * 一個分區的數據可以被2個不同的消費者消費,但是需要在不同的消費者組中
                  <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>

                              哎呀哎呀视频在线观看