📅  最后修改于: 2023-12-03 15:18:10.503000             🧑  作者: Mango
OrientDB是一个高性能的多模型开源NoSQL数据库,支持图形、文档、键值对、对列等多种数据模型。本文将重点介绍如何在OrientDB上放置集群。
集群是特定大小的机器集合,它们共享资源并在共同管理的工作负载上运行。集群提供高可用性、容错能力和可扩展性,以便在负载增加时动态扩展。OrientDB通过分布式架构支持多主/多从/异步复制等不同类型的集群,旨在处理大型数据集的存储和处理。
放置集群可以使我们从硬件故障、软件故障等问题中恢复过来,以确保我们的数据一直处于可用状态。OrientDB支持将集群放置在分布式网络中的多个节点上。
启用分布式配置以支持多节点之间的数据复制和数据同步。打开orientdb-server-config.xml文件,添加以下内容并重启OrientDB:
<orient-server>
<handlers>
<handler class="org.reflections.Reflections" scanPackage="com.orientechnologies.orient.server.plugin.handler"/>
</handlers>
<network>
<listeners>
<listener protocol="binary" socket="default" port-range="2424-2430" ip-address="0.0.0.0" />
<listener protocol="http" socket="default" port-range="2480-2490" ip-address="0.0.0.0">
<parameters>
</parameters>
</listener>
</listeners>
<protocols>
<protocol name="binary" implementation="com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary" />
<protocol name="http" implementation="com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpDb" />
</protocols>
</network>
<distributed>
<servers>
<server name="myServer" enabled="true"
nodeName="node1"
securityAlgorithm="SHA-256"
securitySalt="-5875856156745355845"
network-mapper-converter-class="com.orientechnologies.orient.server.network.OServerNetworkListenerTUShortNameConverter">
<listen from="node1" port="2424-2430" protocol="binary" />
<listen from="node1" port="2480-2490" protocol="http" />
<network>
<members>
<member id="1" name="node1" />
<member id="2" name="node2" />
<member id="3" name="node3" />
</members>
<protocols>
<protocol name="binary" implementation="com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary" />
<protocol name="http" implementation="com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpDb" />
</protocols>
</network>
<users>
<user name="root" password="root_password" resources="*" />
</users>
</server>
<server name="node2" enabled="true"
nodeName="node2"
securityAlgorithm="SHA-256"
securitySalt="-5875856156745355845"
network-mapper-converter-class="com.orientechnologies.orient.server.network.OServerNetworkListenerTUShortNameConverter">
<listen from="node2" port="2424-2430" protocol="binary" />
<listen from="node2" port="2480-2490" protocol="http" />
<network>
<members>
<member id="1" name="node1" />
<member id="2" name="node2" />
<member id="3" name="node3" />
</members>
<protocols>
<protocol name="binary" implementation="com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary" />
<protocol name="http" implementation="com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpDb" />
</protocols>
</network>
</server>
<server name="node3" enabled="true"
nodeName="node3"
securityAlgorithm="SHA-256"
securitySalt="-5875856156745355845"
network-mapper-converter-class="com.orientechnologies.orient.server.network.OServerNetworkListenerTUShortNameConverter">
<listen from="node3" port="2424-2430" protocol="binary" />
<listen from="node3" port="2480-2490" protocol="http" />
<network>
<members>
<member id="1" name="node1" />
<member id="2" name="node2" />
<member id="3" name="node3" />
</members>
<protocols>
<protocol name="binary" implementation="com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary" />
<protocol name="http" implementation="com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpDb" />
</protocols>
</network>
</server>
</servers>
</distributed>
</orient-server>
在以上代码中,您需要设置在名为node1、node2和node3的机器上运行的OrientDB服务。每台机器都是一个单独的服务器,并且属于同一个群集。每个服务器都向每个其他服务器广播它的存在,并使用它们之间的安全通信建立联系。
启动多个节点并加入同一个集群,以支持负载平衡、容错和高可用性。您可以使用命令行举例中的方式启动三个节点:
./server.sh -Dnode.name=node1 /path/to/server/config
./server.sh -Dnode.name=node2 /path/to/server/config
./server.sh -Dnode.name=node3 /path/to/server/config
创建数据库并将其存储在不同的节点上。您可以使用类似以下的命令创建数据库:
orientdb> connect "remote:localhost/myDB" root root_password
orientdb> create database plocal:/path/to/database/myDB [user-name password] [database-type]
orientdb> close
其中,“remote:localhost/myDB”是您要连接的远程数据库URL,“root”和“root_password”是用户名和密码。
添加数据到存储在不同节点上的数据库中。您可以使用类似以下的命令添加数据:
orientdb> connect "remote:localhost/myDB" root root_password
orientdb> INSERT INTO myClass (name, value) VALUES ("foo", 1)
orientdb> close
查询存储在不同节点上的数据库中的数据。您可以使用类似以下的命令查询数据:
orientdb> connect "remote:localhost/myDB" root root_password
orientdb> SELECT FROM myClass
orientdb> close
以上就是在OrientDB上放置集群的步骤,它支持多种类型的集群,并提供高可用性、容错和可扩展性。