1

当我们很少调用 voldeMortStoreClient.getAll() 方法时,我们遇到了以下异常。这几天工作正常。在那之后,我开始每天很少遇到这些异常,并且每天都在增加。后来该池中的所有连接都变为无效并且所有请求都收到此异常。

服务器版本:1.10.24 集群大小:1

voldemort.store.InsufficientOperationalNodesException: 1 get alls required, but 0 succeeded. Failing nodes : []
at voldemort.store.routed.action.PerformSerialGetAllRequests.execute(PerformSerialGetAllRequests.java:197)
at voldemort.store.routed.Pipeline.execute(Pipeline.java:212)
at voldemort.store.routed.PipelineRoutedStore.getAll(PipelineRoutedStore.java:497)
at voldemort.store.routed.PipelineRoutedStore.getAll(PipelineRoutedStore.java:418)
at voldemort.store.DelegatingStore.getAll(DelegatingStore.java:59)
at voldemort.store.DelegatingStore.getAll(DelegatingStore.java:59)
at voldemort.store.stats.StatTrackingStore.getAll(StatTrackingStore.java:133)
at voldemort.store.serialized.SerializingStore.getAll(SerializingStore.java:122)
at voldemort.store.DelegatingStore.getAll(DelegatingStore.java:59)
at voldemort.store.versioned.InconsistencyResolvingStore.getAll(InconsistencyResolvingStore.java:57)

服务器端配置:

商店.xml:

<stores>
<store>
  <name>test</name>
  <persistence>bdb</persistence>
  <description>test</description>
  <owners>test</owners>
  <routing-strategy>consistent-routing</routing-strategy>
  <routing>client</routing>
  <replication-factor>1</replication-factor>
  <required-reads>1</required-reads>
  <required-writes>1</required-writes>
  <key-serializer>
    <type>string</type>
  </key-serializer>
  <value-serializer>
    <type>string</type>
  </value-serializer>
</store>
</stores>

服务器属性

node.id=0
# configs
admin.enable=true
admin.max.threads=40
bdb.cache.evictln=true
bdb.cache.size=12GB
bdb.checkpoint.interval.bytes=2147483648
bdb.checkpointer.off.batch.writes=true
bdb.cleaner.interval.bytes=15728640
bdb.cleaner.lazy.migration=false
bdb.cleaner.min.file.utilization=0
bdb.cleaner.threads=1
bdb.enable=true
bdb.evict.by.level=true
bdb.expose.space.utilization=true
bdb.lock.nLockTables=94
bdb.minimize.scan.impact=true
bdb.one.env.per.store=true
enable.server.routing=false
enable.verbose.logging=false
http.enable=true
nio.connector.selectors=100
num.scan.permits=2
request.format=vp3
restore.data.timeout.sec=1314000
scheduler.threads=24
slop.frequency.ms=300000
socket.enable=true
storage.configs=voldemort.store.bdb.BdbStorageConfiguration, voldemort.store.readonly.ReadOnlyStorageConfiguration
stream.read.byte.per.sec=209715200
stream.write.byte.per.sec=78643200

集群.xml

<cluster>
        <name>myprodcluster</name>
        <server>
                <id>0</id>
                <host>192.168.1.10</host>
                <http-port>8081</http-port>
                <socket-port>6666</socket-port>
                <admin-port>7777</admin-port>
                <partitions>0, 1</partitions>
        </server>
</cluster>

客户端配置:

voldemort.max.per.node.connection=500
voldemort.connection.timedout=5000
voldemort.socket.timedout=10000
voldemort.idle.connection.timedout=10

用于创建商店客户端的 Spring xml

<bean id="config" class="voldemort.client.ClientConfig">
        <constructor-arg>
            <props>
                <prop key="bootstrap_urls">${voldemort.url}</prop>
                <prop key="max_connections">${voldemort.max.per.node.connection}</prop>
                <prop key="connection_timeout_ms">${voldemort.connection.timedout}</prop>
                <prop key="idle_connection_timeout_minutes">${voldemort.idle.connection.timedout}</prop>
                <prop key="socket_timeout_ms">${voldemort.socket.timedout}</prop>
            </props>
        </constructor-arg>
    </bean>


    <bean id="clientFactory" class="voldemort.client.SocketStoreClientFactory" destroy-method="close">
        <constructor-arg  index="0" ref="config" />
    </bean>


    <bean id="storeClient" factory-bean="clientFactory" factory-method="getStoreClient">
        <constructor-arg value="${voldemort.store.name}" />
    </bean>

你能帮我解决这个问题吗

谢谢, 阿南德

4

0 回答 0