我们应该登录同一个数据库还是单独的数据库

时间:2018-07-11 19:54:01

标签: logging database-design mongodb-query viewmodel view-model-pattern

到目前为止,我正在使用文件系统进行日志记录,现在打算迁移到数据库系统。

我打算将相同的数据库和不同的集合(NoSQL术语)/表用于日志。对于记录器,使用相同的数据库是安全的还是更好地使用不同的数据库?

是否需要索引,用户可以查询以获取从今天到今天之间的所有日志,并且在当前屏幕中仅显示X条日志,单击下一步按钮将提取另外X条日志。 在一天之内加载用户要求的所有数据并将其保存在内存中,以便下一个和回叫前端可以询问各自的数据是否很好?

如果您中的任何人已经有记录器的数据库连接,请提出最佳实践和大多数失败方案。

1 个答案:

答案 0 :(得分:0)

我已经看到相当多的记录器针对ElasticSearch运行(实际上是整个ELK堆栈)。如果要实施新的解决方案,则需要考虑一些事情:

  1. 记录器必须快速。它可能不会降低应用程序的速度。如果您自己实现,循环缓冲区和多线程处理是一个好的开始。
  2. 将有很多数据。必须使用单独的数据库。这样一来,您就可以稍后将其移至存储成本较低的服务器上,或根据您的需求或其他需求进行扩展。
  3. 日志数据是基于时间的。设计存储时,您可能希望每小时/每天进行一次分区,以便于操作。
  4. 阅读同样。您期望数据按时间排序,最需要最新数据。您的索引应该可以容纳它。
  5. 分页和缓存之类的技术内容取决于数据库供应商。我对MongoDB不太了解,但是我认为分页应该适当。因此,单击“下一步”,您只需从上一个查询中请求一些额外的行。

还有一点:个人而言,我不会花时间去实施新的东西。我将安装一个ELK实例,配置Log4J(或任何应用程序记录器),并花更多时间教服务台人员使用新环境。