SDt*_*SDt 9 java multithreading cassandra datastax
I am not using Elasticssearch. I am trying to perform some database operations in cassandra using CQL. I am using threads. While running the code I am always getting the exception in thread after a while : com.datastax.oss.driver.api.core.NoNodeAvailableException: No node was available to execute the query.
I have tested with even one thread. The error is still there. Here is my code :
InetAddress addrOne = InetAddress.getByName("52.15.195.41");
InetSocketAddress addrSocOne = new InetSocketAddress(addrOne,9042);
CqlSession sessionOne = CqlSession.builder().addContactPoint(addrSocOne).withLocalDatacenter("us-east-2").withKeyspace("test").build();
while(counter <= 100)
{
String query = "select max(id) FROM samplequeue";
ResultSet rs = session.execute(query);
for (Row row : rs)
{
int exS = row.getInt("system.max(id)");
}
counter++;
Thread.sleep(50);
}
Run Code Online (Sandbox Code Playgroud)
This is a very simple, modified example just to demonstrate the problem. I am unable to resolve it. All the threads are exiting giving the same exception. I am running cassandra 3.11.4 on AWS. All my nodes are up and running and I can perform operations finely in the backend.
小智 9
您可以在cassandra中执行nodetool status,您将获得数据中心的名称。这是您必须放入withLocalDatacenter方法的值:
/opt/apache-cassandra-3.11.2/bin$ ./nodetool status
Datacenter: **dc1**
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
Run Code Online (Sandbox Code Playgroud)
小智 8
更改.withLocalDatacenter("us-east-2")为.withLocalDatacenter("datacenter1")并重试。
| 归档时间: |
|
| 查看次数: |
6866 次 |
| 最近记录: |