orientdb clusterselection,如何在每个节点平均分配我的记录
orientdb clusterselection, how can I distribute my records in each node averagely
Orientdb 版本 2.1.11。
我有3个节点,我想在每个节点平均分配我的记录,我的代码是:
ODatabase database = new DatabaseDocumentTx("remote:node1;node2;node3/mydb").open("root", "1234");
System.out.println("selection:" + database.get(ODatabase.ATTRIBUTES.CLUSTERSELECTION));
database.command(new OCommandSQL("alter class Person clusterSelection round-robin"));
System.out.println("selection:" + database.get(ODatabase.ATTRIBUTES.CLUSTERSELECTION));
for (int i = 0; i < 100; ++i) {
ODocument document = new ODocument("Person");
document.field("name", "pengtao.geng" + i);
document.field("age", 28 + i);
document.save();
System.out.println("save " + i);
}
database.close();
但是,它不起作用。我尝试通过工作室修改 class clusterselection,它也不起作用。
这个怎么实现,能给个例子吗,非常感谢
在 v2.2 中,OrientDB 支持负载平衡:http://orientdb.com/docs/2.1/Distributed-Configuration.html#load-balancing。您可以将 ROUND_ROBIN_REQUEST
策略与此代码一起使用(服务器必须在集群中):
ODatabase database = new DatabaseDocumentTx("remote:node1;node2;node3/mydb").open("root", "1234");
db.setProperty(OStorageRemote.PARAM_CONNECTION_STRATEGY, OStorageRemote.CONNECTION_STRATEGY.ROUND_ROBIN_REQUEST);
for (int i = 0; i < 100; ++i) {
ODocument document = new ODocument("Person");
document.field("name", "pengtao.geng" + i);
document.field("age", 28 + i);
document.save();
System.out.println("save " + i);
}
database.close();
Orientdb 版本 2.1.11。
我有3个节点,我想在每个节点平均分配我的记录,我的代码是:
ODatabase database = new DatabaseDocumentTx("remote:node1;node2;node3/mydb").open("root", "1234");
System.out.println("selection:" + database.get(ODatabase.ATTRIBUTES.CLUSTERSELECTION));
database.command(new OCommandSQL("alter class Person clusterSelection round-robin"));
System.out.println("selection:" + database.get(ODatabase.ATTRIBUTES.CLUSTERSELECTION));
for (int i = 0; i < 100; ++i) {
ODocument document = new ODocument("Person");
document.field("name", "pengtao.geng" + i);
document.field("age", 28 + i);
document.save();
System.out.println("save " + i);
}
database.close();
但是,它不起作用。我尝试通过工作室修改 class clusterselection,它也不起作用。
这个怎么实现,能给个例子吗,非常感谢
在 v2.2 中,OrientDB 支持负载平衡:http://orientdb.com/docs/2.1/Distributed-Configuration.html#load-balancing。您可以将 ROUND_ROBIN_REQUEST
策略与此代码一起使用(服务器必须在集群中):
ODatabase database = new DatabaseDocumentTx("remote:node1;node2;node3/mydb").open("root", "1234");
db.setProperty(OStorageRemote.PARAM_CONNECTION_STRATEGY, OStorageRemote.CONNECTION_STRATEGY.ROUND_ROBIN_REQUEST);
for (int i = 0; i < 100; ++i) {
ODocument document = new ODocument("Person");
document.field("name", "pengtao.geng" + i);
document.field("age", 28 + i);
document.save();
System.out.println("save " + i);
}
database.close();