寻找高性能分布式可扩展解决方案来存储大量日志消息。我们有多个并发日志源(=服务器)。
有趣的是性能至关重要如果日志系统性能更好,我们甚至愿意丢失一小部分(比如说最多 2%)的日常消息。
我们希望使用在线算法每天处理日志消息,因此我们不需要任何花哨的关系数据库。我们只想按顺序运行数据并计算一些汇总和趋势。
这就是我们所需要的:
- 至少 98% 的消息必须被保存。丢失几条消息不是问题。
- 一旦存储了消息,就必须可靠地存储它(持久性,又称为 ACID 中的 D - 因此基本上需要复制)
- 多种来源。
- 消息必须按顺序存储,但不需要精确排序(我们期望任何两个相隔几秒的消息都按正确的顺序排列,但彼此接近的消息可以按任意顺序排列)
- 我们必须能够按顺序处理每日数据(理想情况下采用某种可靠的方式,如 map-reduce,这样可以处理机器故障并重新启动发生故障的节点上的处理)
任何 RDBMS 在这里肯定都不是一个选择,因为它保证了太多(对于这个任务来说是不必要的)属性。
答案1
答案2
分布式Splunk设置可以满足您的需求,但听起来您有大量的日志数据;它是根据每天索引的数据量进行许可的,所以并不便宜。