时间:2021-07-01 10:21:17 帮助过:25人阅读
客户跟我们合作快一年了,随着业务的增长,机器也在增长,刚刚开始的时候没有人去关注在多台机器上怎么查看日志,因为刚刚开始的时候才有2台应用服务器,现在光是GlassFish(web app) 就有25台,还有JMS的服务器/消息收发 12台,现在30几台机器光是查看日志就
客户跟我们合作快一年了,随着业务的增长,机器也在增长,刚刚开始的时候没有人去关注在多台机器上怎么查看日志,因为刚刚开始的时候才有2台应用服务器,现在光是GlassFish(web app) 就有25台,还有JMS的服务器/消息收发 12台,现在30几台机器光是查看日志就能忙死,就好比你电脑中打开了30个窗口,需要一个一个查看,你说能不杯具吗?
现在有 30几台机器,将来也许还会更多,但我们需要查看Java程序在每台机器上运行的情况,如果还跟以前一样的方式似乎不太可行了,需要想想其他办法。
所以设想出3种方案:
1.通过Log4J JDBC插件直接写入 数据库,
2.通过Log4J JMS 插件先向JMS服务器发送消息,JMS服务器接收到消息以后,再向数据库写入
3.通过改装后的 Log4J MongoDB插件 向 MongoDB数据库写入
这样,我们只需要查看一台机器上的log数据就可以知道每台机器的运行状态,将来需要对日志进行分析的话还可以进行二次开发,并且操作方便,可扩展性强。
所以最后选择了第三种向MongoDB写入,从以往大量的测试和经验中得到的实践告诉我们MongoDB和MySQL在执行大量的插入数据的过程中MongoDB更有效。
目前采用了这样的技术架构,如图所示:
查看大图请点击这里
下载测试代码,请点击这里
相关文章:
MongoDB 客户端工具,不断收集ing(图)
MongoDB Java ORM 的设想
mongodb 入门 介绍
MongoDB 集群
MongoDB 主(Master)/从(Slave)数据同步
口水:
这个想法和实践要感谢 Jozef Sevcik 先生和他的开源项目给我带来的灵感,我上面提供的代码例子也发送给Jozef Sevcik 先生的邮箱了,并且很快得到了他的回复,他在来信中说道:
Hello H.E,
I'm sorry for delayed response.
Thank you for your contribution, I'm glad to see people using the project are contributing code back, great !
I'll review your changes during this weekend and let you know,
Thanks,
Jozef
这位国外友人说话非常客气,呵呵
–end–
原文地址:MongoDB与Log4J的日志集中化管理, 感谢原作者分享。