neo4j社区版高可用搭建_lrylrq1991的博客-CSDN博客_neo4j 高可用


本站和网页 https://blog.csdn.net/lrylrq1991/article/details/91410832 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

neo4j社区版高可用搭建_lrylrq1991的博客-CSDN博客_neo4j 高可用
neo4j社区版高可用搭建
lrylrq1991
于 2019-06-11 08:48:28 发布
6408
收藏
分类专栏:
neo4j
文章标签:
neo4j
集群
社区版
keepalived
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lrylrq1991/article/details/91410832
版权
neo4j
专栏收录该内容
1 篇文章
0 订阅
订阅专栏
    
整体技术方案采用keepalived+drbd主从
 1. 准备俩台机器、俩块磁盘 ,机器我用的是腾讯云的  。 因为阿里云的hvip已经下架了,估计是想卖他们的负载均衡
    
        
       ip                    磁盘               hostname
      172.17.0.10      /dev/vdb1        VM_0_10_centos              主
      172.17.0.15      /dev/vdb1        VM_0_15_centos              从
       vip:  172.10.13    
     这个hvip 必须在先申请,详细请看https://cloud.tencent.com/document/product/215/20129
一、 搭建drbd 主从
    1. 修改hosts文件
       [root@VM_0_15_centos scripts]# vim /etc/hosts
         172.17.0.10 VM_0_10_centos
           172.17.0.15 VM_0_15_centos
         [root@VM_0_10_centos scripts]# vim /etc/hosts
           172.17.0.10 VM_0_10_centos
            172.17.0.15 VM_0_15_centos
     2.互相免密登陆
       [root@VM_0_10_centos ~]# ssh-keygen  
        [root@VM_0_10_centos ~]# ssh-copy-id  VM_0_15_centos
        [root@VM_0_15_centos ~]# ssh-keygen  
        [root@VM_0_15_centos ~]# ssh-copy-id  VM_0_10_centos
    3. 时钟同步         
     [root@VM_0_10_centos ~]# crontab -e
      */5 * * * * ntpdate cn.pool.ntp.org   ###添加任务 
     node2:
     [root@VM_0_15_centos ~]# crontab -e
      */5 * * * * ntpdate cn.pool.ntp.org   ###添加任务 
    4. 
