2016-03-11 28 views
0

如果我的Riak集群中充满了5台机器(riak1,riak2 ...),我应该创建一个带有单个主机的RiakClient或5台机器的完整列表以实现冗余,是否存在节点成员的自动发现?Riak python,如何正确连接到服务器池?

RiakClient(protocol='http', host='riak1', http_port=8098) 

RiakClient(protocol='http', nodes=[{ 
    host:'riak1', 
    host:'riak2', 
    host:'riak3', 
    host:'riak4', 
    host:'riak5' 
}]) 

是否有任何替代方案,例如在了Riak群集节点的前方的负载平衡器主机?

回答

0

是否有任何特别的原因你使用HTTP而不是协议缓冲区?

在任何情况下,nodes必须是“节点配置列表,其中每个配置是包含密钥”主机“,”http_port“和”pb_port“(http://basho.github.io/riak-python-client/client.html)的字典。

即:

RiakClient(protocol='http', nodes=[ 
    {'host': 'riak1', 'http_port': 8098}, 
    {'host': 'riak2', 'http_port': 8098}, 
    {'host': 'riak3', 'http_port': 8098}, 
    {'host': 'riak4', 'http_port': 8098}, 
    {'host': 'riak5', 'http_port': 8098}]) 

是的,你可以在群集中了Riak前面使用负载平衡器。实际上,无论Riak集群中有多少个节点,您的客户端都将连接到一台主机,这是一个好主意。添加/删除/替换节点不会影响客户端。

但是,如果您选择不要,则必须显式传递Riak节点的完整列表,以便在客户端实现冗余和负载平衡(“在请求新连接时选择一个随机节点”)。

+0

HTTP用于调试目的。 PBC不太适合人类阅读:) – Guibod