采集系统上云(业务程序会不断生成业务日志的学习总结和心得建议)
优采云 发布时间: 2022-03-24 05:02采集系统上云(业务程序会不断生成业务日志的学习总结和心得建议)
实际项目需求描述:
在业务系统的服务器上,业务程序会不断产生业务日志(如网站的页面访问日志)。
业务日志是用log4j生成的,会不断切出日志文件。
需要定期(比如每小时)从业务服务器的日志目录中检测出需要采集的日志文件(access.log无法采集),并发送到HDFS。
注意:可能有多个业务服务器(hdfs上的文件名不能直接使用日志服务器上的文件名)。
采集当天收到的日志应该放在hdfs的当前目录下。
采集完成的日志文件需要移动到日志服务器的备份目录中。
定期检查(每小时一次)备份目录,清除备份时长超过24小时的日志文件。
项目的一些学习总结和经验建议
规范说明1:代码中手写代码过多,如文件路径,无法无误编译,很难找到。
解决问题1:可以写一个属性资源文件,把路径存放在key上。
规范说明2:如果要读取资源文件,必须使用类加载器来加载。
规范说明3:访问对象有问题,应该使用单例设计模式——懒惰风格。
规范说明4:存在线程安全问题。为了避免死锁或重复使用新资源,静态代码块应该同步。
规范注释5:还应考虑资源密钥问题。可以新建一个类来保存key,这样在不容易找到错误路径时程序会提示错误。
规范说明6:每个项目、每个业务都要先写自己的流程,然后一步步写代码,再慢慢考虑其他异常,增加代码的健壮性。