我的系统可以从大约90-100个Web服务器收集实时Apache日志数据。我还定义了一些url模式。
现在我想构建另一个系统,根据这些日志更新每个模式的发生时间。
我曾考虑使用MySQL来存储统计数据,并按语句更新它们:
“更新table
设置count
= count + 1 ...... ”,
但是我担心MySQL对来自这么多服务器的数据会很慢。此外,我正在寻找一些更具可扩展性和简单性的数据库/存储解决方案。 (作为RDBMS,MySQL支持太多我在这种情况下不需要的东西)。你有什么主意吗 ?
答案 0 :(得分:1)
Apache Cassandra是一个高性能的列族商店,可以非常好地扩展。学习曲线有点陡峭,但处理大量数据时没有问题。
更简单的解决方案是键值存储,如Redis。它比Cassandra更容易理解。 Redis似乎只支持主从复制作为扩展方式,因此主服务器的写入性能可能成为瓶颈。 Riak具有分散的体系结构,没有任何中心节点。它没有单点故障也没有任何瓶颈,因此更容易扩展。
答案 1 :(得分:0)
键值存储似乎是我系统的合适解决方案。快速查看这些存储后,我对竞争条件问题感到担忧,因为会有很多客户试图在同一个密钥上执行这些步骤:
之前我和Tokyo Cabinet合作过,他们有'addint'方法,与我的情况完美匹配,我想知道其他存储是否有类似功能?我没有选择东京内阁/暴君,因为我遇到了一些关于其可扩展性和数据稳定性的问题(例如修复损坏的数据......)