3 1 初識 Kafka 的邏輯結構和物理結構

2021-10-01 10:34:53 字數 1531 閱讀 6789

·kafka 相關 物理結構

·參考文件

從邏輯結構上來說,kafka 可以簡單的分為 producer、consumer、consumer group、kafka集群、topics 。其中生產者負責將 record 放入到 topics,消費者從 topics 中拉取訊息。

延伸出的幾個問題

kafka 集群如果由多個 kafka 服務組成,如何儲存 topic?

在乙個 kafka集群中,producer 生產一條訊息,然後推送到 某乙個 topic 中,儘管集群中可能有多台機器組成,從而造成每乙個 kafka 服務中都有這個 topic,但是,一條訊息只會儲存到其中乙個 kafka 服務的 topic 中。

那麼有人可能會問了,如果這個服務掛了怎麼辦,訊息不就丟了嗎?kafka 支援主備模式,從服務可以備份主服務中的記錄,但是不會對外提供服務,除非主服務掛了,從服務會取而代之。

乙個 topic 可以被多個consumer 消費嗎?

其實 kafka 的消費者有乙個消費者組的概念,同乙個組內可以有多個 consumer,當然也可以只有乙個consumer,以組為單位,乙個topic 允許多個組進行消費,但是每乙個組只允許其中乙個消費者進行消費,即如果你想實現廣播的功能,可以建立多個consumer組,如果只是單播,則使用乙個組即可。

物理結構無外乎機器、儲存檔案這些。

在kafka 中有這麼幾個概念,broker、partition、segment

broker 表示伺服器

broker 表示物理的機器,比如一台或者多台伺服器

partiton 表示乙個資料夾

上面有說到,kafka 集群中的每乙個服務都會有乙個同名的 topic,它們共同對外提供這個 topic 的儲存和消費服務,而此時每乙個服務上同名 topic 儲存的記錄總和才是這個 topic的所有的記錄,那麼在物理層面,這個其實被叫做 partition,每乙個partition 都是乙個資料夾,該資料夾內部儲存具體的資料。

需要說明的是,預設乙個 kafka 服務只包含乙個 partition,可以通過配置增加個數。

partiton 由乙個或多個 segment 組成

segment 包含具體的記錄資料檔案和索引檔案,是最小的物理儲存實體。

無論是讀或者寫,每次都只允許操作乙個 segment。

延伸思考

所以綜合上面的資訊來看,我們可以得到下面的對應關係。

即,乙個機器可以啟動多個 kafka 服務;

乙個kafka 服務可以配置多個 partition;

乙個 partition 可以包含多個 segment

[2]、《分布式訊息中介軟體實踐》

初識資料結構 物理結構和邏輯結構

1.邏輯結構 所謂邏輯結構就是資料與資料之間的關聯關係,準確的說是資料元素之間的關聯關係。注 所有的資料都是由資料元素構成,資料元素是資料的基本構成單位。而資料元素由多個資料項構成。邏輯結構有四種基本型別 集合結構 線性結構 樹狀結構和網路結構。也可以統一的分為線性結構和非線性結構。2.物理結構 資...

邏輯結構和物理結構

1 邏輯結構分為集合結構,線性結構 1對1 樹形結構 1對多 圖形結構 多對多 2 物理結構分為順序儲存結構 基於連續記憶體 鏈式儲存結構 基於節點 注 b樹也是樹形結構,是二叉搜尋樹的擴充套件。二叉搜尋樹節點本身只有乙個元素,有兩個孩子。b樹是多路查詢樹,節點本身有多個元素,交叉有多個指標指向多個...

邏輯結構和儲存結構

資料結構到底是什麼?什麼是儲存結構?邏輯結構指的是資料間的關係,而儲存結構是邏輯結構的儲存映像。通俗的講,可以將儲存結構理解為邏輯結構用計算機語言的實現。常見的儲存結構有順序儲存 鏈式儲存 索引儲存以及雜湊儲存 雜湊表 邏輯結構和儲存結構的區別 這兩者並不衝突,乙個指的是資料之間的關係,而另乙個指這...