概述
Neo4j是一个高性能的,NOSQL图形数据库,本身就支持集群部署,今天要搭建的就是neo4j的因果集群,其中分为:
核心节点:core-server,可以对数据进行读写的中心节点,通过选举确定leader,follower.
只读节点:read-replica,只提供数据访问的只读节点,需要连接核心节点,可以非常方便的进行扩展
网上的教程,多都是直接部署在服务器上,或者docker部署,这里我讲一下如何在kubernetes集群中部署neo4j的因果集群。
官方文档参考:https://neo4j.com/docs/operations-manual/current/clustering/setup-new-cluster/
官方docker镜像的github参考:https://github.com/neo4j/docker-neo4j-publish
正文
环境:
centos7
neo4j-3.5.5 企业版
kubernetes v1.12.2
1. neo4j集群配置说明
集群是用的是neo4j的官方镜像,镜像的dockerfile可以参考官方github,neo4j分为企业版和社区版,从3.5版本开始,企业版不再开源,只能做为研究使用,不可商用,但是企业版比社区办的功能要多很多,性能更好,重点是只有企业版支持集群部署。所以,如果公司要用的话,还是要买企业版的license。
因果集群,首先需要部署core-server集群,官方文档中主要的集群配置如下:
2. 设置nfs动态卷,用于提供neo4j的持久化存储
详细请看:《kubernetes(k8s) 配置nfs动态卷实现StatefulSet的持久化存储》
3. 部署neo4j-core-server集群
因为此集群是有状态的服务,所以使用k8s的StatefulSet进行部署,创建neo4j-core-server.yaml文件,内容如下:
# 先创建namespace,如果在nfs动态卷的时候,已经创建了,就忽略掉
---
apiVersion: v1
kind: Namespace
metadata:
name: neo4j
labels:
name: neo4j
---
apiVersion: