PoolTimeoutException when connecting to Cassandra via Astyanax

I am trying to connect to a local cassandra using astyanax but am constantly getting a PoolTimeoutException. I can connect to the cassandra using a wedge or clinic. Any idea what I'm doing wrong?

Thanks.

My code is:

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() 

An exception:

 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) 
+6
source share
5 answers

We also had this problem. For us, this turned out to be a version issue with libthrift. Version 0.7.0 worked. Version 0.6.1 did not. Check your path to the class and see ... Good luck.

-td

+2
source

Another problem is that you are inserting data into one node, and you have a threadpool of 50 and only 1 connection per host, you will get the same, so you need to balance the number of threads / host in certain situations, ok.

+2
source

Attempting to connect through the wrong port will also give this error. See this discussion.

+1
source

You need to install Apache Thrift , for me it works with installing these applications:

Boost
libevent
Thrift

Happy coding :)

0
source

Do the following in cassandra.yaml

  • Check out rpc_address
  • Check rpc_port
  • Set start_rpc to true
0
source

Source: https://habr.com/ru/post/921059/


All Articles