Neo4j集群搭建
Neo4j是一个高性能的图数据库,它将结构化数据存储到网络上而不是表中,它是一个嵌入式的、基于磁盘的、具备完全事务特性的java持久化引擎,Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性
NEO4J提供了两种集群模式,一种是HA(主备模式),在neo4j 4.0之后就废弃了;另外一种是因果集群模式(causal cluster)
搭建HA集群
(1)准备
官方文档地址:https://neo4j.com/docs/operations-manual/3.5/clustering/setup-new-cluster/
本次安装neo4j版本:3.5.35,3版本支持java 8版本,4版本需要更高的java版本(11或17)
下载安装包:http://dist.neo4j.org/neo4j-enterprise-3.5.35-unix.tar.gz
准备三台机器:192.168.2.80、192.168.2.72 (master)、192.168.2.33
群集必须具有法定人数才能选举新的主服务器。法定人数定义为:活动集群成员的50%以上。设计集群时的经验法则是:必须能够容忍n个主实例故障的集群需要2n + 1个实例来满足仲裁并允许进行选举。因此,最简单的有效群集大小是三个实例,这允许单个主服务器故障。
环境:三台机器必须安装java 8版本环境,修改主机名,配置hosts文件,节点之间互相免密,关闭防火墙
(2)安装neo4j
cd /opt/
wget http://dist.neo4j.org/neo4j-enterprise-3.5.35-unix.tar.gz
tar -zxvf neo4j-enterprise-3.5.35-unix.tar.gz
配置三个节点的neo4j.conf文件
主节点:
//在默认配置下,Neo4j只接受本地连接,配置本机ip
dbms.connectors.default_listen_address=192.168.2.80
//客户端可以访问该服务器的地址。这可能是服务器的IP地址或DNS名称
dbms.connectors.default_advertised_address=192.168.2.80
//neo4j集群模式
dbms.mode=HA
//id=1表示主节点
ha.server_id=1
//集群初始化三个节点信息
ha.initial_hosts=192.168.2.80:5001,192.168.2.72:5001,192.168.2.33:5001
//此实例要侦听的IP和端口,用于通信集群状态
ha.host.coordination=192.168.2.80:5001
//此实例要监听的IP和端口,用于通信事务
ha.host.data=192.168.2.80:6001
//是否开启bolt连接方式
dbms.connector.bolt.enabled=true
//bolt监听地址
dbms.connector.bolt.listen_address=192.168.2.80:7687
//是否开启http连接方式
dbms.connector.http.enabled=true
//http监听地址
dbms.connector.http.listen_address=192.168.2.80:7474
//是否开启https连接方式
dbms.connector.https.enabled=true
//https监听地址
dbms.connector.https.listen_address=192.168.2.80:7473
丛节点
//在默认配置下,Neo4j只接受本地连接,配置本机ip
dbms.connectors.default_listen_address=192.168.2.72
//客户端可以访问该服务器的地址。这可能是服务器的IP地址或DNS名称
dbms.connectors.default_advertised_address=192.168.2.72
//neo4j集群模式
dbms.mode=HA
//id=1表示主节点
ha.server_id=2
//集群初始化三个节点信息
ha.initial_hosts=192.168.2.80:5001,192.168.2.72:5001,192.168.2.33:5001
//此实例要侦听的IP和端口,用于通信集群状态
ha.host.coordination=192.168.2.72:5001
//此实例要监听的IP和端口,用于通信事务
ha.host.data=192.168.2.72:6001
//是否开启bolt连接方式
dbms.connector.bolt.enabled=true
//bolt监听地址
dbms.connector.bolt.listen_address=192.168.2.72:7687
//是否开启http连接方式
dbms.connector.http.enabled=true
//http监听地址
dbms.connector.http.listen_address=192.168.2.72:7474
//是否开启https连接方式
dbms.connector.https.enabled=true
//https监听地址
dbms.connector.https.listen_address=192.168.2.72:7473
从节点
//在默认配置下,Neo4j只接受本地连接,配置本机ip
dbms.connectors.default_listen_address=192.168.2.33
//客户端可以访问该服务器的地址。这可能是服务器的IP地址或DNS名称
dbms.connectors.default_advertised_address=192.168.2.33
//neo4j集群模式
dbms.mode=HA
//id=1表示主节点
ha.server_id=3
//集群初始化三个节点信息
ha.initial_hosts=192.168.2.80:5001,192.168.2.72:5001,192.168.2.33:5001
//此实例要侦听的IP和端口,用于通信集群状态
ha.host.coordination=192.168.2.33:5001
//此实例要监听的IP和端口,用于通信事务
ha.host.data=192.168.2.33:6001
//是否开启bolt连接方式
dbms.connector.bolt.enabled=true
//bolt监听地址
dbms.connector.bolt.listen_address=192.168.2.33:7687
//是否开启http连接方式
dbms.connector.http.enabled=true
//http监听地址
dbms.connector.http.listen_address=192.168.2.33:7474
//是否开启https连接方式
dbms.connector.https.enabled=true
//https监听地址
dbms.connector.https.listen_address=192.168.2.33:7473
(3)启动neo4j
进入到/bin目录下
./neo4j start/restart/stop //启动/重启/停止
(4)访问
http://192.168.2.80:7474/browser/
进入界面之后
输入用户名密码
账号:neo4j
密码:neo4J
之后会提示你修改密码,可以自行设定
连接成功之后
搭建因果集群
(1)准备
同HA集群设置
(2)安装neo4j
配置三个节点的neo4j.conf文件
主节点:
//该机器用于侦听传入消息的地址或网络接口
dbms.connectors.default_listen_address=192.168.2.80
//其他机器被告知连接的地址。在典型情况下,应将其设置为该服务器的完全限定域名或 IP 地址
dbms.connectors.default_advertised_address=192.168.2.80
//服务器实例的运行模式。主服务器设置为CORE
dbms.mode=CORE
//形成时集群中核心实例的最小数量。如果没有此设置定义的核心数量,则不会形成集群,通常应将其配置为完整且固定的数量。
causal_clustering.minimum_core_cluster_size_at_formation=3
//共识组中存在的最小 Core 实例数量。
causal_clustering.minimum_core_cluster_size_at_runtime=3
//可用于引导此核心或只读副本实例的一组初始核心集群成员的网络地址。在默认情况下,初始发现成员以逗号分隔的地址/端口对列表的形式给出,发现服务的默认端口为:5000。最好在所有核心服务器上将此参数设置为相同的值。
causal_clustering.initial_discovery_members=192.168.2.80:5000,192.168.2.72:5000,192.168.2.33:5000
//用于绑定集群成员发现管理通信的主机和端口
causal_clustering.discovery_listen_address=192.168.2.80:5000
//是否开启bolt连接方式
dbms.connector.bolt.enabled=true
//bolt监听地址
dbms.connector.bolt.listen_address=192.168.2.80:7687
//是否开启http连接方式
dbms.connector.http.enabled=true
//http监听地址
dbms.connector.http.listen_address=192.168.2.80:7474
//是否开启https连接方式
dbms.connector.https.enabled=true
//https监听地址
dbms.connector.https.listen_address=192.168.2.80:7473
从节点
//该机器用于侦听传入消息的地址或网络接口
dbms.connectors.default_listen_address=192.168.2.72
//其他机器被告知连接的地址。在典型情况下,应将其设置为该服务器的完全限定域名或 IP 地址
dbms.connectors.default_advertised_address=192.168.2.72
//服务器实例的运行模式。主服务器设置为CORE
dbms.mode=CORE
//形成时集群中核心实例的最小数量。如果没有此设置定义的核心数量,则不会形成集群,通常应将其配置为完整且固定的数量。
causal_clustering.minimum_core_cluster_size_at_formation=3
//共识组中存在的最小 Core 实例数量。
causal_clustering.minimum_core_cluster_size_at_runtime=3
//可用于引导此核心或只读副本实例的一组初始核心集群成员的网络地址。在默认情况下,初始发现成员以逗号分隔的地址/端口对列表的形式给出,发现服务的默认端口为:5000。最好在所有核心服务器上将此参数设置为相同的值。
可以通过配置该设置来修改此设置的行为causal_clustering.discovery_type
causal_clustering.initial_discovery_members=192.168.2.80:5000,192.168.2.72:5000,192.168.2.33:5000
//是否开启bolt连接方式
dbms.connector.bolt.enabled=true
//bolt监听地址
dbms.connector.bolt.listen_address=192.168.2.72:7687
//是否开启http连接方式
dbms.connector.http.enabled=true
//http监听地址
dbms.connector.http.listen_address=192.168.2.72:7474
//是否开启https连接方式
dbms.connector.https.enabled=true
//https监听地址
dbms.connector.https.listen_address=192.168.2.72:7473
从节点
//该机器用于侦听传入消息的地址或网络接口
dbms.connectors.default_listen_address=192.168.2.33
//其他机器被告知连接的地址。在典型情况下,应将其设置为该服务器的完全限定域名或 IP 地址
dbms.connectors.default_advertised_address=192.168.2.33
//服务器实例的运行模式。主服务器设置为CORE
dbms.mode=CORE
//形成时集群中核心实例的最小数量。如果没有此设置定义的核心数量,则不会形成集群,通常应将其配置为完整且固定的数量。
causal_clustering.minimum_core_cluster_size_at_formation=3
//共识组中存在的最小 Core 实例数量。
causal_clustering.minimum_core_cluster_size_at_runtime=3
//可用于引导此核心或只读副本实例的一组初始核心集群成员的网络地址。在默认情况下,初始发现成员以逗号分隔的地址/端口对列表的形式给出,发现服务的默认端口为:5000。最好在所有核心服务器上将此参数设置为相同的值。
可以通过配置该设置来修改此设置的行为causal_clustering.discovery_type
causal_clustering.initial_discovery_members=192.168.2.80:5000,192.168.2.72:5000,192.168.2.33:5000
//是否开启bolt连接方式
dbms.connector.bolt.enabled=true
//bolt监听地址
dbms.connector.bolt.listen_address=192.168.2.33:7687
//是否开启http连接方式
dbms.connector.http.enabled=true
//http监听地址
dbms.connector.http.listen_address=192.168.2.33:7474
//是否开启https连接方式
dbms.connector.https.enabled=true
//https监听地址
dbms.connector.https.listen_address=192.168.2.33:7473
(3)启动
进入/bin目录下
./neo4j start/restart/stop //启动/重启/停止
(4)访问
http://192.168.2.80:7474/browser/
进入界面之后
输入用户名密码
账号:neo4j
密码:neo4J
之后会提示你修改密码,可以自行设定
连接成功之后