Riak局限

时间:2013-11-22 07:56:20

标签: mysql database memcached riak

我的网站目前使用的系统中,特定帖子的描述来自memcache。如果memcache失败,系统将从数据库中提取相同的数据。 我希望完全从图片中删除数据库。为此,我正在考虑高可用性和容错数据存储,RIAK似乎符合要求。我希望将RIAK作为memcache的故障转移。

然而,该网站拥有大量流量,因此我想知道我需要多少台RIAK服务器。我的每日浏览量约为1.5亿次。

提前致谢!!!

2 个答案:

答案 0 :(得分:1)

鉴于您提供的信息,很难在这里给您一个具体的答案。上述1736 req / sec的假设在我看来太粗糙了,因为在高峰时间这个流量可能会高出10倍。因此,知道那段时间内每秒的请求数量会非常有趣。

由于您还在Riak前面使用memcached作为缓存,下一个问题将是您的缓存命中率如何 - 您将从memcached提供多少请求,有多少会命中您的数据库?

然后,它将在很大程度上取决于所使用的硬件,如果你期望在riak上有高读/写负载,那么SSD将是必须的。

在高负荷下有一些riak的经验(显着高于你的)我可以告诉你,请求的数量并不重要(令人惊讶的是riak可以处理的数量),但是你拥有的数据量更多riak和您存储的对象的大小。物体越大,Riak就越慢。如果你的对象肯定超过1MB,那么请不要考虑riak - 它不会有用。使用Riak时,拥有更少但更快的服务器肯定会更好。

如果你想选择riak,我肯定会建议你用jmeter或apache ab做一些重负荷测试,看看riak是否可以处理你的流量。 (即便如此 - 可能会慢慢淡化你的riak装置的流量) 这样你就可以百分百肯定,没有任何东西会在生产中爆发。

最后,请注意,没有软件是完美的。切换到Riak正在取代另一个野兽。但是,mySQL已经是一个已知的野兽了。如果你的MySQL集群出现问题,有很多人可以帮助你。如果您的Riak集群出现问题,您可能在网上找不到任何帮助 - 商业Riak支持非常昂贵。

答案 1 :(得分:0)

[EnvelopeMath] 150,000,000 / 24/3600 = 1736请求/秒[/ EnvelopeMath]

这肯定在Riak可以做的范围内,但强烈的答案仍然取决于对象大小,读/写%,您将存储的对象数量,均匀负载分布与高峰时间等等。 / p>

我会按照@ChristianDahlqvist的建议,设置一个5节点bitcask支持的Riak集群,看看它是否符合要求。如果您有任何疑问,请随时联系Riak Users Mailing list or the #riak IRC channel on freenode