首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Astyanax连接到Cassandra时的PoolTimeoutException

通过Astyanax连接到Cassandra时的PoolTimeoutException
EN

Stack Overflow用户
提问于 2012-07-22 14:50:16
回答 5查看 3.8K关注 0票数 7

我正在尝试使用astyanax连接到本地的cassandra,但总是收到PoolTimeoutException。我可以使用cli或hector客户端连接到cassandra。你知道我做错了什么吗?

谢谢。

我的代码:

代码语言:javascript
复制
val context = new AstyanaxContext.Builder()
        .forCluster("cluster")
        .forKeyspace(keyspace)
        .withAstyanaxConfiguration(
                new AstyanaxConfigurationImpl()
                    .setDiscoveryType(NodeDiscoveryType.NONE)
        )
        .withConnectionPoolConfiguration(
                new ConnectionPoolConfigurationImpl("ConnPool")
                    .setPort(9160)
                    .setMaxConnsPerHost(1)
                    .setMaxBlockedThreadsPerHost(1)
                    .setSeeds("127.0.0.1:9160")
                    .setConnectTimeout(10000)
        )
        .withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
        .buildKeyspace(ThriftFamilyFactory.getInstance())
    context.start()
    return context.getEntity()

例外:

代码语言:javascript
复制
Exception in thread "main" java.lang.RuntimeException: com.netflix.astyanax.connectionpool.exceptions.PoolTimeoutException: PoolTimeoutException: [host=127.0.0.1(127.0.0.1):9160, latency=10004(10004), attempts=1] Timed out waiting for connection
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$7.getNextBlock(ThriftColumnFamilyQueryImpl.java:652)
at com.netflix.astyanax.thrift.ThriftAllRowsImpl$1.hasNext(ThriftAllRowsImpl.java:61)
at scala.collection.JavaConversions$JIteratorWrapper.hasNext(JavaConversions.scala:574)
at scala.collection.Iterator$class.foreach(Iterator.scala:772)
at scala.collection.JavaConversions$JIteratorWrapper.foreach(JavaConversions.scala:573)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:73)
at scala.collection.JavaConversions$JIterableWrapper.foreach(JavaConversions.scala:587)
at  at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:60)
at scala.App$$anonfun$main$1.apply(App.scala:60)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:76)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
at scala.App$class.main(App.scala:60)
at Caused by: com.netflix.astyanax.connectionpool.exceptions.PoolTimeoutException: PoolTimeoutException: [host=127.0.0.1(127.0.0.1):9160, latency=10004(10004), attempts=1] Timed out waiting for connection
at com.netflix.astyanax.connectionpool.impl.SimpleHostConnectionPool.waitForConnection(SimpleHostConnectionPool.java:201)
at com.netflix.astyanax.connectionpool.impl.SimpleHostConnectionPool.borrowConnection(SimpleHostConnectionPool.java:158)
at com.netflix.astyanax.connectionpool.impl.RoundRobinExecuteWithFailover.borrowConnection(RoundRobinExecuteWithFailover.java:60)
at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:50)
at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:229)
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$7.getNextBlock(ThriftColumnFamilyQueryImpl.java:623)
EN

回答 5

Stack Overflow用户

发布于 2012-09-10 10:37:04

另一个问题是,如果您将数据集中到一个节点中,并且您有一个50个线程池,并且每个主机只有一个连接,那么您将获得相同的结果,因此在某些情况下,您还必须平衡线程/主机的数量。

票数 3
EN

Stack Overflow用户

发布于 2012-08-09 04:30:58

我们也遇到了这个问题。对我们来说,这被证明是libthrift的版本问题。版本0.7.0起作用了。0.6.1版则不支持。检查您的类路径并查看...祝好运。

-td

票数 2
EN

Stack Overflow用户

发布于 2013-06-12 02:23:08

尝试通过错误的端口进行连接也会出现此错误。请参阅this讨论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11598281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档