kafka為什么那么快 JAVA面試如何保證消息不被重復(fù)消費?如何保證消息消費的冪等性?
JAVA面試如何保證消息不被重復(fù)消費?如何保證消息消費的冪等性?我沒事,來這里玩,開始在各種網(wǎng)絡(luò)上尋找技術(shù)信息,之后以“頭條”為主。從尋找信息到交朋友。因為我沒有想到時代的高度落后。只是在心里想,無法
JAVA面試如何保證消息不被重復(fù)消費?如何保證消息消費的冪等性?
我沒事,來這里玩,開始在各種網(wǎng)絡(luò)上尋找技術(shù)信息,之后以“頭條”為主。從尋找信息到交朋友。因為我沒有想到時代的高度落后。只是在心里想,無法實現(xiàn)現(xiàn)實
如何搭建kafka?該如何學(xué)習(xí)kafka?
百度很多
卡夫卡刪除數(shù)據(jù)有兩種方式
根據(jù)時間,刪除過期消息一段時間后
根據(jù)消息大小,刪除超過一定大小的最舊數(shù)據(jù)
Kafka delete data的最小單位:segment
Kafka delete data主邏輯:Kafka源代碼
def cleanuplog(){debug(”beging log cleanup。。。)var總計=0 val開始時間=時間.毫秒For(log
Kafka在一段時間內(nèi)(配置文件設(shè)置)調(diào)用cleanuplogs一次,刪除所有需要刪除的日志數(shù)據(jù)。
Cleanupexpiredsegments負責(zé)清除超時數(shù)據(jù)
private def Cleanupexpiredsegments(log:log):int={val startms=時間.毫秒log.deleteOldSegments文件(開始時間->上次修改時間>log.config.retentions保留)}
cleanupsegmenttomaintainsize負責(zé)清理大于大小的數(shù)據(jù)私有def cleanupsegmentstomaintainsize(log:log):int={if(log.config.retentionSize文件=0){差異-=段.尺寸真}否則{假}log.deleteOldSegments文件(應(yīng)該刪除)}