当我们很少调用 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>
你能帮我解决这个问题吗
谢谢, 阿南德