windows下搭建neo4j高可用

一、High Availability 高可用

    windows下搭建neo4j高可用_第1张图片

    neo4j高可用集群永远一台master,0到多台slave。不同于类似mongo的副本集,neo4j的slave也可以写数据。如果slave被写了数据,slave会同步给master, master会立即推送给其他slave,但 master只管推送,这个推送可能失败,但是只要master收到了这个数据,就算写成功。所以给slave写数据,并不能完全保证其他slave立马就能读。

    neo4j高可用集群中的每台机器都要有一个唯一不重复的整数id,在neo4j.properties中的ha.server_id设置。随后neo4j实例启动后会自动ha.initial_hosts中去尝试联系其他的实例,每和其他的实例建立了连接,实例会判断当前的集群状态,决定是否可以加入。所以,搭建环境的时候,最好大家都没数据,或者是新的没数据的节点加入进来,否则会失败。

    ha.cluster_server ,这里配置的是监听集群里实例间通信的端口,比如心跳。默认端口是5001。ha.server 这个设置的是数据同步通信的端口。默认是6001,不能和ha.cluster_server重复。另外还有个online_backup_server,这里配置的是监听备份请求的端口,和上面两个也不能重复,随便设置一个就ok了。

    搭建高可用集群时,还要在neo4j-server.properties中开启

org.neo4j.server.database.mode=HA

   另外在一台机器上云新多个实例,注意要把http页面的端口都改了,避免重复。

二、部署

    首先下载企业版neo4j,社区版的貌似没有高可用。将下载下来的解压到3个不同的文件夹,分别修改配置文件。

第一个实例

#neo4j.properties
ha.server_id=1
ha.initial_hosts=127.0.0.1:5001,127.0.0.1:5002,127.0.0.1:5003
ha.server=127.0.0.1:6001
ha.cluster_server=127.0.0.1:5001
dbms.pagecache.memory=200m
online_backup_server=127.0.0.1:6004

#neo4j-server.properties
org.neo4j.server.database.mode=HA
org.neo4j.server.webserver.port=7474
org.neo4j.server.webserver.https.port=7473

第二个实例

#neo4j.properties
ha.server_id=2
ha.initial_hosts=127.0.0.1:5001,127.0.0.1:5002,127.0.0.1:5003
ha.server=127.0.0.1:6002
ha.cluster_server=127.0.0.1:5002
dbms.pagecache.memory=200m
online_backup_server=127.0.0.1:6005

#neo4j-server.properties
org.neo4j.server.database.mode=HA
org.neo4j.server.webserver.port=7574
org.neo4j.server.webserver.https.port=7573

第三个实例

#neo4j.properties
ha.server_id=3
ha.initial_hosts=127.0.0.1:5001,127.0.0.1:5002,127.0.0.1:5003
ha.server=127.0.0.1:6003
ha.cluster_server=127.0.0.1:5003
dbms.pagecache.memory=200m
online_backup_server=127.0.0.1:6006

#neo4j-server.properties
org.neo4j.server.database.mode=HA
org.neo4j.server.webserver.port=7674
org.neo4j.server.webserver.https.port=7673

配置好后,依次启动三个实例,在windows下,运行neo4j.bat就可以了。

windows下搭建neo4j高可用_第2张图片

初次启动要等一会,然后就看到启动成功。

之后分别浏览器登录http://127.0.0.1:7474,  http://127.0.0.1:7574,  http://127.0.0.1:7674 。看到三个实例都启动成功。在7474上创建node. 

 CREATE (ee:Person { name: "hutao", from: "Sweden", klout: 99 })

然后在7574和7674上查询

MATCH (ee:Person) WHERE ee.name = "hutao" RETURN ee;

看到已经复制成功。

登录http://127.0.0.1:7474/webadmin可以看到高可用集群状态

windows下搭建neo4j高可用_第3张图片

你可能感兴趣的:(windows下搭建neo4j高可用)