一 问题背景
数据写入丢失
二 疑点以及日志分析
(1)关键日志分析:
收到了相关的kafka消息,并且打印了日志,针对该kafka消息,处理并提交了。
针对链路的处理,是通过handler链处理的,查看nodeStore的链,发现写入只用了0ms,这个可能性不大,说明可能没有执行数据库操作。
21/10/18 17:46:40,563[DEBUG][bgp-ls-node-process-batch-commit]- Handler list with handler:NodeStoreServiceImpl@4f3a94ae cost:0ms.
三 代码走查分析
(1)因为NodeStore底层调用的是BatchStore,但是日志中显示,BatchStore是并没有开启批量模式.
public boolean addData(Object object) throws TopologyException {
if (autoCommit.get().isAutoCommit()) {
logger.debug("autoCommit is true, disable batch store. {}", object);
return save(object);
} else {
put(object);
if (stage.get().size() > batchStoreThreadhold) {
batchCommit();
}
}
return false;
}
(2)继续分析下重系统启动到kafka处理流程:



