日志系统与mongodb

90 篇文章 0 订阅
8 篇文章 0 订阅

refs:

mongodb csharp驱动

http://mongodb.github.io/mongo-csharp-driver/2.3/reference/driver/connecting/

mongodb client 工具 Robo 3T:

www.robomongo.org

https://docs.mongodb.com/manual/mongo/

refs4:

https://docs.mongodb.com/ecosystem/use-cases/storing-log-data/

问题:

在一个大并发的日志系统中,由于需要对每个设备链接进行日志记录,原来使用的是以设备名为文件名的多文件记录日志。

这样做导致磁盘读写频率很高,而且这些动作在链接的处理中,影响连接的效率。理想状况当然是把众多日志存到一个文件里,

类似log4j/log4net等,但这样不方便以设备为单位查看日志。

一)一种方案,以设备名为键值key,日志为value,存到字典中,满足一定容量后写磁盘。这其中需要一个是定时写磁盘,因为有些连接可能一直是比较少日志的;还有一种是满足一定大小日志开始写磁盘,防止内存使用过多而不够。

所以,定时器作为定时写机制,可以考虑设置为5分钟?一次,做2个字典,每次到时间替换写的字典。

另外在每个设备日志添加时,判断写value大小,满足1k或10k?时,清一次设备日志,写入磁盘。

是否会消耗过多内存???

二)方法一主要还是利用内存,把要写的东西缓存起来后一次写入磁盘。后来发现mongodb写入性能较佳,用并发写入似乎也可以,内存消耗比较厉害。于是改写磁盘为写mongodb。refs4中的链接即mongodb官方提供的一种应用场合,记录日志。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值