原文地址:https://kafka.apache.org/0101/documentation.html#majordesignelements
我們?cè)O(shè)計(jì)的 Kafka 能夠作為統(tǒng)一的平臺(tái)來處理大型公司可能擁有的所有實(shí)時(shí)數(shù)據(jù)。 為了做到這一點(diǎn),我們不得不考慮一個(gè)相當(dāng)廣泛的用例。
它必須具有高吞吐量來支持大量事件流,例如實(shí)時(shí)日志聚合。
它需要通過大量數(shù)據(jù)積壓來處理,以便能夠支持從離線系統(tǒng)定期進(jìn)行數(shù)據(jù)加載。
系統(tǒng)必須有比較低的延遲分發(fā)機(jī)制,才能支持傳統(tǒng)的消息系統(tǒng)的使用。
我們希望能夠支持可分區(qū)的,分布式的,實(shí)時(shí)的數(shù)據(jù)反饋處理,并創(chuàng)建和分發(fā)新的反饋。 這激勵(lì)了我們的分區(qū)和消費(fèi)者模式。
最后,如果流是反饋給其他系統(tǒng)的,系統(tǒng)需要能在機(jī)器宕機(jī)的時(shí)候提供容錯(cuò)保障。
為了支持這些使用情景,我們需要設(shè)計(jì)一個(gè)更類似于數(shù)據(jù)庫日志系統(tǒng),而不是傳統(tǒng)的消息系統(tǒng)那樣,具有更多獨(dú)特特性的系統(tǒng)。