我的需求是汇总 Web 应用程序服务器的实时统计信息。 例如:
- 完成了多少内容类型 X 的请求
- 处理类型Y的请求需要多长时间
等等。
此数据必须完全在内存中,而不是在文件中,以获得最佳性能。它不会记录每个请求,而只会存储各个方面的计数器。
我知道的最简单的方法是将值存储在类似 SQL 的表中并执行类似 SQL 的查询。好处是索引是现成的,无需开发工作。我猜是一些嵌入式 Java 数据库,例如 Apache Derby会做这项工作。
另一种方法是为每个“索引列”实现集合(比如列表)和哈希表。这样就全部用 Java/Scala collections API 完成了,但实际上我必须自己实现索引机制,测试它,维护它等等。
所以我的问题是您认为哪种方式更可取,是否还有其他方式可以轻松快速地实现此功能?
谢谢。
最佳答案
我会选择H2 database ,我对它有非常积极的体验,性能也很好。
您确定 SQL 数据库非常适合您的需求吗?您是否看过 javamelody ,看看它是否适合您的需求,或者如果它不适合您,请查看 JRobin用于滚动数据库实现。
关于java - Java/Scala内存统计数据库如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438731/