The setup:
Web server Apache Tomcat
RestFull网络服务
使用DataStax java驱动2.0
Database -2节点Cassandra 2.0.7.31集群
-replicas = 1
Problem
发送1500次请求后发送三次以上 . 我在tomcat日志中遇到错误
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /10.181.13.239 ([/10.181.13.239] Unexpected exception triggered))
at com.datastax.driver.core.exceptions.NoHostAvailableException.copy(NoHostAvailableException.java:64)
at com.datastax.driver.core.ResultSetFuture.extractCauseFromExecutionException(ResultSetFuture.java:214)
at com.datastax.driver.core.ResultSetFuture.getUninterruptibly(ResultSetFuture.java:169)
at com.jpmc.es.rtm.storage.impl.EventExtract.main(EventExtract.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /10.181.13.239 ([/10.181.13.239] Unexpected exception triggered))
at com.datastax.driver.core.RequestHandler.sendRequest(RequestHandler.java:98)
at com.datastax.driver.core.RequestHandler$1.run(RequestHandler.java:165)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
Observation 经过这种状态的tomcat . 所有进一步的要求获得同样的命运 . 那是驱动程序无法将我的插入请求发送到cassandra .
执行net stat命令后,我发现所有TCP连接黑白Web服务器和Cassandra都处于TIMED_WAIT状态 .
可能是什么原因 ?为什么Datastax驱动程序无法将连接恢复回池?或者为什么Cassandra会与客户 Build 联系 .
Thanks in Advance
1 回答
连接增加由于调用为每个请求创建多个会话 . 现在它工作正常 .
现在Driver无论交易次数多少都保持17-26连接数 .