kafka 內部原理及實例


                                                             kafka介紹

Kakfa起初是由LinkedIn公司開發的一個分布式的消息系統,它使用Scala編寫,后成為Apache的一部分,支持多種客戶端語言(C++,JAVA,python)

目前越來越多的開源分布式處理系統如Cloudera、Apache Storm、Spark等都支持與Kafka集成。

具有高水平擴展性、高容錯性、訪問速度快、分布式等特性

                                                           內部原理深度解析

1.producer: 生產者發布消息到 kafka 集群。生產者根據指定算法將消息發送到partition中
2.consumer:消費者從 kafka 集群中消費消息。kafka中跟別的消息隊列不一樣的是consumer端記錄offset(偏移量)
3.broker:  每一個broker可以理解為kafka 集群中一台服務器。
4.topic:    kafka 集群的消息類別,即 kafka 是面向 topic 的。
5.partition:    每個 topic 包含一個或多個 partition。 Partition都是有序的,每個個consumer以partition為單位進行消費的。
6.Consumer group:每個 consumer 都屬於一個 consumer group,在同一個 consumer group 中的一個 Consumer 不能消費同一個partition,
但不同consumer group Consumer 還是可以消費同一個partition
7.replica:    partition 的副本,保障 partition 的高可用。
8.leader:    replica 中的一個角色, producer 和 consumer 只跟 leader 交互。
9.follower:   replica 中的一個角色,從 leader 中復制數據。
10.zookeeper:   kafka 通過 zookeeper 管理元數據(meta) 信息,集群管理,Leader 選舉

 

         

                                                                              常用命令

./bin/zookeeper-server-start.sh ./config/zookeeper.properties &      // 起動kafka 之前要先啟動zookeeper
./bin/kafka-server-start.sh ./config/server.properties &             //起動kafka
./bin/kafka-server-stop.sh        停掉kafka
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topicname    創建tipoc  replication-factor:指有同個備份
./bin/kafka-topics.sh --list --zookeeper localhost:2181   查看tipic
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topicnametest    生產端生產消息
./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic topicnametest --from-beginning   消費者消息消息,從頭消費

 

 

                                                                           kafka 實例

  生產端代碼

 

消息端代碼

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM