Java 使用apachecassandra更新
我有一个问题需要用java更新Cassandra。 群集中有3台服务器,其中您的IP为:Java 使用apachecassandra更新,java,cassandra,Java,Cassandra,我有一个问题需要用java更新Cassandra。 群集中有3台服务器,其中您的IP为: 192.168.1.8 192.168.1.9 192.168.1.10 对于连接,我使用以下代码中的IP:192.168.1.8: Cluster cluster = Cluster.builder().addContactPoint("192.168.1.8").build(); Session session = cluster.connect("nfe"); List<St
Cluster cluster = Cluster.builder().addContactPoint("192.168.1.8").build();
Session session = cluster.connect("nfe");
List<String> chaves = new ArrayList<String>();
chaves.add("1");
chaves.add("2");
chaves.add("3");
chaves.add("4");
chaves.add("5");
chaves.add("6");
chaves.add("7");
chaves.add("8");
chaves.add("9");
chaves.add("10");
Map<String, ObjTeste> teste = new HashMap<String, ObjTeste>();
for (String chave : chaves) {
Assignment set = set(STATUSMANIFESTACAO, 1);
Statement update = update("nfe", "xmldev").with(set).where(eq(CHAVE, chave));
session.execute(update);
session2.execute(update);
session3.execute(update);
}
session.close();
cluster.close();
Cluster Cluster=Cluster.builder().addContactPoint(“192.168.1.8”).build();
会话=cluster.connect(“nfe”);
List chaves=new ArrayList();
chaves.添加(“1”);
chaves.添加(“2”);
chaves.添加(“3”);
chaves.添加(“4”);
chaves.添加(“5”);
chaves.添加(“6”);
chaves.添加(“7”);
chaves.添加(“8”);
chaves.添加(“9”);
chaves.添加(“10”);
Map teste=newhashmap();
for(字符串chave:chaves){
分配集=集(StatusManifestaco,1);
语句update=update(“nfe”,“xmldev”)。带有(set)。其中(eq(CHAVE,CHAVE));
执行(更新);
会话2.执行(更新);
会话3.执行(更新);
}
session.close();
cluster.close();
此模式不会更新用于升级的任何密钥。
如果我这样使用它,它会起作用:
Cluster cluster = Cluster.builder().addContactPoint("192.168.1.8").build();
Cluster cluster2 = Cluster.builder().addContactPoints("192.168.1.10").build();
Cluster cluster3 = Cluster.builder().addContactPoints("192.168.1.9","192.168.1.10").build();
Session session = cluster.connect("nfe");
Session session2 = cluster2.connect("nfe");
Session session3 = cluster3.connect("nfe");
List<String> chaves = new ArrayList<String>();
chaves.add("1");
chaves.add("2");
chaves.add("3");
chaves.add("4");
chaves.add("5");
chaves.add("6");
chaves.add("7");
chaves.add("8");
chaves.add("9");
chaves.add("10");
Map<String, ObjTeste> teste = new HashMap<String, ObjTeste>();
for (String chave : chaves) {
Assignment set = set(STATUSMANIFESTACAO, 1);
Statement update = update("nfe", "xmldev").with(set).where(eq(CHAVE, chave));
session.execute(update);
session2.execute(update);
session3.execute(update);
}
session.close();
cluster.close();
Cluster Cluster=Cluster.builder().addContactPoint(“192.168.1.8”).build();
Cluster cluster2=Cluster.builder().addContactPoints(“192.168.1.10”).build();
Cluster cluster3=Cluster.builder().addContactPoints(“192.168.1.9”、“192.168.1.10”).build();
会话=cluster.connect(“nfe”);
会话session2=cluster2.connect(“nfe”);
会话session3=cluster3.connect(“nfe”);
List chaves=new ArrayList();
chaves.添加(“1”);
chaves.添加(“2”);
chaves.添加(“3”);
chaves.添加(“4”);
chaves.添加(“5”);
chaves.添加(“6”);
chaves.添加(“7”);
chaves.添加(“8”);
chaves.添加(“9”);
chaves.添加(“10”);
Map teste=newhashmap();
for(字符串chave:chaves){
分配集=集(StatusManifestaco,1);
语句update=update(“nfe”,“xmldev”)。带有(set)。其中(eq(CHAVE,CHAVE));
执行(更新);
会话2.执行(更新);
会话3.执行(更新);
}
session.close();
cluster.close();
有一种方法可以不使用太多会话,并使用一个会话更新所有密钥?我不确定我是否理解您的问题。你是说第一个代码块不做更新吗?在第一个块中,
session2
和session3
在哪里声明?另外,为什么要更新同一个键3次,为什么要为第二个块中的每个节点创建集群?tks all,问题是服务器需要一个小时,为了更正,我为所有节点设置了正确的小时。