-1

我们有日志系统,其中JMS服务器用于发送日志消息。一旦消息到达队列,队列接收器解析消息并插入到Oracle DB中。客户端进程生成的消息很大而且很多次,查询数据库需要很长时间。根原因是与消息生成相比,数据库插入非常慢(消息生成量非常大——平均每天 130 万条消息)。我想检查 MongoDB 是否适合这个系统而不是 Oracle。日志记录/异常模式非常简单,每个有 10/15 列。对于每条日志记录消息,我们附加事务数据(平均大小 50 到 100KB)如果存储和搜索(以及稍后清除)是仅涉及日志记录和例外,MongoDB 是更好的选择吗?(我也在这里读到使用 JMS 进行日志记录不是一个好的设计。

4

1 回答 1

0

如果您的数据每天都在增长,那么您当然可以考虑使用 MongoDB。

有两个主要原因。

根据您的要求,您并不太担心数据,因为它只是一条日志消息,即使您丢失了几条消息,也可能不是那么重要。关键是,如果您尝试跨文档进行事务,则默认情况下不会在 MongoDB 中发生。如果您没有任何此类事务,那么您最好使用 MongoDB,并且不会丢失任何消息。但请记住,MongoDB 操作本质上是文档中的原子操作。

由于它是一个日志记录,您可能希望添加一些非常适合 MongoDB 的列,因为它们完全是无模式的,并且您应该能够在需要时添加新元素而无需修补旧数据(不一定)。

随着数据的增长,您可以添加尽可能多的 Shard 服务器,并且您应该能够跨节点扩展(以水平方式)。

祝你好运!

于 2012-12-26T16:48:45.507 回答