我正在尝试用Java构建一个多线程Cassandra导入器。我正在使用这个包:组:'com。税收。cassandra,名称:“cassandra驱动核心”,版本:“4.0.0”
单线程(使用主线程)工作正常,但即使有1个子线程,我也会立即收到com.datastax.oss.driver.api.core.NoNode可用性异常:没有节点可用于执行查询
我正在Docker的cassandra实例上测试我的应用程序(希望这不是问题)。这就是我的建筑商。
session = CqlSession.builder()
.addContactPoint(new InetSocketAddress("localhost", 9042))
.withKeyspace(CqlIdentifier.fromCql("links"))
.withLocalDatacenter("datacenter1")
.build();
这就是我执行查询的方式
JSONObject json = new JSONObject(linksRow);
JsonInsert query = insertInto("links").json(json.toString());
session.execute(query.toString());
你能告诉我我做错了什么吗?根据文档,CqlSession应该是线程安全的。(https://docs.datastax.com/en/developer/java-driver/4.0/manual/core/)
编辑:添加插入查询
JsonInsert query = insertInto("links").json(json.toString());
这些查询是否在每个线程上持续运行?
可能是本地单个Cassandra节点没有足够的资源来处理多个请求。这将导致Cassandra返回节点对客户端“不可用”。
卡桑德拉的Java堆有多大?它可能需要更大。也可能是本地系统运行卡桑德拉,一个多线程应用程序,以及其他可能正在运行的东西太多了。
基本上,检查conf/jvm服务器的“堆设置”。选项
。如果堆被“自动计算”,那么对于应用程序试图用它做的事情来说,堆可能太小了。
typora-copy-images-to: img 1. 多线程概述 人们在日常生活中,很多事情都是可以同时进行的。例如,一个人可以一边听音乐,一边打扫房间,可以一边吃饭,一边看电视。在使用计算机时,很多任务也是可以同时进行的。例如,可以一边浏览网页,一边打印文档,还可以一边聊天,一边复制文件等。计算机这种能够同时完成多项任务的技术,就是多线程技术。Java是支持多线程的语言之一,它内置了对多线
使用 [Web Workers][web-workers]可以在系统级线程中运行JavaScript。 多线程Node.js 在 webPreferences中将 nodeIntegrationInWorker选项设置为 true,可以在Electron的Web Workers中使用Node.js功能: 1 let win = new BrowserWindow({ 2 webPreferen
If you use Casbin in a multi-threading manner, you can use the synchronized wrapper of the Casbin enforcer: https://github.com/casbin/casbin/blob/master/enforcer_synced.go (GoLang) and https://github.
多线程 Swift多线程编程方案 Thread Cocoa Operation (Operation 和 OperationQueue) Grand Central Dispath (GCD) 1. Thread在三种多线程技术中是最轻量级的, 但需要自己管理线程的生命周期和线程同步. 线程同步对数据的加锁会有一定的系统开销. detachNewThread(_ block: @escaping
在多线程运行环境中, Configuration 实例, Template 实例和数据模型应该是永远不能改变(只读)的对象。 也就是说,创建和初始化它们(如使用 set... 方法)之后,就不能再修改它们了(比如不能再次调用 set... 方法)。 这就允许我们在多线程环境中避免代价很大的同步锁问题。要小心 Template 实例; 当使用了 Configuration.getTemplate 方
多任务可以由多进程完成,也可以由一个进程内的多线程完成。 我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程。 由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread,而不是模拟出来的线程。 Python的标准库提供了两个模块:thread和threading,thread是低级模块,th