【发布时间】:2014-02-13 16:26:26
【问题描述】:
我在从 hector 客户端插入数据时出现间歇性异常。
客户端正在捕获以下异常。
Exception: me.prettyprint.hector.api.exceptions.HectorException: All host pools marked down. Retry burden pushed out to client.
at me.prettyprint.cassandra.connection.HConnectionManager.getClientFromLBPolicy(HConnectionManager.java:393)
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:249)
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:97)
at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243)
at com.snapdeal.coms.service.CommonCassandraService.saveObject(CommonCassandraService.java:245)
at com.snapdeal.coms.timemachine.service.COMSCassandraService.saveUpdatedUploadId(COMSCassandraService.java:91)
at com.snapdeal.coms.timemachine.event.ProductStateUpdateEventHandler.handleEvent(ProductStateUpdateEventHandler.java:38)
at com.snapdeal.coms.timemachine.TimeMachine.onEvent(TimeMachine.java:106)
at com.snapdeal.coms.kafka.KafkaEventListenerContainer$KafkaConsumer.safeRun(KafkaEventListenerContainer.java:158)
at com.snapdeal.coms.kafka.KafkaEventListenerContainer$KafkaConsumer.run(KafkaEventListenerContainer.java:175)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
我检查了 Cassandra 日志并同时低于异常。
DEBUG [Thrift:230] 2014-02-13 12:31:34,785 CustomTThreadPoolServer.java (line 209) Thrift transport error occurred during processing of message.
org.apache.thrift.transport.TTransportException
at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129)
at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:22)
at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:24)
下面是我的 cassandra verion 和 hector 客户端版本
Cassandra-version : 1.2.11
Hector client : 1.0-2
目前我的 cassandra 客户端中只配置了 1 个节点。 thrift_framed_transport_size_in_mb 在我的 cassandra.yaml 中配置为 15mb。问题是我间歇性地遇到这个异常,因为一些事件没有被 cassandra 捕获。
【问题讨论】: