kafka官网译文
項目中對kafka有所使用,但一直都是根據(jù)公司內(nèi)部wiki提供的demo來寫的,對kafka有一定了解,但是可能不夠系統(tǒng),全面;于是最近找時間瀏覽了一下官網(wǎng)對kafka的介紹,翻譯如下:
一句話概括kafka
kafka是一個具備很強容錯能力和實時處理能力的分布式流數(shù)據(jù)平臺。
kafka的應用場景
kafka可在以下場景中應用:基于流數(shù)據(jù)的發(fā)布訂閱消息系統(tǒng)、基于流數(shù)據(jù)的高效異步通信中間件、基于流數(shù)據(jù)的高可用分布式存儲;可以替代傳統(tǒng)的消息隊列和企業(yè)級消息系統(tǒng);
核心API
核心API有四類:
生產(chǎn)者API
一般生產(chǎn)者發(fā)布數(shù)據(jù)到topic(后面會介紹topic),
消費者API
消費(處理)發(fā)布到topic的數(shù)據(jù)
流API
(暫時沒研究明白,這里先跳過,后面的文章繼續(xù)寫)
連接API
用于kafka和其他系統(tǒng)如mysql、mogodb、hbase等進行數(shù)據(jù)交互;
通信協(xié)議
客戶端與服務器的通信使用的是基于TCP的簡單,高效的并且與語言無關的TCP協(xié)議!
主題和日志
一個主題(topic)就是一類數(shù)據(jù)或者記錄的名字;主題支持多個訂閱者訂閱,即一個主題可以被零個,一個或者多個消費者消費,處理;
一個主題會被分成好多個partition,每一個partition維護著一個log;主題中每一個partition的記錄都有一個順序的ID 記作:offset 偏移量;
kafka集群記錄了所有發(fā)布的消息(記錄),無論是否被消費(有一種配置保留時長的機制);實際上唯一的元數(shù)據(jù)保留在消費者那里,元數(shù)據(jù)僅僅記錄了消費者在partition的便宜量,或者消費記錄的ID;這樣以來,消費就可以由消費者自己控制。消費者可以設置這個偏移量。
主題被分為patition的意義在于兩方面:一個是數(shù)據(jù)橫向擴展行,另一個是消費的并發(fā)性能的提升;
每一個partition的數(shù)據(jù)在kafka集群中都是有備份的。每一個partition都有一個server作為leader,其他的作為follower;leader負責讀寫請求,follower負責同步leader的數(shù)據(jù); 每一個服務器都扮演一個或多個partition的leader角色,和一些個partition的follower角色,有利于負載均衡。
總結
- 上一篇: 十进制转n进制
- 下一篇: 解决tomcat中temp文件夹出现项目