專案中對kafka有所使用,但一直都是根據公司內部wiki提供的demo來寫的,對kafka有一定了解,但是可能不夠系統,全面;於是最近找時間瀏覽了一下官網對kafka的介紹,翻譯如下:
kafka是乙個具備很強容錯能力和實時處理能力的分布式流資料平台。
kafka可在以下場景中應用:基於流資料的發布訂閱訊息系統、基於流資料的高效非同步通訊中介軟體、基於流資料的高可用分布式儲存;可以替代傳統的訊息佇列和企業級訊息系統;
核心api有四類:
生產者api
一般生產者發布資料到topic(後面會介紹topic),
消費者api
消費(處理)發布到topic的資料
流api
(暫時沒研究明白,這裡先跳過,後面的文章繼續寫)
連線api
用於kafka和其他系統如mysql、mogodb、hbase等進行資料互動;
客戶端與伺服器的通訊使用的是基於tcp的簡單,高效的並且與語言無關的tcp協議!
乙個主題(topic)就是一類資料或者記錄的名字;主題支援多個訂閱者訂閱,即乙個主題可以被零個,乙個或者多個消費者消費,處理;
乙個主題會被分成好多個partition,每乙個partition維護著乙個log;主題中每乙個partition的記錄都有乙個順序的id 記作:offset 偏移量;
kafka集群記錄了所有發布的訊息(記錄),無論是否被消費(有一種配置保留時長的機制);實際上唯一的元資料保留在消費者那裡,元資料僅僅記錄了消費者在partition的便宜量,或者消費記錄的id;這樣以來,消費就可以由消費者自己控制。消費者可以設定這個偏移量。
主題被分為patition的意義在於兩方面:乙個是資料橫向擴充套件行,另乙個是消費的併發效能的提公升;
每乙個partition的資料在kafka集群中都是有備份的。每乙個partition都有乙個server作為leader,其他的作為follower;leader負責讀寫請求,follower負責同步leader的資料; 每乙個伺服器都扮演乙個或多個partition的leader角色,和一些個partition的follower角色,有利於負載均衡。
kafka快速入門(官網)
tar xvf kafka 2.12 2.5.0.tgz2.啟動 確保先啟動zookeeper export servers zookeeper 3.4.5 cdh5.14.0 bin zkserver.sh start啟動kafka server bin kafka server start.sh...
10 10 010 簡介 官網 官網翻譯
netty是 乙個非同步事件驅動的網路應用程式框架,用於快速開發可維護的高效能協議伺服器和客戶端。netty是乙個nio客戶端伺服器框架,可以快速輕鬆地開發協議伺服器和客戶端等網路應用程式。它極大地簡化並簡化了tcp和udp套接字伺服器等網路程式設計。快速簡便 並不意味著最終的應用程式會受到可維護性...
Robolectric Shadows 官網翻譯
robolectric 通過建立乙個包含真實android 框架 的執行時環境來進行工作。這意味著,當你的測試或被測試 呼叫到android框架時,你會獲得更真實的體驗,因為這跟在實際裝置上執行的大部分 都是相同的。然而還是有一些限制 native code 源 android源 不能在你的開發機器...