目录

1、简介:

2、集群方案:

3、Neo4j与jdk:

4、下载软件包:

5、上传软件包:

6、解压软件包:

7、配置环境变量:

8、修改配置文件:

(1)核心节点配置:

A、配置数据存储位置:

B、配置java堆内存:

C、配置监听地址:

D、配置监听端口号:

E、配置服务内部发现地址:

F、配置节点类型:

G、配置集群核心节点最小数量:

H、配置集群核心节点正常运行最小数量:

I、配置集群监听端口号:

J、配置集群初始化核心节点:

(2)只读节点配置:

A、配置数据存储位置:

B、配置java堆内存:

C、配置监听地址:

D、配置监听端口号:

E、配置节点类型:

K、配置集群初始化核心节点:

9、创建脚本:

(1)启动脚本:

(2)停止脚本:

10、设置为服务:

(1)创建服务脚本:

(2)刷新systemctl服务:

(3)启动服务:

(4)停止服务:

11、防火墙开通端口号:

12、启动集群:

13、验证集群:

14、设置开机自启:

(1)将启动服务添加到开机自启:

(2)重启服务器验证:


1、简介:

Neo4j是一个高性能的,NOSQL图形数据库,本身就支持集群部署,今天要搭建的就是neo4j的因果集群。

核心节点:core-server,可以对数据进行读写的中心节点,通过选举确定leader、follower。主要职责是保护数据,在集群大多数核心服务器(N/2+1)个正常工作,就表示整个集群正常。

只读节点:read-replica,只提供数据访问的只读节点,需要连接核心节点,可以非常方便的进行扩展。

官网教程:https://neo4j.com/docs/operations-manual/3.5/clustering/introduction/

需要注意的是,neo4j的集群只是高可用性和核心节点、只读节点的读写和查询分开,并不支持数据的分布式,就是集群中的每个节点上都是一份完整的数据。

2、集群方案:

本地测试搭建集群采用:3个核心节点,3个只读节点。

服务器IP

节点类型

Bolt端口号

http端口号

https端口号

192.168.137.111

核心节点

7474

7687

7473

192.168.137.111

核心节点

7475

7688

7472

192.168.137.111

核心节点

7476

7689

7471

192.168.137.111

只读节点

7477

7690

7470

192.168.137.111

只读节点

7478

7691

7469

192.168.137.111

只读节点

7479

7692

7468

3、Neo4j与jdk:

Neo4j版本

Jdk版本

4.2.5

JDK11

4.1.8

JDK11

4.0.11

JDK11

3.5.28

JDK8

4、下载软件包:

软件包下载地址(注意要下载企业版):https://neo4j.com/download-center/#enterprise

说明:在3.5版本以后的企业版是收费的了,如果需要可以找3.5以前的版本是免费的,比如:3.4.15-enterprise版本,如果找不到对应的下载包的地址,可以通过docker或docker-compose进行安装,这个是可以找到对应的3.4.15-enterprise版本的镜像。

5、上传软件包:

将下载好的软件包上传到服务器中指定的位置。

6、解压软件包:

将下载好的软件压缩包解压到指定的文件夹中。

7、配置环境变量:

如果是本地测试环境一台服务器部署多个neo4j实例,那么就不用配置neo4j的环境变量了,执行命令的时候到对应的neo4j实例的文件夹中执行;

如果是生产环境一台服务器只部署一个neo4j实例,那还是最好配置下neo4j的环境变量。如果也是一台服务器部署多个neo4j实例,那么就不用配置neo4j的环境变量了,同样启动的时候到对应neo4j实例文件夹中进行启动即可。

8、修改配置文件:

配置文件的位置为软件包解压的文件夹中conf/neo4j.conf文件。

(1)核心节点配置:

A、配置数据存储位置:

修改参数:dbms.directories.data,默认值为:data,即neo4j软件根文件夹中的data文件夹。

B、配置java堆内存:

修改参数:dbms.memory.heap.initial_size,dbms.memory.heap.max_size。默认为注解的,两个参数值一般大小一样。

C、配置监听地址:

修改参数:dbms.connectors.default_listen_address,默认为注解的,需要打开,如果允许远程访问就配置为:0.0.0.0

D、配置监听端口号:

