首页 > 解决方案 > 线程“主”com.datastax.driver.core.exceptions.NoHostAvailableException 中的异常:所有主机尝试查询失败

问题描述

我正在尝试创建一个具有多个节点的远程集群,并在 Scala 中使用特定键空间打开会话。

我的 sbt:

name := "CassandraConnect"

version := "0.1"

scalaVersion := "2.13.2"

libraryDependencies ++= {
  Seq(
    "com.datastax.cassandra"    % "cassandra-driver-core"   % "3.1.1",
    "org.scalatest"             % "scalatest_2.11"          % "2.2.1"               % "test",
    "ch.qos.logback"            % "logback-classic"         % "1.0.9",
    "org.slf4j"                 % "slf4j-api"               % "1.7.5",
    "org.scala-lang" % "scala-library" % "2.13.2"

  )
}

我的代码:

val cluster: Cluster = Cluster.builder()
  .addContactPoints(
    "10.10.9.120",
    "10.10.9.234",
    "10.10.9.198")
  .build()

var session = cluster.connect("test1")

我的控制台显示它已经打开了连接:

DEBUG com.datastax.driver.core.Host.STATES - [/10.10.9.120:9042] Connection[/10.10.9.120:9042-1, inFlight=0, closed=false] Transport initialized, connection ready

但是当使用会话作为“session.connect(keyspace)”时,它会通过:

Exception in thread "main" com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /10.10.9.120:9042 (com.datastax.driver.core.exceptions.OperationTimedOutException: [/10.10.9.120:9042] Operation timed out), /10.10.9.233:9042 (com.datastax.driver.core.exceptions.OperationTimedOutException: [/10.10.9.233:9042] Operation timed out), /10.10.9.121:9042 (com.datastax.driver.core.exceptions.OperationTimedOutException: [/10.10.9.121:9042] Operation timed out), /10.10.8.198:9042, /10.10.9.119:9042, /10.10.8.204:9042, /10.10.9.234:9042 [only showing errors of first 3 hosts, use getErrors() for more details])
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:233)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1455)
    at com.datastax.driver.core.Cluster.init(Cluster.java:164)
    at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:335)
    at com.datastax.driver.core.Cluster.connect(Cluster.java:285)
    at CassandraConnector$.delayedEndpoint$CassandraConnector$1(CassandraConnector.scala:15)
    at CassandraConnector$delayedInit$body.apply(CassandraConnector.scala:3)
    at scala.Function0.apply$mcV$sp(Function0.scala:39)
    at scala.Function0.apply$mcV$sp$(Function0.scala:39)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
    at scala.App.$anonfun$main$1(App.scala:73)

标签: scalacassandracluster-computingdatastax-java-drivercassandra-driver

解决方案


推荐阅读