kafka的ack機制:在kafka發送數據的時候,每次發送消息都會有一個確認反饋機制,確保消息正常的可以被收到java
若是是同步模式:ack機制可以保證數據的不丟失,若是ack設置爲0,風險很大,通常不建議設置爲0node
producer.type=sync
request.required.acks=1git
若是是異步模式:經過buffer來進行控制數據的發送,有兩個值來進行控制,時間閾值與消息的數量閾值,若是buffer滿了數據尚未發送出去,若是設置的是當即清理模式,風險很大,必定要設置爲阻塞模式github
結論:producer有丟數據的可能,可是能夠經過配置保證消息的不丟失vim
producer.type=async
request.required.acks=1
queue.buffering.max.ms=5000
queue.buffering.max.messages=10000
queue.enqueue.timeout.ms = -1
batch.num.messages=200瀏覽器
經過offset commit 來保證數據的不丟失,kafka本身記錄了每次消費的offset數值,下次繼續消費的時候,接着上次的offset進行消費便可服務器
partition的副本機制app
源碼下載地址:異步
https://github.com/yahoo/kafka-manager/async
下載源碼,而後上傳解壓準備編譯
cd /export/servers/kafka-manager-1.3.3.15
unzip kafka-manager-1.3.3.15.zip -d ../servers/
./sbt clean dist
編譯完成以後,咱們須要的安裝包就在這個路徑之下
/export/servers/kafka-manager-1.3.3.15/target/universal
須要下載源碼進行本身編譯,比較麻煩,不要本身編譯,已經有編譯好的版本能夠拿過來直接使用便可
將咱們編譯好的kafkamanager的壓縮包上傳到服務器並解壓
cd /export/softwares
unzip kafka-manager-1.3.3.15.zip -d /export/servers/
cd /export/servers/kafka-manager-1.3.3.15/
vim conf/application.conf
kafka-manager.zkhosts="node01:2181,node02:2181,node03:2181"
cd /export/servers/kafka-manager-1.3.3.15/bin
chmod u+x ./*
cd /export/servers/kafka-manager-1.3.3.15
nohup bin/kafka-manager -Dconfig.file=/export/servers/kafka-manager-1.3.3.15/conf/application.conf -Dhttp.port=8070 2>&1 &
==================================================
課程總結:
一、kafka的基本介紹
二、kafka與傳統消息隊列的比較
爲何業務系統用activeMQ:基於事務的保證
爲何大數據平臺用kafka:吞吐量大,速度快
三、kafka的組件模型的介紹: 搞定
producer:消息的生產者
topic:一類消息的集合
broker:服務器
consumer:消費者,消費topic當中的數據
partition:分區,一個topic由多個partition組成
segment:一個partition由多個segment組成
.log:數據文件
.index:數據的索引數據
四、kafka的安裝:搞定
五、kakfa命令行的使用 搞定
建立topic 模擬生產者 模擬消費者
六、kafka的java API 跑通就行
七、kafka的數據的分區策略:知道
第一種:指定分區號
第二種:沒有分區號,有了數據的key值,直接按照key取hashCode進行分區
第三種:沒有分區號,也沒有key值,輪循發送
第四種:自定義分區
八、kafka的配置文件的說明 瞭解
九、flume與kafka的整合 搞定
十、kakfa的監控工具的使用 儘可能安裝成功