gpt4 book ai didi

java - 使用 DataStax Java 驱动程序向 Cassandra 发出 1000 个并发请求时出现 NoHostAvailableException

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:50 26 4
gpt4 key购买 nike

设置:

-2节点Cassandra 2.0.7.31集群
-副本=1
-使用默认配置
-使用DataStax java驱动程序1.0

Activity 使用QueyBuilder类进行简单的插入查询

结果

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)

最佳答案

问题是,最后我创建了一个线程一个连接模型。这是相当同步的。但 Datstax 驱动程序异步工作(我猜它使用 netty)并在单个连接上接受多个请求。所以就我而言,每个请求都会有一个 session ,你猜怎么着?我留下了驱动程序和 Cassandra 的开放连接池。服务器被阻塞了,司机也被阻塞了。只需让 Driver 管理其池即可解决问题。

Datastax java 驱动程序默认维护最小数量的连接来处理一定数量的并发请求。
规范说驱动程序有一个限制,每个连接最多处理 128 个请求。所以当我们驱动程序发现超过 128 个请求到来时,它只打开连接。所以驱动程序可以完美地管理连接池。[ http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/PoolingOptions.html]此链接很有帮助

关于java - 使用 DataStax Java 驱动程序向 Cassandra 发出 1000 个并发请求时出现 NoHostAvailableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com