OrientDB图数据库-两地三中心环境搭建

本文基于 OrientDB 3.1.6 

master1,master2 部署在深圳数据中心 ,分别作为生产中心,同城容灾中心。

master3  部署在成都数据中心 ,作为异地容灾中心。

 

分布式配置涉及config/  目录下三个文件:

一、修改 orientdb-server-config.xml 文件

启用 OHazelcastPlugin ,nodeName 属性设置 节点名称,三个节点分别设置为 master1、master2、master3

        <handler class="com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin">
            <parameters>
                <parameter value="master1" name="nodeName"/>
                <parameter value="${distributed}" name="enabled"/>
                <parameter value="${ORIENTDB_HOME}/config/default-distributed-db-config.json" name="configuration.db.default"/>
                <parameter value="${ORIENTDB_HOME}/config/hazelcast.xml" name="configuration.hazelcast"/>
            </parameters>
        </handler>

二、修改default-distributed-db-config.json  文件

增加了replication和hotAlignment属性,同时在servers属性中设置master1、master2、master3为master角色 , 其中 writeQuorum 设置为了 majority, readQuorum 为1  其他参数设置参考文章末尾附录的参考文档。

readQuorum 在“读取”操作(记录读取,查询和遍历)上,这是在将响应发送到客户端之前要保持一致的响应的数量。如果您不想在读取时进行此检查,请设置为1 1
writeQuorum 在“写”操作(数据库上的任何写操作)上,这是将响应发送到客户端之前要保持一致的响应的数量。如果您不想在写入时进行此检查,则设置为1。建议值为默认值“多数”,即N / 2 + 1,其中N是可用节点数。这样,仅当大多数节点是连贯的时才达到仲裁。“所有”表示所有可用节点。从v2.2开始,N表示仅MASTER服务器。有关更多信息,请参见服务器角色 "majority"

 

{
  "replication": true,
  "hotAlignment": true,
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "majority",
  "executionMode": "undefined",
  "readYourWrites": true,
  "newNodeStrategy": "static",
  "servers": {
    "master1": "master",
	"master2": "master",
	"master3": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

三、修改  hazelcast.xml 文件

 port 禁用 increment,multicast 设置enabled 为 false ,禁用广播方式,  增加 tcp-ip 节点,手动设置三个成员节点。 

<network>
		<port auto-increment="false">2435</port>
		<join>
			<multicast enabled="false">
				<multicast-group>235.1.1.1</multicast-group>
				<multicast-port>2434</multicast-port>
			</multicast>
			<tcp-ip enabled="true">
				<member>机器ip:2434</member>
				<member>机器ip:2435</member>
				<member>机器ip:2436</member>
			</tcp-ip>
			<kubernetes enabled="false">
				<pod-label-name>orientdb-cluster-member</pod-label-name>
				<pod-label-value>true</pod-label-value>
				<service-port>2434</service-port>
			</kubernetes>
		</join>
	</network>

 

注意需要使用bin目录下的 dserver.sh  启动脚本来启动集群,而不是 server.sh   ,启动集群后,查看log目录下的 orient-server.log 日志,检查 status 是否为online ,如果是则表示节点正常。

当启动节点数小于大多数,新增数据提示在线节点数不足,当全部节点启动后,新增成功,集群搭建完毕。

 

参考文档

 https://orientdb.org/docs/3.0.x/distributed/Distributed-Architecture.html

 https://orientdb.org/docs/3.0.x/gettingstarted/tutorials/Tutorial-Setup-a-distributed-database.html

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章