5、现在我们就要开始安装drbd包在VM_0_10_centos和VM_0_15_centos操作:
    VM_0_10_centos上:
      [root@VM_0_10_centos ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
      [root@VM_0_10_centos ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
      [root@VM_0_10_centos ~]#yum install -y kmod-drbd84 drbd84-utils kernel*   ##装完重启一下 
  VM_0_15_centos上:
    [root@VM_0_15_centos ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    [root@VM_0_15_centos ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
    [root@VM_0_15_centos ~]#yum install -y kmod-drbd84 drbd84-utils  kernel*
    [root@VM_0_15_centos ~]# vim /etc/drbd.d/global_common.conf 
global {
    usage-count no;  #是否参加DRBD使用统计,默认为yes。官方统计drbd的装机量,改为no
    # minor-count dialog-refresh disable-ip-verification
common {
    protocol C;      #使用DRBD的同步协议,添加这一行
    handlers {
        pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
###需要把这三行的注释去掉
    }
    startup {
        # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
    }
    options {
        # cpu-mask on-no-data-accessible
    }
    disk {
        on-io-error detach; #配置I/O错误处理策略为分离,添加这一行
        # size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes
        # disk-drain md-flushes resync-rate resync-after al-extents
        # c-plan-ahead c-delay-target c-fill-target c-max-rate
        # c-min-rate disk-timeout
    }
    net {
        # protocol timeout max-epoch-size max-buffers unplug-watermark
        # connect-int ping-int sndbuf-size rcvbuf-size ko-count
        # allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri
        # after-sb-1pri after-sb-2pri always-asbp rr-conflict
        # ping-timeout data-integrity-alg tcp-cork on-congestion
        # congestion-fill congestion-extents csums-alg verify-alg
        # use-rle
    }
    syncer {
        rate 1024M;    #设置主备节点同步时的网络速率,添加这个选项
    }

   6.  新建drbd neo4j.res配置文件
       [root@VM_0_15_centos scripts]# vim /etc/drbd.d/neo4j.res        
        resource neo4j
{ #资源名称
protocol C; #使用协议
meta-disk internal;
device /dev/drbd1; #DRBD设备名称
syncer {
verify-alg sha1;# 加密算法
net {
  allow-two-primaries;
on VM_0_10_centos {     #hostname一定要设为主机名 VM_0_10_centos,不然下一步会报错的
    disk /dev/vdb1;  #  drbd1使用的磁盘分区为"mysql"
    address 172.17.0.10:7789; #设置DRBD监听地址与端口
on VM_0_15_centos {
    disk /dev/vdb1;
    address 172.17.0.15:7789;
      
[root@VM_0_10_centos ~]# drbdadm create-md neo4j
[root@VM_0_10_centos ~]# drbdadm up neo4j
[root@VM_0_10_centos ~]# drbdadm -- --force primary neo4j
查看VM_0_10_centos的状态:
[root@VM_0_10_centos ~]# cat /proc/drbd 
[root@VM_0_15_centos ~]# drbdadm create-md neo4j
[root@VM_0_15_centos ~]# drbdadm up neo4j
查看VM_0_15_centos的状态:
[root@VM_0_15_centos ~]# cat /proc/drbd 
7.   挂载/dev/drbd 到 /data/drbd  
      [root@VM_0_10_centos scripts]# /dev/drbd1 /data/drbd
二、搭建keepalived 
     1. 分别在俩台机器下载安装keepalived 
       [root@VM_0_15_centos ~]# wget http://www.keepalived.org/software/keepalived-1.4.2.tar.gz
       [root@VM_0_15_centos ~]# tar zxvf keepalived-1.4.2.tar.gz
       [root@VM_0_15_centos ~] yum install -y gcc openssl-devel popt-devel
       [root@VM_0_15_centos ~]  cd keepalived-1.4.2 #指定安装目录
       [root@VM_0_15_centos ~]./configure --prefix=/usr/local/keepalived
       [root@VM_0_15_centos ~] make && make install
       [root@VM_0_15_centos ~] mkdir /etc/keepalived
       [root@VM_0_15_centos ~] cp /usr/local/keepalived/etc/keepalived/keepalived.conf  /etc/keepalived/
       [root@VM_0_15_centos ~] cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
       [root@VM_0_15_centos ~]  cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
      3.配置主机器配置文件  
         [root@VM_0_10_centos ~]  vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
   router_id LVS_DEVEL
   #vrrp_strict
vrrp_script check_neo4j {
    script "/data/scripts/check_neo4j.sh"
    interval 1
    fall 2
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 52
    priority 100
    advert_int 1
    # 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
    # 本机ip
    unicast_src_ip 172.17.0.10
    unicast_peer {
      #   其他机器ip
        172.17.0.15
    }
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.17.0.13
    }
    notify_stop /data/scripts/notify_stop.sh
    notify_master /data/scripts/notify_master.sh
    track_script {
        check_neo4j
    }
      4.配置从机器配置文件
        [root@VM_0_10_centos ~]  vim /etc/keepalived/keepalived.conf
                         
global_defs {
   router_id LVS_DEVEL
   #vrrp_strict
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 52
    priority 90
    advert_int 1
    # 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
    # 本机ip
    unicast_src_ip 172.17.0.15
    unicast_peer {
        # 其他机器ip
        172.17.0.10
    }
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.17.0.13
    }
    notify_master /data/scripts/notify_master.sh
    notify_backup /data/scripts/notify_backup.sh
      5.配置主机器脚本目录和数据库目录
         [root@VM_0_10_centos ~]  mkdir -p /data/scripts   /data/logs/ data/drbd 
        并在该目录存放如下脚本,脚本
      
  check_neo4j.sh       
#!/bin/sh
ps_out=`ps -ef | grep neo4j-community | grep -v 'grep' | grep -v check_neo4j.sh`:
result=$(echo $ps_out | grep "neo4j-community")
if [[ "$result" != "" ]];then
echo "Running"
else
# /data/drbd/neo4j-community-3.5.3/bin/neo4j start >> /data/logs/keepalived/notify_master.log
# sleep 2
echo "干掉keepalived $result" >/tmp/check.log
killall keepalived
fi
  notify_master.sh       
 #!/bin/bash
time=`date "+%F  %H:%M:%S"`
echo -e "$time  ------notify_master------\n" >> /data/logs/keepalived/notify_master.log
#ssh root@inte-neo4j-02 "reboot" >> /data/logs/keepalived/notify_master.log
drbdadm primary neo4j >> /data/logs/keepalived/notify_master.log
mount /dev/drbd1 /data/drbd >> /data/logs/keepalived/notify_master.log
/data/drbd/neo4j-community-3.5.3/bin/neo4j start >> /data/logs/keepalived/notify_master.log
echo -e "end \n" >> /data/logs/keepalived/notify_master.log
notify_stop.sh
#!/bin/bash
time=`date "+%F %H:%M:%S"`
echo -e "$time ------notify_stop------\n" >> /data/logs/keepalived/notify_stop.log
fuser -mvk /data/drbd
/bin/umount /data/drbd >> /data/logs/keepalived/notify_stop.log
echo 'unount success'
/usr/sbin/drbdadm secondary neo4j >> /data/logs/keepalived/notify_stop.log
#/usr/bin/systemctl stop keepalived >> /data/logs/keepalived/notify_stop.log
echo -e " end \n" >> /data/logs/keepalived/notify_stop.log
      5.配置从机器脚本目录和数据库目录
         [root@VM_0_10_centos ~]  mkdir -p /data/scripts   /data/logs/ data/drbd 
        并在该目录存放如下脚本,脚本见附件
     
notify_backup.sh​
#!/bin/bash
time=`date "+%F %H:%M:%S"`
echo -e "$time ------notify_backup------\n" >> /data/logs/keepalived/notify_backup.log
/data/drbd/neo4j-community-3.5.3/bin/neo4j stop >> /data/logs/keepalived/notify_backup.log
#fuser -mvk /data/drbd
/bin/umount /data/drbd >> /data/logs/keepalived/notify_backup.log
echo "umount success"
/usr/sbin/drbdadm secondary neo4j >> /data/logs/keepalived/notify_backup.log
echo -e "end \n" >> /data/logs/keepalived/notify_backup.log
notify_master.sh
#!/bin/bash
time=`date "+%F %H:%M:%S"`
echo -e "$time ------notify_master------\n" >> /data/logs/keepalived/notify_master.log
#ssh root@inte-neo4j-01 "reboot" >> /data/logs/keepalived/notify_master.log
drbdadm primary neo4j >> /data/logs/keepalived/notify_master.log
mount /dev/drbd1 /data/drbd >> /data/logs/keepalived/notify_master.log
/data/drbd/neo4j-community-3.5.3/bin/neo4j start >> /data/logs/keepalived/notify_master.log
echo -e "end \n" >> /data/logs/keepalived/notify_master.log
6. 俩台机器启动keepalived
        [root@VM_0_10_centos scripts]# service keepalived start
        [root@VM_0_15_centos scripts]# service keepalived start
   7. keepalive 正常启动的话 VM_0_10_centos 会有一个vip 生成
   
​        
8.   下载neo4j-community-3.5.3 解压
     [root@VM_0_10_centos neo4j-community-3.5.3]# pwd
          /data/drbd/neo4j-community-3.5.3
  9.        启动图数据库
      [root@VM_0_10_centos bin]# pwd
          /data/drbd/neo4j-community-3.5.3/bin
       [root@VM_0_10_centos bin]# ./neo4j start
10.  现在 hvip 172.17.0.13  7474端口 7687 端口都可以通了
   
11.如果这是一个内网ip可以通过nginx 反向代理出去 给外网访问
       [root@VM_0_10_centos bin] docker  run --name nginx -d -p 8083:8083 -p 17687:17687 -v $PWD/nginx/html:/mnt/nginx/html  -v          $PWD/conf/nginx.conf:/etc/nginx/nginx.conf  -d docker.io/nginx
       nginx.conf 关键配置文件如下
     
  server {
        listen       8083;
        listen       [::]:8083;
        server_name  127.0.0.1:8083;
        root         /mnt/nginx/html/cmdb-web;
        location /browser/ {
            proxy_pass   http://172.17.0.13:7474;
        }
    }
  stream {
   server {
      listen 17687;
       proxy_pass 172.17.0.13:7687;
    }
  }
lrylrq1991
关注
关注
点赞
收藏
打赏
评论
neo4j社区版高可用搭建
整体技术方案采用keepalived+drbd主从1. 准备俩台机器、俩块磁盘 ,机器我用的是腾讯云的 。 因为阿里云的hvip已经下架了,估计是想卖他们的负载均衡 ip 磁盘 hostname172.17.0.10 /dev/vdb1...
复制链接
扫一扫
专栏目录
Neo4j优劣点的介绍
11-27
比较详细的介绍了Neo4j的各种优点与缺点,并介绍了Neo4j跟其他图形数据库的比较。
SpringBoot高版本(2.4及以上)集成neo4j并进行增删改查,通俗易懂附源代码
qq_55368677的博客
10-01
1107
SpringBoot高版本(2.4及以上)集成neo4j,通过Neo4jTemplate和Repository两种方式对图数据进行CRUD
参与评论
您还未登录,请先
登录
后发表或查看评论
图形数据库neo4j 社区版数据同步构思
Dream_bin
04-06
1345
背景:
neo4j 社区版不支持集群,顾存在单点故障问题。在使用过程中,发现neo4j 单节点运算处理能力大概在一亿范围内性能还是比较客观的。所以在生产环境中,假如数据量不是特别大的话可以使用社区版,前提是解决单点故障问题。
构思:
每部署一个neo4j服务就是一个单节点。假如在写数据的时候采用多写(或者数据同步)的方式,单其中一个节点挂了,其他节点及时顶上也是一种个不错的方案。那么如何进行多写或...
利用neo4j+keepalived+nfs搭建高可用图数据库
bigdata_player
03-26
900
一、介绍
因neo4j社区版本无法支持高可用的集群部署,有单点故障的风险。为了达到高可用的目的,现结合keepalived做浮动IP切换,提供neo4j的状态检测配置方法,NFS做共享存储,保证两个节点数据一致性。
二、整体技术方案
三、部署流程
本案例以3台机Centos7为例:
server1(192.168.2.101) :...
使用 Neo4j 图数据库可视化(网络安全)知识图谱
最新发布
Ax的博客
10-14
3083
2022年详细教程:如何使用 Neo4j 图数据库可视化(网络安全)知识图谱
Neo4j社区版高可用搭建
mzx1281077338的博客
03-13
3571
Neo4j社区版高可用搭建
1 架构(drbd+keepalived+neo4j)
转存失败重新上传取消
2 推荐配置
最低配置
推荐配置
CPU
Intel Core i3 8核
Intel Core i7 16核
Memory
2GB
16—32GB or more
Disk
10GB SATA
SSD w/ SAT...
NEO4J高可用集群搭建
FFFSSSFFF6的博客
08-03
3846
NEO4J高可用集群搭建
高可用的neo4j集群主要采用了主从的结构,来保证集群的容错能力和应变能力,同时也保证了了集群在读取密集型的数据的场景下可横向的扩展能力。同时,它还支持缓存分区,使得NEO4J高可用性集群比neo4j单实例具有更大的负载能力。但HA集群很快要不支持了。
好了,话不多说,如果看过前一篇文章htt...
neo4j 企业版3.5.4
04-29
neo4j最新3.5.4企业版,相对官网的社区版的,这个相对功能较全,可以搭建集群使用,使用高可用架构
Neo4j+DRBD+Keepalived高可用架构
一尘在心的博客
07-03
1720
本文转自http://www.ywnds.com/?p=12199Neo4j企业版支持集群及高可用架构,但是社区版本不支持,故才有结合第三方软件来做高可用架构。架构图如下:DRBD双主配置: http://www.ywnds.com/?p=6619Neo4j配置安装:http://www.ywnds.com/?p=12015Keepalived安装配置:http://www.ywnds.com/?...
neo4j 社区版主从集群
shlhhy的博客
06-06
1214
由于neo4j企业版太贵了,想研究一下通过neo4j社区版搭建主从的方案
部署Neo4j3.5版本HA集群
weixin_48710903的博客
01-13
822
neo4j高可用集群(HA)
文章目录neo4j高可用集群(HA)一、 neo4j高可用集群配置(`HA`集群 `3.X` 企业版)1.1 准备1.2 安装Neo4j1.3 集群配置1.3.1 192.168.10.140配置1.3.2 192.168.10.141配置1.3.3 192.168.10.142配置1.3.4 load图二、 安装算法包
一、 neo4j高可用集群配置(HA集群 3.X 企业版)
1.1 准备
准备三台机子,ip如下:
192.168.10.140(master)
192.16
neo4j安装
小城我家
09-28
89
Neo4j环境Linux下搭建
切换到Linux下 到安装目录neo4j 上传安装包 或者 下载安装包
使用 ftp 工具上传neo4j-community-3.5.17.tar 到 liunx 下
或者 wget https://neo4j.com/artifact.php?name=neo4j-community-3.5.17-unix.tar.gz
解压
tar -xvf neo4j-community-3.5.17.tar
修改配置文件 neo4j.conf
vi conf/neo4j.conf
Centos 7.4_neo4j3.4.11企业版 + Haproxy 1.79 高可用集群部署.docx
08-06
neo4j 数据库 主从(一主两从)集群部署,负载均衡部署
高可用的neo4j集群主要采用了主从的结构,来保证集群的容错能力和应变能力,同时也保证了了集群在读取密集型的数据的场景下可横向的扩展能力。
neo4j-3.4.9社区版
12-11
neo4j-3.4.9社区版,可服务器部署,LINUX版本解压即可安装
neo4j-chs-community-4.0.4-unix.tar.gz
05-20
neo4j社区版linux版本4.0.4社区版是开源并且免费的。社区版与商业版功能上没有什么区别,不同的是社区版只能单机使用,商业版可以做分布式集群。单机版最大可以存储10亿个结点。
neo4j 企业版 社区版 对比
sowhat
09-06
1万+
有很多人问起Neo4j社区版和企业版到底有多大的区别,除了价格、技术支持和客户服务等“软特性”之外。那么,下面的表格总结了在产品的技术特性方面的重要区别。
经常有人问:社区版和企业版有什么区别。其实他们在功能上没有本质区别。主要区别在如下几点:
1、容量:社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性,而企业版没有这个限制;
2、并发:社区版只能部署成单实例,不能做集...
neo4j 3.5.4最新集群搭建高可用以及添加服务器到集群
军军的博客
04-29
4435
neo4j 特点介绍
SQL就像简单的查询语言Neo4j CQL
它遵循属性图数据模型
它通过使用Apache Lucence支持索引
它支持UNIQUE约束
它包含一个用于执行CQL命令的UI:Neo4j数据浏览器
它支持完整的ACID(原子性,一致性,隔离性和持久性)规则
它采用原生图形库与本地GPE(图形处理引擎)
它支持查询的数据导出到JSON和XLS格式
它提供了REST API,可以被...
Neo4j集群环境搭建
木小鱼的笔记
08-10
1万+
Neo4j是目前主流的图数据库,它本身也提供了高可用的集群解决方案,本文将尝试搭建高可用的neo4j环境。
Neo4j详解
热门推荐
Dream_bin
02-24
3万+
Neo4j入门详解
项目中某种特殊的场景,使用图形数据库比较有独特的优势。所以经过一个多月的奋战终于把项目上线了。本次使用上了图形数据库是neo4j社区版,因为数据量不到一个亿,只是关系比较复杂所以社区版基本上“够用”。后续货陆续分享,我对neo4j 社区版高可用相关方面的总结(探活,监控告警,热备,控制台等)
本次将一些neo4j 的一些入门基础知识,做一次项目后的整理总结(ps : 有些知识点...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
lrylrq1991
CSDN认证博客专家
CSDN认证企业博客
码龄13年
暂无认证
原创
28万+
周排名
160万+
总排名
1万+
访问
等级
186
积分
粉丝
获赞
评论
15
收藏
私信
关注
热门文章
neo4j社区版高可用搭建
6408
springcloud nacos seata 分布式事物实战
1655
springcloud nacos 基于rocketmq 消息的分布式事物实战
1462
vaadin 7 使用gwt 发布js和css
659
Vaadin 7 和 extjs mvc 集成示例
585
分类专栏
java
4篇
springcloud
4篇
mysql
1篇
seata
2篇
vaadin
1篇
neo4j
1篇
最新评论
springcloud nacos 基于rocketmq 消息的分布式事物实战
smileNicky:
点个赞,感谢大佬分享
springcloud nacos seata 分布式事物实战
cmlmeng:
牛逼🐮
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
springcloud nacos 基于rocketmq 消息的分布式事物实战
分布式事务实战汇总
彻底搞懂mysql数据库四种隔离级别,实验实战
2020年5篇
2019年1篇
2016年2篇
目录
目录
分类专栏
java
4篇
springcloud
4篇
mysql
1篇
seata
2篇
vaadin
1篇
neo4j
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
lrylrq1991
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值