线上生产环境,经常莫名其妙隔一段时间丢失文件末尾的一部分数据😂,很是尴尬,业务大致的流程如下:
数据收集服务将文件落地后,将会将体积超过1G的目前正在使用的文件及时移动压缩归档,其实问题点就在这里,由于单行的日志数据平均在8m上下,所以Flume收集效率并不是很高,导致我在检查文件体积达标时进行迁移动作后,未能考虑到Flume是否收集完毕,导致Flume的FD丢失,从而导致隔三差五丢失文件尾部的不定数量的数据。
解决方案
- 更改文件流转策略,使用双Buffer机制,以两个文件体积达标为触发归档屏障,归档上一个文件,保留当前文件直至下一个文件体积达标。