java – 设置分片的orientdb
我正在尝试在3台服务器上进行设置.出于举个例子的目的,我是
试图设置一个类“客户端”,3个集群“client_1”, “client_2”和“client_3”.我的服务器叫做node1,node2和 节点3.我希望这些集群的排列方式使得每个集群都有2个副本 如果1个节点出现故障,我仍然可以访问所有数据,所以对于 例: > node1是client_1的主服务器,并且具有client_2的副本. 我已经尝试通过以下步骤进行设置: { "autoDeploy": true,"hotAlignment": false,"executionMode": "undefined","readQuorum": 1,"writeQuorum": 2,"failureAvailableNodesLessQuorum": false,"readYourWrites": true,"clusters": { "internal": { },"index": { },"client_1": { "servers" : [ "node1","node2" ] },"client_2": { "servers" : [ "node2","node3" ] },"client_3": { "servers" : [ "node3","node1" ] },"*": { "servers" : [ "<NEW_NODE>" ] } } } >使用dserver.sh启动node1. 此时我在3个节点上有一个数据库,其中有一个名为“client”的类 >在node2上,添加client_2集群: 如果我重新连接所有控制台会话并执行“列表集群”,我现在看到 所以…现在看来我的数据库设置方式与我的预期方式相同,但是 如果我在node1或node2上查看distirbuted-db.json的内容, "client_3": { "servers": [ "node1" ],"@version": 0,"@type": "d" },"client_2": { "servers": [ "node2" ],"client_1": { "servers": [ "node1","node2" ],"@type": "d" } 现在我重新启动node3.配置未再次更新: "client_3": { "servers": [ "node1" ],"@type": "d" } 我创建/配置数据库的方式有问题还是这个错误? 解决方法
我认为这里的问题是“hotAlignment”需要在文件“default-distributed-db-config.json”中设置为“true”.根据
OrientDB 2.2.x sharding doc,“如果设置了hotAlignment = false,当节点重新加入集群时(失败后或仅仅是不可达),来自节点的数据库的完整副本可能没有关于分片的所有信息.”但是请注意,来自
changes between 2.1.x to 2.2.x的这个子弹:“删除了热对齐设置:服务器一旦加入群集,就会一直保留在配置中,直到它们被手动删除.”
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |