? 1介评、在技術選型上看政,為什么要使用kafka,不使用rocketmq欺栗?
kafka是分布式日志存儲系統(tǒng).
1)kafka更容易大數(shù)據系統(tǒng)結合毫痕,例如我們用到的storm。
2)kafka比較熱門迟几,文檔比較全
3)能夠做到真正的保證數(shù)據不會丟失消请,不會重復,即使在節(jié)點down掉的情況下类腮。
2臊泰、介紹kafka
3、kafka安裝
4蚜枢、kafka使用(kafka的實踐)
二缸逃、需要注意的問題:
1、kafka的consumer數(shù)量不能超過partition的數(shù)量厂抽;另外如果有同一個groupid的consumer去消費消息需频,這個groupid的消息就會被消費掉從而讀不到消息。
2筷凤、kafka可以持久化一段時間的數(shù)據贺辰,通過下面的參數(shù)設置∏妒可以設置基于時間的饲化,也可以設置基于文件大小的
3、Kafka讀取特定消息的時間復雜度為O(1)吗伤,即與文件大小無關吃靠,所以刪除過期文件與提高Kafka性能無關。
4足淆、Kafka會為每一個Consumer Group保留一些metadata信息——當前消費的消息的position巢块,也即offset。這個offset由Consumer控制巧号。正常情況下Consumer會在消費完一條消息后遞增該offset族奢。當然,Consumer也可將offset設成一個較小的值丹鸿,重新消費一些消息越走。因為offet由Consumer控制,所以Kafka broker是無狀態(tài)的,它不需要標記哪些消息被哪些消費過廊敌,也不需要通過broker去保證同一個Consumer Group只有一個Consumer能消費某一條消息铜跑,因此也就不需要鎖機制,這也為Kafka的高吞吐率提供了有力保障骡澈。
5锅纺、kafka使用默認的副本因子是1,也就是沒有副本肋殴,因為:
在kafka的開發(fā)者看來副本似乎是一個附加的東西囤锉,沒有大量的使用,這有很大的缺點:slave不活躍护锤,吞吐量受到嚴重影響官地,它需要的精確的手動配置等
三、遇到的問題
1蔽豺、無法發(fā)送或者消費消息