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();