修改参数:dbms.connector.bolt.listen_address,dbms.connector.http.listen_address,dbms.connector.https.listen_address,默认为注解的,需要打开。

检查:dbms.connector.bolt.enabled,dbms.connector.http.enabled,dbms.connector.https.enabled,这三个参数值为true。

E、配置服务内部发现地址:

修改参数:dbms.connectors.default_advertised_address,值为对应服务器的IP地址或者本地服务器上配置的对应域名。

F、配置节点类型:

修改参数:dbms.mode,值为:CORE或者READ_REPLICA,如果是核心节点就是:CORE,如果是只读节点就是:READ_REPLICA。

G、配置集群核心节点最小数量:

修改参数:causal_clustering.minimum_core_cluster_size_at_formation,值为集群中核心节点总数量的N/2+1。

H、配置集群核心节点正常运行最小数量:

修改参数:causal_clustering.minimum_core_cluster_size_at_runtime,值为集群中核心节点总数量的N/2+1,一般与核心节点最小数量参数一致。

I、配置集群监听端口号:

修改参数:causal_clustering.discovery_listen_address,值为对应的该节点在集群中被其它节点发现的端口号,端口号前边要加一个“冒号”。

J、配置集群初始化核心节点:

修改参数:causal_clustering.initial_discovery_members,值为集群中各个核心节点IP和causal_clustering.discovery_listen_address配置的端口号,多个节点用英文逗号分隔。

(2)只读节点配置:

A、配置数据存储位置:

修改参数:dbms.directories.data,默认值为:data,即neo4j软件根文件夹中的data文件夹。

B、配置java堆内存:

修改参数:dbms.memory.heap.initial_size,dbms.memory.heap.max_size。默认为注解的,两个参数值一般大小一样。

C、配置监听地址:

修改参数:dbms.connectors.default_listen_address,默认为注解的,需要打开,如果允许远程访问就配置为:0.0.0.0

D、配置监听端口号:

修改参数:dbms.connector.bolt.listen_address,dbms.connector.http.listen_address,dbms.connector.https.listen_address,默认为注解的,需要打开。

检查:dbms.connector.bolt.enabled,dbms.connector.http.enabled,dbms.connector.https.enabled,这三个参数值为true。

E、配置节点类型:

修改参数:dbms.mode,值为:CORE或者READ_REPLICA,如果是核心节点就是:CORE,如果是只读节点就是:READ_REPLICA。

K、配置集群初始化核心节点:

修改参数:causal_clustering.initial_discovery_members,值为集群中各个核心节点IP和causal_clustering.discovery_listen_address配置的端口号,多个节点用英文逗号分隔。

9、创建脚本:

如果是同一台服务器上部署多个neo4j实例,注意不同实例的neo4j启动脚本的位置和名称的区分。

(1)启动脚本:

创建启动neo4j的shell脚本,并授权777:

(2)停止脚本:

创建停止neo4j的shell脚本,并授权777

10、设置为服务:

如果是同一台服务器上部署多个neo4j实例,注意不同实例的neo4j启动服务的名称区分。

(1)创建服务脚本:

进入/usr/lib/systemd/system目录,创建neo4j.service文件:

(2)刷新systemctl服务:

执行命令:systemctl daemon-reload

(3)启动服务:

执行命令:systemctl start neo4j.service

(4)停止服务:

执行命令:systemctl stop neo4j.service

11、防火墙开通端口号:

如果防火墙关闭,那么就不用操作这个步骤了。如果防火墙开启,那么需要将配置的neo4j的http、bolt、https等对应的三个端口号放开。

12、启动集群:

先启动集群中的核心节点,然后再启动集群中的只读节点。进入集群中的每个服务器上,启动节点。

13、验证集群:

通过浏览器访问集群中任意一个核心节点,即可在web页面上看到整个集群节点的状态信息。在执行CQL的位置输入命令:CALL dbms.cluster.overview(),查看集群节点状态信息。

14、设置开机自启:

如果是同一台服务器上部署多个neo4j实例,注意不同实例的neo4j服务名称不同,设置开启的服务对应不同。

(1)将启动服务添加到开机自启:

设置neo4j开机启动,执行命令:systemctl enable neo4j.service

(2)重启服务器验证:

重新启动服务器,等服务器启动完毕后,在浏览器直接访问neo4j的数据库地址,查看是否自动启动成功。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