全量缓存
- 背景及目标
当前我们的数据流向是这样的:Hdfs->redis->程序内部缓存->缓存。存在redis性能不足。读写过于频繁。写频繁主要是从hdfs一条一条的读取, 没有批量写入。因为程序还不太稳定, 经常会重启,内部缓存被清空, 内存不大命中率低等原因, 导致读取效率不高。所以我们需要一个缓存解决以上这些问题,它得具有这些特征:
1.1 独立进程 --- 解决引擎重启数据丢失的问题
1.2 批量写入 -- 支持从hdfs中读取批量数据, 批量入库
1.3 全量缓存 -- 如果直接对接hdfs的话, 自己就相当于数据源头, 需要缓冲全量数据。(假设如果只缓存一部分数据,查找没有命中该缓存,去hdfs检索该数据? 几乎不可能的事情)
- 功能
- 缓存数据
- 从hdfs, kafka拉取数据同步数据
- 支持c++, java接口从缓存中获取,删除数据, 甚至过期数据