五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

Kafka基本原理

Kafka原理介紹

Kafka原理介紹

  • Kafka結(jié)構(gòu)
  • 生產(chǎn)者(Producer)將消息發(fā)布到Kafka主題(Topic)上,消費(fèi)者(Consumer)訂閱這些主題并消費(fèi)這些消息。在Kafka集群上一個(gè)服務(wù)器稱為一個(gè)Broker。對(duì)于每一個(gè)主題,Kafka集群保留一個(gè)用于縮放、并行化和容錯(cuò)性的分區(qū)(Partition)。每個(gè)分區(qū)是一個(gè)有序、不可變的消息序列,并不斷追加到提交日志文件。分區(qū)的消息每個(gè)也被賦值一個(gè)稱為偏移順序(Offset)的序列化編號(hào)。

    各模塊功能介紹如下:

    Broker

    在Kafka集群上一個(gè)服務(wù)器稱為一個(gè)Broker。

    Topic/主題

    一個(gè)Topic就是一個(gè)類別或者一個(gè)可訂閱的條目名稱,也即一類消息。一個(gè)主題可以有多個(gè)分區(qū),這些分區(qū)可以作為并行的一個(gè)單元。

    Partition/分區(qū)

    是一個(gè)有序的、不可變的消息序列,這個(gè)序列可以被連續(xù)地追加—個(gè)提交日志。在分區(qū)內(nèi)的每條消息都有一個(gè)有序的ID號(hào),這個(gè)ID號(hào)被稱為偏移(Offset),這個(gè)偏移量可以唯一確定每條消息在分區(qū)內(nèi)的位置。

    Producer/生產(chǎn)者

    向Kafka的主題發(fā)布消息。

    Consumer/消費(fèi)者

    向Topic訂閱,并且接收發(fā)布到這些Topic的消息。

  • Kafka原理
  • 消息可靠性

    Kafka Broker收到消息后,會(huì)持久化到磁盤,同時(shí),Topic的每個(gè)Partition有自己的Replica(備份),每個(gè)Replica分布在不同的Broker節(jié)點(diǎn)上,以保證當(dāng)某一節(jié)點(diǎn)失效時(shí),可以自動(dòng)故障轉(zhuǎn)移到可用消息節(jié)點(diǎn)。

    高吞吐量

    Kafka通過以下方式提供系統(tǒng)高吞吐量:

    1、數(shù)據(jù)磁盤持久化:消息不在內(nèi)存中cache,直接寫入到磁盤,充分利用磁盤的順序讀寫性能。

    2、Zero-copy:減少IO操作步驟。

    3、數(shù)據(jù)批量發(fā)送:提高網(wǎng)絡(luò)利用率。

    4、Topic劃分為多個(gè)Partition,提高并發(fā)度,可以由多個(gè)Producer、Consumer數(shù)目之間的關(guān)系并發(fā)來讀、寫消息。Producer根據(jù)用戶指定的算法,將消息發(fā)送到指定的Partition。

    消息訂閱-通知機(jī)制

    消費(fèi)者對(duì)感興趣的主題進(jìn)行訂閱,并采取pull的方式消費(fèi)數(shù)據(jù),使得消費(fèi)者可以根據(jù)其消費(fèi)能力自主地控制消息拉取速度,同時(shí),可以根據(jù)自身情況自主選擇消費(fèi)模式,例如批量、重復(fù)消費(fèi),從尾端開始消費(fèi)等;另外,需要消費(fèi)者自己負(fù)責(zé)維護(hù)其自身消息的消費(fèi)記錄。

    可擴(kuò)展性

    當(dāng)在Kafka集群中可通過增加Broker節(jié)點(diǎn)以提供更大容量時(shí)。新增的Broker會(huì)向ZooKeeper注冊(cè),而Producer及Consumer會(huì)及時(shí)從ZooKeeper感知到這些變化,并及時(shí)作出調(diào)整。

Kafka開源增強(qiáng)特性

  • 支持監(jiān)控Topic級(jí)別的指標(biāo)

    支持監(jiān)控Topic級(jí)別的指標(biāo)包括:Topic輸入的字節(jié)流量、Topic輸出的字節(jié)流量、Topic拒絕的字節(jié)流量、Topic每秒失敗的fetch請(qǐng)求數(shù)、Topic每秒失敗的Produce請(qǐng)求數(shù)、Topic每秒輸入的消息條數(shù)、Topic每秒的fetch請(qǐng)求數(shù)和Topic每秒的produce請(qǐng)求數(shù)。

    支持監(jiān)控Topic級(jí)別的指標(biāo)包括:Topic輸入的字節(jié)流量、Topic輸出的字節(jié)流量、Topic拒絕的字節(jié)流量、Topic每秒失敗的fetch請(qǐng)求數(shù)、Topic每秒失敗的Produce請(qǐng)求數(shù)、Topic每秒輸入的消息條數(shù)、Topic每秒的fetch請(qǐng)求數(shù)和Topic每秒的produce請(qǐng)求數(shù)。

  • 支持查詢Broker ID與節(jié)點(diǎn)IP的對(duì)應(yīng)關(guān)系

    在Linux客戶端下,使用kafka-broker-info.sh查詢Broker ID與節(jié)點(diǎn)IP的對(duì)應(yīng)關(guān)系。

    在Linux客戶端下,使用kafka-broker-info.sh查詢Broker ID與節(jié)點(diǎn)IP的對(duì)應(yīng)關(guān)系。