Kas*_*ara 5 java scala cassandra datastax
使用datastax
驱动程序从5节点群集中的表读取时出现此错误。
2015-02-19 03:24:09,908错误[akka.actor.default-dispatcher-9] OneForOneStrategy akka:// user / HealthServiceChecker-49e686b9-e189-48e3-9aeb-a574c875a8ab无法使用此群集实例,因为先前关闭的java.lang.IllegalStateException:无法使用此Cluster实例,因为它先前在com.datastax.driver.core.Cluster $ Manager.init(Cluster.java:1128)〜[cassandra-driver-core-2.0 .4.jar:na]位于com.datastax.driver.core.Cluster.init(Cluster.java:149)〜[cassandra-driver-core-2.0.4.jar:na]位于com.datastax.driver.core .cluster.connect(Cluster.java:225)〜[cassandra-driver-core-2.0.4.jar:na]在com.datastax.driver.core.Cluster.connect(Cluster.java:258)〜[cassandra- driver-core-2.0.4.jar:na]
我能够使用cqlsh进行连接并执行读取操作。
有什么线索可能是这里的问题吗?
设置:
键空间复制策略:“类”:“ NetworkTopologyStrategy”,“ DC2”:“ 1”,“ DC1”:“ 1”
cassandra版本:2.0.6
管理cassandra会话的代码非常重要。
trait ConfigCassandraCluster
extends CassandraCluster
{
def cassandraConf: CassandraConfig
lazy val port = cassandraConf.port
lazy val host = cassandraConf.host
lazy val cluster: Cluster =
Cluster.builder()
.addContactPoints(host)
.withReconnectionPolicy(new ExponentialReconnectionPolicy(100, 30000))
.withPort(port)
.withSocketOptions(new SocketOptions().setKeepAlive(true))
.build()
lazy val keyspace = cassandraConf.keyspace
private lazy val casSession = cluster.connect(keyspace)
val session = new SessionProvider(casSession)
}
class SessionProvider(casSession: => Session) extends Logging {
var lastSuccessful: Long = 0
var firstSuccessful: Long = -1
def apply[T](fn: Session => T): T = {
val result = retry(fn, 15)
if(firstSuccessful < 0)
firstSuccessful = System.currentTimeMillis()
lastSuccessful = System.currentTimeMillis()
result
}
private def retry[T](fn: Session => T, remainingAttempts: Int): T = {
//retry logic
}
Run Code Online (Sandbox Code Playgroud)
问题是,cluster.connect(keyspace)
如果遇到NoHostAvailableException ,它将关闭群集本身。因此,在重试逻辑期间,您遇到了IllegalStateException。
看一下Cluster init()
方法,您将了解更多。
在重试逻辑中,解决问题的方法是do Cluster.builder.addContactPoint(node).build.connect(keyspace)
。重试时将具有新的群集对象。
归档时间: |
|
查看次数: |
5802 次 |
最近记录: |