本文链接:http://blog.csdn.net/ddjohn/article/details/43523983
首先确保你正确地安装了riak,当你使用Riak Fast Track在开发或者测试环境快速创建3个节点,我们建议所有的生产环境至少部署5个节点,以此来确保你从riak的高可用性原则中受益.
部署五个或者更多的节点将提供最佳的性能并且随着集群扩展而增加.因为riak是通过增加节点来实现横向扩展,所以你会发现随着集群越来越庞大,性能,可靠性和吞吐量会越来越好. 较小规模的部署会危及系统的容错性和可用性:“健全”的复制要求(我们默认为三份),在较小的集群中,单点故障意味着复制的需求很可能得不到满足。这将导致性能下降并且增加数据丢失的风险.另外,小于5个节点的集群将使得75%至100%的节点需要响应每个请求,这将导致不必要的负载从而降低性能.
我们进一步看下三个节点和四个节点的情况.
容错性和性能在3个节点的集群下:
为了确保集群总是响应读写请求,riak建议一个理性的复制策略:在三个不同节点上保留三分副本.Riak的默认配置是至少需要四个节点,以确保没有一个单点保存任何特定的数据片段的多个副本。但这完全可能通过更改设置来确保在一个三个节点的集群中,三个副本存在于独立的节点中.另外你还有可能碰到单点故障或网络故障引起的副本放置问题.
当一个三节点的集群碰到节点实效或者网路分区时,默认的复制要求仍然是至少有三个节点来完成但此时只有两个或一个节点在工作.这会导致性能下降,并且有数据丢失的风险.
容错性和性能在4个节点的集群下:
由于复制需要用到3个节点,在一个拥有4个节点的集群中,针对特定数据的每一个请求都需要从75%至100%的节点中得到响应,这可能会降低集群的性能.如果碰到单点故障或者网络分区,你会碰到我们上面提到的问题.
如果改变默认的复制配置?
如果想在你的项目中使用正确的副本数量,只需要确保在集群中使用N+2个节点(N是上述原因的副本数量).
如果有5个节点:
当你的riak集群节点增加到5个时,集群中每个节点响应请求的百分比下降.riak做横向扩展就是基于这点的.遇到单点故障时,其他节点的数量足够大,可以确保你的数据不会丢失.
所以当你在测试或者开发环境中使用集群时,可以用较小规模的节点数量,但是当在生产环境中,节点的数量务必要大于等于5.
英文链接:http://basho.com/why-your-riak-cluster-should-have-at-least-five-nodes/