之前开发的一个系统,由于需要通过http方式,不断的接收message,并将message insert to DB,为了确保整个流程顺利进行,做了如下设计:
1、先将message写入文件,通过log4j记录,每分钟产生一个log
2、每5分钟处理一次log,将为处理的message insert to DB
以上方案完全可以应对目前的流量,但是在设计中却有一个漏洞,即对于产生的log的处理问题。由于产生的log一直没有处理,就这样run了1年的时间,直到最近发现log4j不能写文件,而且没有exception。
注意:以上系统部署在64位的linux系统中。
目前已经优化了设计方案,增加了对log的处理,问题没有再发生。
描述以上问题,仅仅是为了提醒那些设计系统的兄弟们,在考虑系统功能时,请务必考虑非功能设计,以及DB housekeeping的处理。
1、先将message写入文件,通过log4j记录,每分钟产生一个log
2、每5分钟处理一次log,将为处理的message insert to DB
以上方案完全可以应对目前的流量,但是在设计中却有一个漏洞,即对于产生的log的处理问题。由于产生的log一直没有处理,就这样run了1年的时间,直到最近发现log4j不能写文件,而且没有exception。
注意:以上系统部署在64位的linux系统中。
目前已经优化了设计方案,增加了对log的处理,问题没有再发生。
描述以上问题,仅仅是为了提醒那些设计系统的兄弟们,在考虑系统功能时,请务必考虑非功能设计,以及DB housekeeping的处理。