1. 程式人生 > >Kafka概念和關於springboot配置Kafka引數詳解

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