天天看點

Kafka

kafka是一種消息隊列,主要用來處理大量資料狀态下的消息隊列;

kafka像其他mq一樣,也有自己的基礎架構,主要存在生産者producer、kafka叢集broker、消費者consumer、注冊消息zookeeper.

producer:消息生産者,向kafka中釋出消息的角色。

consumer:消息消費者,即從kafka中拉取消息消費的用戶端。

consumer group:消費者組,消費者組則是一組中存在多個消費者,消費者消費broker中目前topic的不同分區中的消息,消費者組之間互不影響,所有的消費者都屬于某個消費者組,即消費者組是邏輯上的一個訂閱者。某一個分區中的消息隻能夠一個消費者組中的一個消費者所消費

broker:經紀人,一台kafka伺服器就是一個broker,一個叢集由多個broker組成,一個broker可以容納多個topic。

topic:主題,可以了解為一個隊列,生産者和消費者都是面向一個topic

partition:分區,為了實作擴充性,一個非常大的topic可以分布到多個broker上,一個topic可以分為多個partition,每個partition是一個有序的隊列(分區有序,不能保證全局有序)

replica:副本replication,為保證叢集中某個節點發生故障,節點上的partition資料不丢失,kafka可以正常的工作,kafka提供了副本機制,一個topic的每個分區有若幹個副本,一個leader和多個follower

leader:每個分區多個副本的主角色,生産者發送資料的對象,以及消費者消費資料的對象都是leader。

follower:每個分區多個副本的從角色,實時的從leader中同步資料,保持和leader資料的同步,leader發生故障的時候,某個follower會成為新的leader。

繼續閱讀