Voldemort Python客户端问题

时间:2011-10-06 20:24:32

标签: python client voldemort

我遇到了Python客户端连接到我使用voldemort设置的多个服务器的问题。我使用的是Python 2.6.1和Voldemort 0.81。具体来说,如果我有一个双节点集群,我似乎没有连接到第一台服务器的任何问题,但连接到第二台服务器可能会有很大的问题。以下是我正在使用的配置设置(如果这导致了一些问题):

    cluster.xml:
    <cluster>
    <name> my_cluster </name>
      <server>
        <id>0</id>
        <host>1.2.3.4</host>
        <http-port>8000</http-port>
        <socket-port>6666</socket-port>
        <admin-port>6667</admin-port>
        <partitions>0,1,2,3</partitions>
      </server>
      <server>
        <id>1</id>
        <host>1.2.3.5</host>
        <http-port>8000</http-port>
        <socket-port>6666</socket-port>
        <admin-port>6667</admin-port>
        <partitions>4,5,6,7</partitions>
      </server>
    </cluster>

    stores.xml:
    <stores>
      <store>
        <name>multiple_nodes</name>
        <replication-factor>2</replication-factor>
        <preferred-reads>2</preferred-reads>
        <required-reads>2</required-reads>
        <preferred-writes>2</preferred-writes>
        <required-writes>2</required-writes>
        <persistence>bdb</persistence>
        <routing>client</routing>
        <key-serializer>
          <type>string</type>
        </key-serializer>
        <value-serializer>
          <type>string</type>
        </value-serializer>
      </store>
    </stores>

    server.properties:
    node.id = 0 #(or 1)
    max.threads = 100
    http.enable = true
    socket.enable = true
    bdb.write.transactions = true
    bdb.flush.transactions = true
    enable.nio.connector = true
    request.format = vp3
    store.configs = voldemort.store.bdb.BdbStorageConfiguration, voldemort.store.readonly.ReadOnlyStoreageConfiguration

我也遇到过这个问题,因为json编码的值和持久性只是在内存中,所以我不相信存在的问题。我试过这两台机器在同一个机架上(它们之间的通信是微不足道的),并在单独的机架中(仍然应该是快速,但不是直接连接)。这是我在Python中得到的:

    >>>import voldemort
    >>>client0 = voldemort.StoreClient('multiple_nodes', [('0', 6666)])
    #That works just fine
    >>>client1 = voldemort.StoreClient('multiple_nodes', [('1', 6666)])
    WARNING:root:Metadata bootstrap from 1:6666 failed: Invalid Argument.
    line 278 in _bootstrap_metadata #(I'm omitting a few other lines here)
    voldemort.client.VoldemortException:'All bootstrap attempts failed'

如果我在服务器'0'运行的机器上,并且我在运行服务器'1'的机器上,我也会得到相同的结果。我甚至尝试从一个客户端ala连接到两台服务器:

    >>>client = voldemort.StoreClient('multiple_nodes', [('0', 6666), ('1', 6666)])

这偶尔可以工作(虽然,它可能会在测试过程中废弃),但偶尔会失败并发出类似于“警告:root:Metadata bootstrap从1:6666失败:无效参数”的警告,同时仍然给我一个客户端反对。

有关如何解决此问题的任何建议?我通常喜欢我见过的单节点集群性能,并希望扩展到多个节点。

0 个答案:

没有答案