如果我的Riak集群中装满了5台机器(riak1,riak2 ......),我是否应该使用单个主机创建RiakClient
或者为了实现冗余而创建5台机器的完整列表,是否有自动化发现节点成员?
RiakClient(protocol='http', host='riak1', http_port=8098)
或
RiakClient(protocol='http', nodes=[{
host:'riak1',
host:'riak2',
host:'riak3',
host:'riak4',
host:'riak5'
}])
是否有替代方案,例如riak集群节点前面的负载均衡器主机?
答案 0 :(得分:0)
您使用HTTP而不是协议缓冲区有什么特别的原因吗?
在任何情况下,{{1}}必须是"节点配置列表,其中每个配置都是一个包含密钥' host',' http_port' ,和' pb_port'" (http://basho.github.io/riak-python-client/client.html)。
那是:
{{1}}
是的,您可以在Riak群集前使用负载均衡器。实际上,无论Riak集群中有多少个节点,您的客户端都将连接到单个主机,这是一个好主意。添加/删除/替换节点不会影响客户端。
但是,如果您不选择,则必须明确传递完整的Riak节点列表,以便在客户端进行冗余和负载平衡("在请求新连接时选择随机节点&#34 ;)