Kafka概念和關於springboot配置Kafka引數詳解
1.基本概念
*Producer:
訊息生產者,往Topic釋出訊息
*Consumer:
訊息消費者,往Topic取訊息並處理
*Consumer Group:
topic 可以廣播給不同的group,一個group只能有一個consumer消費訊息
*Broker(物理概念):
Kafka叢集,每個節點為一個broker
*Topic(邏輯概念):
訊息類別,對資料進行區分、隔離
*Partition(物理概念):
Kafka儲存的基本單位,一個Topic資料會被分散儲存在多個Partition,每個Partition是有序的;
一個Partition只會在一個broker上;
消費者的數目<=Partition數目
*Replication:(副本)
同一個Partition可能會有多個Replication,多個Replication資料是一樣的;
基本單位是Partition;
讀和寫都是在Leader;
Follower實時複製Leader資料
*Replication Leader:
負責Partition上與Producer和Consumer的互動,一個Partition只有一個Leader
2.基本結構
3.特點
多分割槽、多副本、多訂閱者、基於Zookeeper排程
高吞吐量、低延遲、高併發、時間複雜度為O(1)
資料可持久化、容錯性、訊息自動平衡
4.Springboot配置kafka引數詳解
#原始資料kafka讀取
kafka.consumer.servers=IP:9092,IP:9092(kafka消費叢集ip+port埠)
kafka.consumer.enable.auto.commit=true(是否自動提交)
kafka.consumer.session.timeout=20000(連線超時時間)
kafka.consumer.auto.commit.interval=100(自動提交時間間隔)
kafka.consumer.auto.offset.reset=latest(實時生產,實時消費,不會從頭開始消費)
kafka.consumer.topic=result(消費的topic)
kafka.consumer.group.id=test(消費組)
kafka.consumer.concurrency=10(設定消費執行緒數)
#協議轉換後儲存kafka
kafka.producer.servers=IP:9092,IP:9092(kafka生產叢集ip+port埠)
kafka.producer.topic=result(生產的topic)
kafka.producer.retries=0
kafka.producer.batch.size=4096
kafka.producer.linger=1
kafka.producer.buffer.memory=40960