主备切换方法、装置、计算机设备和存储介质与流程

文档序号:15850655发布日期:2018-11-07 09:50阅读:211来源:国知局
主备切换方法、装置、计算机设备和存储介质与流程

本申请涉及到图形数据库的应用领域,特别是涉及到主备切换方法、装置、计算机设备和存储介质。

背景技术

现有社区版neo4j(neo4j图形数据库)只有单一主机,遇到主机故障,只能中断继续使用社区版neo4j,严重影响了社区版neo4j的用户使用体验,影响neo4j社区版进一步推广使用。而且现有社区版neo4j没有双机集群体统的方案,难以做到高可用性,且在数据请求量较大时,访问随机分布的数据易发生缓存缺失,影响社区版neo4j的正常处理业务的准确性。



技术实现要素:

本申请的主要目的为提供一种主备切换方法,旨在解决现有社区版neo4j没有双机集群体统的方案,导致可用性不高的技术问题。

本申请提出一种主备切换方法,通过路由中转设备衔接社区版neo4j的第一主机和第二主机,第一主机与路由中转设备的第一端口相连,第二主机与路由中转设备的第二端口相连,包括:

判断支撑社区版neo4j的第一主机是否出现故障;

若是,则将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机。

优选地,所述判断支撑社区版neo4j的第一主机是否出现故障的步骤之前,包括:

存储所述第一主机支撑社区版neo4j运行过程的第一运行数据;

将所述第一运行数据通过指定方式转移到所述第二主机上,形成第二运行数据。

优选地,所述将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:

判断所述第二运行数据与所述第一运行数据的数据交集;

根据所述数据交集确定所述第二主机的运行进程起点。

优选地,所述将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:

记录所述第二主机的访问数据和所述访问数据对应的访问频次;

获取所述访问数据中,所述访问频次大于预设阈值的高频次访问数据;

通过汇总所述高频次访问数据与所述高频次访问数据对应的实例场景,形成实例数据库并存储。

优选地,所述通过汇总所述高频次访问数据与所述高频次访问数据对应的实例场景,形成实例数据库并存储的步骤之后,还包括:

判断所述第二主机当前运行的实例场景是否已存储备份;

若是,则调用与当前运行的所述实例场景匹配的访问数据。

优选地,所述将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:

监测所述第一主机的故障报警;

标记故障报警时第一运行数据同步到所述第二主机的节点信息;

将所述节点信息传输至所述第二主机,以根据所述节点信息确定所述第二主机的运行进程起点。

本申请还提供了一种主备切换装置,通过路由中转设备衔接第一主机和第二主机,第一主机与路由中转设备的第一端口相连,第二主机与路由中转设备的第二端口相连,包括:

第一判断模块,用于判断支撑社区版neo4j的第一主机是否出现故障;

切换模块,用于若第一主机出现故障,则将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机。

优选地,所述主备切换装置,包括:

存储模块,用于存储所述第一主机支撑社区版neo4j运行过程的第一运行数据;

转移模块,用于将所述第一运行数据通过指定方式转移到所述第二主机上,形成第二运行数据。

本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。

本申请有益技术效果:本申请通过路由中转设备实现社区版neo4j的主备切换,弥补了现有社区版neo4j只有单一主机,遇到主机故障时无法继续使用社区版neo4j,本申请通过主备主机切换,提高社区版neo4j的使用持续性,提高用户使用体验,且主备两主机通过数据备份和数据同步,减小主备两主机在切换前后对社区版neo4j工作进程的影响,对社区版neo4j的持续使用具有深远意义。本申请的主备主机切换完全自动化,无需人员介入,降低成本,提高主备切换的时效性、提高效率;而且本申请通过创建实例数据库,提高社区版neo4j快速响应数据请求,减少缓存缺失,提高准确性。

附图说明

图1本申请一实施例的主备切换方法流程示意图;

图2本申请一实施例的主备切换装置结构示意图;

图3本申请另一实施例的主备切换装置结构示意图;

图4本申请再一实施例的主备切换装置结构示意图;

图5本申请又一实施例的主备切换装置结构示意图;

图6本申请又一实施例的主备切换装置结构示意图;

图7本申请又一实施例的主备切换装置结构示意图;

图8本申请一实施例的计算机设备内部结构示意图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请一实施例的社区版neo4j的主备切换方法,通过路由中转设备衔接社区版neo4j的第一主机和第二主机,第一主机与路由中转设备的第一端口相连,第二主机与路由中转设备的第二端口相连,本发明实施例通过路由中转设备实现衔接社区版neo4j的第一主机和第二主机的切换和数据转移,包括:

s1:判断支撑社区版neo4j的第一主机是否出现故障。

本实施例通过预设故障识别条件进行识别,举例地,根据启动指令连续启动第一主机三次以上,未成功开启,则判定为故障。本实施例为社区版neo4j的主备主机的切换,提高社区版neo4j的高可用性。本实施例的社区版neo4j是一个面向网络的数据库,基于嵌入式的、基于磁盘的、具备完全的事务特性的java持久化引擎,本实施例的社区版neo4j将结构化数据存储在网络中,可以应用更加敏捷和快速的开发模式,上述网络指灵活的数据结构,或从数学角度叫做图。neo4j相当于一个高性能的图引擎,具有成熟数据库的所有特性,社区版neo4j和企业版neo4j相比,虽然价格低、易推广使用,但技术特性方面却远没有企业版neo4j强大,因为社区版neo4j不存在双机集群系统,只有一个指定功率的主机,所以现有社区版neo4j不包括数据库和查询管理等功能,不具有高可用性。

s2:若是,则将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机。

本步骤通过设置于前端的路由中转设备实现社区版neo4j的主备主机的切换,在第一主机出现异常故障时,及时切换到第二主机以便继续支撑社区版neo4j的顺利运行,提高社区版neo4j的运行效率。本实施例通过具有均衡功能的路由中转设备实现社区版neo4j的主备主机的切换,比如f5(f5network公司的负载均衡)、nginx(伊戈尔·赛索耶夫开发的负载均衡服务器)、keepalive(类似于layer3,4&7交换机制的软件,即第3层、第4层和第7层自动交换,可用于主机间的切换)等,实现快速切换,进一步提升社区版neo4j的主备机切换效果。比如通过f5进行切换时,可在一分钟内完成切换操作,提高社区版neo4j的主备主机的切换的顺畅度,提升用户使用体验。本申请其他实施例也可通过人工核查第一主机故障后,启动设置于前端的f5,通过转换主机设备与f5的连接端口的连接关系,实现从第一主机到第二主机的切换,以再次确认故障判断,提高主机设备的利用率。

进一步地,本实施例的步骤s1之前,包括:

s11:存储所述第一主机支撑社区版neo4j运行过程的第一运行数据。

本实施例的社区版neo4j在运行过程中,实时存储运行数据,比如存储于第一主机的内存上,以便数据共享、数据分析等。

s12:将所述第一运行数据通过指定方式转移到所述第二主机上,形成第二运行数据。

本实施例通过将第一运行数据转移到第二主机上,以便第二主机在第一主机处理业务进程的基础上,接续第一主机继续支撑社区版neo4j的正常运行,以避免影响用户的正常使用,提高用户的使用体验。本步骤的指定方式包括但不限于ftp(filetransferprotocol)、sftp(securefiletransferprotocol,安全文件传送协议)、scp(securecopy)。

本申请一实施例中的指定方式为ftp,ftp是tcp/ip(transmissioncontrolprotocol/internetprotocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议)网络上两台计算机传送文件的协议,属于网络协议组的应用层。ftp客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。本实施例的ftp用到两个tcp连接,一个是命令链路,用来在ftp主机端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。本实施例的ftp是基于tcp协议的,因此防火墙设置中只需要放开指定端口的tcp协议即可,ftp允许明文传输,当然也可根据需要设置为带ssl(securesocketslayer安全套接层)的加密ftp。本实施例的ftp工作模式包括port(主动)方式、pasv(passive被动)方式。举例地,port(主动)方式的连接过程是:主机端向服务器的指定端口发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,主机端在命令链路上用port命令告诉服务器:已打开了一个1024+的随机端口,可连接。于是服务器从指定端口向主机端的1024+随机端口发送连接请求,建立一条数据链路来传送数据。再举例地,pasv方式的连接过程是:主机端向服务器的ftp端口发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用pasv命令告诉主机端:已打开了一个1024+的随机端口,可连接。于是主机端向服务器的指定端口发送连接请求,建立一条数据链路来传送数据。但普通ftp仅使用端口21作为命令传输。由服务器和主机端协商另外一个随机端口来进行数据传送。在pasv模式下,服务器端需要侦听另一个随机端口。假如服务器在路由器或者防火墙后面,端口映射会比较麻烦,因为无法提前知道数据端口编号,无法映射。

本申请一实施例中指定方式为数据传输使用ssh(secureshell),ssh为建立在应用层和传输层基础上的安全协议。本实施例的ssh主要有三部分组成:传输层协议ssh-trans,用户认证协议ssh-userauth,连接协议ssh-connect。利用ssh协议可以有效防止远程管理过程中的信息泄露问题,提供安全保证。本实施例的ssh中包括sftp安全文件传输子系统,sftp可以为传输文件提供一种安全的加密方法,sftp与上述ftp有着几乎一样的语法和功能。本实施例的sftp本身没有单独的守护进程,必须使用ssh守护进程来完成相应的连接操作。sftp使用加密传输认证信息和传输的数据,非常安全。但是由于使用了加密/解密技术,传输效率比普通的ftp要低得多,只有对网络安全性要求更高时,使用sftp代替ftp。

本实施例优选通过scp把第一运行数据转移到第二主机上,操作更加简单,更便于实现,提高数据同步共享的效率。本实施例的scp基于ssh登录,可用来进行远程文件复制的,更加满足将第一运行数据同步到第二主机上,并且整个复制过程是加密的。举例地,要把第一运行数据的当前一个文件同步到远程第二主机上,从本地复制到远程的命令格式为:scplocal_fileremote_username@remote_ip:remote_folder或者scplocal_fileremote_username@remote_ip:remote_file或者scplocal_fileremote_ip:remote_folder或者scplocal_fileremote_ip:remote_file,第1,2个命令格式中指定了用户名,命令执行后需要再输入密码,第1个命令格式仅指定了远程的目录,文件名字不变,第2个命令格式指定了文件名;第3,4个命令格式没有指定用户名,命令执行后需要输入用户名和密码,第3个命令格式仅指定了远程的目录,文件名字不变,第4个命令格式指定了文件名;而从远程复制到本地,只要将从本地复制到远程的命令的后两个命令格式中的参数调换顺序即可实现,本实施例的远程和本地包括远程服务器与本地服务器之间的数据同步,也包括远程主机终端与本地主机终端之间的数据同步。本实施例的scp/sftp属于开源协议可免费使用,不像ftp存在安全或版权问题,且scp/sftp传输软件均免费并开源,方便开发各种扩展插件和应用组件。

本申请另一实施例中,步骤s2之后,包括:

s21:判断所述第二运行数据与所述第一运行数据的数据交集。

本步骤的数据交集通过比较第一运行数据与第二运行数据的节点数获得。本申请其他实施例中,数据交集也可通过数据字节数等其他方式获得。本实施例的社区版neo4j是一个高性能的nosql(notonlysql)图形数据库,它将结构化数据存储在网络上,nosql图形数据库中,对应着两个概念:节点集和节点。nosql图形数据库中的数据展示并不使用节点集,而是独立的节点。本实施例的nosql具有如下特征:不需要事先定义数据模式,预定义表结构,数据中的每条记录都可能有不同的属性和格式,当插入数据时,并不需要预先定义模式;相对于将所有数据存储的存储区域网络中的全共享架构,nosql将数据划分后存储在各个本地服务器上,因为从本地磁盘读取数据的性能好于通过网络传输读取数据的性能,从而提高了系统的性能;可以在系统运行的时候,动态增加或者删除节点,不需要停机维护,数据可以自动迁移;相对于将数据存放于同一个节点,nosql数据库需要将数据进行分区,将记录分散在多个节点上面,并且分区的同时还要做复制,既提高了并行性能,又能保证没有单点失效的问题;和raid(redundantarraysofindependentdisks,磁盘阵列)存储系统不同的是,nosql中的复制是基于日志的异步复制,数据尽快地写入节点,减少网络传输引起迟延。nosql数据库并没有一个统一的架构,两种nosql数据库之间的不同,甚至远远超过两种关系型数据库的不同。但nosql各有所长,本实施例的nosql图形数据库特别适用于社区版neo4j,第一主机和第二主机之间同步nosql图形数据库的数据,依据复制节点数据进行完成。

s22:根据所述数据交集确定所述第二主机的运行进程起点。

本实施例中通过第一运行数据与第二运行数据的数据交集确定第二主机的启动起点标签,即第二主机的运行进程起点。比如,第一运行数据中包括节点a、节点b、节点c、节点d;第二运行数据中包括节点a、节点b、节点c,则进一步判断节点c的数据是否完整,若是,则第二主机则从第一主机在节点c处或节点c之前的任一时刻点对应的业务数据处所进行的业务处理开始,继续支撑社区版neo4j的运行;若判定节点c的数据不完整,则判断是否可获取节点c的数据终止处的数据信息,若可获取节点c的数据终止处的数据信息,则第二主机从第一主机在上述节点c的数据终止处或节点c的数据终止之前的任一时刻点对应的业务数据处所进行的业务处理开始;若不可获取节点c的数据终止处的数据信息,则第二主机从第一主机在节点c之前的任一时刻点对应的业务数据处所进行的业务处理开始。第二主机选择的起始节点能够接续第一主机继续支撑社区版neo4j的正常运行,不影响用户的正常使用即可。数据在第一主机与第二主机之间实现共享中存在时间延迟,第二运行数据中的数据节点为业务已进行过的数据,第二主机选择的节点可以是刚好接续的节点数据为起始点,也可是刚好接续节点之前的节点数据作为起始点。

本申请再一实施例中,步骤s2之后,包括:

s23:记录所述社区版neo4j的访问数据和所述访问数据对应的访问频次。

本实施例的社区版neo4j通过缓存记录最近访问的数据。

s24:获取所述访问数据中,所述访问频次大于预设阈值的高频次访问数据。

举例地,本步骤的预设阈值比如为访问三次,访问次数大于三次则为高频次访问数据。

s25:通过汇总所述高频次访问数据与所述高频次访问数据对应的实例场景,形成实例数据库并存储。

本实施例的社区版neo4j是一个图形数据库,数据并非保存在表或集合中,而是保存为节点以及节点之间的关系。在社区版neo4j中,节点以及关系都能够包含保存值的属性,为节点设置零或多个标签(例如author或book),每个关系都对应一种类型(例如wrote或friend_of),关系总是从一个节点指向另一个节点(但可以在不考虑指向性的情况下进行查询)。本实施例的社区版neo4j自带一套易于学习的查询语言(名为cypher)不使用schema(数据库对象的集合,一个用户一般对应一个schema),因此可以满足任何形式的需求。本实施例通过将高频次访问数据根据情景的相关性进行汇总,形成实例场景的数据库并存储,以实现数据库的局部数据逐渐模块化、模型化,以提高社区版neo4j快速响应数据请求,且防止请求量非常大时而导致随机分布的数据发生缓存缺失,上述实例场景包括根据数据类型形成的场景情景汇总,比如将涉及医药信息、医院信息、病例介绍、医疗器材等的数据汇总为医疗行业的实例场景。本实施例的社区版neo4j与关系型数据库相比,对于高度关联的数据(图形数据)的查询快速要快上许多。本实施例的社区版neo4j的实体与关系结构非常自然地切合人类的直观感受,支持兼容acid(数据库事务正确执行的四个基本要素的缩写,包含:原子性atomicity、一致性consistency、隔离性isolation、持久性durability)的事务操作,提供了一个高可用性模型,以支持大规模数据量的查询,支持备份、数据局部性以及冗余,提供了一个可视化的查询控制台,避免引起人员疲倦感。本实施例通过汇总所述访问数据与所述访问数据对应的实例场景,形成实例数据库并存储,以提高社区版neo4j快速响应数据请求,且防止请求量非常大时而导致随机分布的数据发生缓存缺失。

进一步地,步骤s25之后,还包括:

s26:判断所述第二主机当前运行的实例场景是否已存储备份。

通过判断当前运行的实例场景是否已存在相应的备份数据库,提高调用数据的效率。比如,本实施例通过实例场景的分类标签判断两个实例场景的相似度,比如,实例场景标签显示两个实例场景均为医疗领域,则判定相似。若一个场景标签显示为医疗领域,另一个场景标签显示为影视领域,则判定不相似。本实施例的场景标签分类可根据需要,进一步细化分类,以提高根据实例场景标签调用数据的可靠性。本实施例的实例场景分类标签可通过卷积神经网络获取的实例场景的图片组成要素的特征进行分类,并根据图片组成要素的特征相似度判断实例场景的相似度。本实施例优选根据欧式距离判断两个图片组成要素的特征相似度,进而判断两个实例场景的相似度。

s27:若是,则调用与当前运行的所述实例场景匹配的访问数据。

举例地,当前运行的实例场景为医疗领域,则调用标签为医疗领域的数据,增加快捷性。

本申请又一实施例中,步骤s2之后,包括:

s28:监测所述第一主机的故障报警。

本实施例在衔接第一主机和第二主机的应用模块上,设置了监测功能,以监测第一主机的故障报警。比如,第一主机故障后,应用模块接收故障报警信息。比如通过监听心跳包的方式进行监听,未接收到第一主机的心跳监听反馈信息,则判定第一主机故障,本实施例的故障报警包括声音式故障报警,如故障鸣笛等;灯光式故障报警,故障明灯或闪灯;无表现式故障报警,如无心跳信号或无反馈信号等。

s29:标记故障报警时第一运行数据同步到所述第二主机的节点信息。

本实施例通过在监测到第一主机故障时,会同时监测第一主机和第二主机的数据同步状况、以及社区版neo4j的数据请求状态,以便切换到第二主机后,更顺畅地接续第一主机继续支撑社区版neo4j的运行和应用。本实施例通过监测数据同步状态中数据节点的变化信息来监测第一主机和第二主机的数据同步状况。本步骤的节点信息包括但不限于节点属性、与其他节点的关联关系、节点查寻路径等节点信息。

s30:将所述节点信息传输至所述第二主机,以根据所述节点信息确定所述第二主机的运行进程起点。

将上述节点信息传输至第二主机,以便第二主机快速识别同步数据的差量,选择更优化的方式,接续第一主机的工作。本实施例的第二主机的运行进程起点的具体确定方法同步骤s22。

除了上述应用之外,本申请一实施例中,通过提供关于某个实体及其相邻数据关系(比如你可以提供一个web页面返回其结果),社区版neo4j也能够处理“大数据”,比如按照作者所处的地点(城市)计算书籍的分类数目,通过使用相同的设计模式,返回一组不同的列。比如,基于社区版neo4j的一个互式地渲染生成的文档门户网站,基于一个简单的文本文件,其中用文字描述以及图片描述了整个数据模型、架构以及用例查询,支持在线执行并保持可视化。门户网站提供了一个列表,允许用户查看每个列表的详细内容。

本申请实施例通过路由中转设备实现社区版neo4j的主备切换,弥补了现有社区版neo4j只有单一主机,遇到主机故障时无法继续使用社区版neo4j,本申请实施例通过主备主机切换,提高社区版neo4j的使用持续性,提高用户使用体验,且主备两主机通过数据备份和数据同步,减小主备两主机在切换前后对社区版neo4j工作进程的影响,对社区版neo4j的持续使用具有深远意义。本申请实施例的主备主机切换完全自动化,无需人员介入,降低成本,提高主备切换的时效性、提高效率;而且本申请实施例通过创建实例数据库,提高社区版neo4j快速响应数据请求,减少缓存缺失,提高准确性。

参照图2,本申请以实施例的主备切换装置,通过路由中转设备衔接社区版neo4j的第一主机和第二主机,第一主机与路由中转设备的第一端口相连,第二主机与路由中转设备的第二端口相连,本发明实施例通过路由中转设备实现衔接社区版neo4j的第一主机和第二主机的切换和数据转移,包括:

第一判断模块1,用于判断支撑社区版neo4j的第一主机是否出现故障。

本实施例通过第一判断模块1中的预设故障识别条件进行识别,举例地,根据启动指令连续启动第一主机三次以上,未成功开启,则判定为故障。本实施例为社区版neo4j的主备主机的切换,提高社区版neo4j的高可用性。本实施例的社区版neo4j是一个面向网络的数据库,基于嵌入式的、基于磁盘的、具备完全的事务特性的java持久化引擎,本实施例的社区版neo4j将结构化数据存储在网络中,可以应用更加敏捷和快速的开发模式,上述网络指灵活的数据结构,或从数学角度叫做图。neo4j相当于一个高性能的图引擎,具有成熟数据库的所有特性,社区版neo4j和企业版neo4j相比,虽然价格低、易推广使用,但技术特性方面却远没有企业版neo4j强大,因为社区版neo4j不存在双机集群系统,只有一个指定功率的主机,所以现有社区版neo4j不包括数据库和查询管理等功能,不具有高可用性。

切换模块2,用于若第一主机出现故障,则将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机。

本实施例通过切换模块2中的设置于前端的路由中转设备实现社区版neo4j的主备主机的切换,在第一主机出现异常故障时,及时切换到第二主机以便继续支撑社区版neo4j的顺利运行,提高社区版neo4j的运行效率。本实施例通过具有均衡功能的路由中转设备实现社区版neo4j的主备主机的切换,比如f5(f5network公司的负载均衡)、nginx(伊戈尔·赛索耶夫开发的负载均衡服务器)、keepalive(类似于layer3,4&7交换机制的软件,即第3层、第4层和第7层自动交换的软件,可用于主机间的切换)等,实现快速切换,进一步提高社区版neo4j的主备机切换的效果。比如通过f5进行切换时,可在一分钟内完成切换操作,提高社区版neo4j的主备主机的切换的顺畅度,提升用户使用体验。本申请其他实施例也可通过人工核查第一主机故障后,启动设置于前端的f5,通过转换主机设备与f5的连接端口的连接关系,实现从第一主机到第二主机的切换,以再次确认故障判断,提高主机设备的利用率。

参照图3,本申请另一实施例的主备切换装置,包括:

存储模块11,用于存储所述第一主机支撑社区版neo4j运行过程的第一运行数据。

本实施例的社区版neo4j在运行过程中,通过存储模块11实时存储运行数据,比如存储于第一主机的内存上,以便数据共享、数据分析等。

转移模块12,用于将所述第一运行数据通过指定方式转移到所述第二主机上,形成第二运行数据。

本实施例通过转移模块12将第一运行数据同步到第二主机上,以便第二主机在第一主机处理业务进程的基础上,接续第一主机继续支撑社区版neo4j的正常运行,以避免影响用户的正常使用,提高用户的使用体验。本步骤的指定方式包括但不限于ftp(filetransferprotocol)、sftp(securefiletransferprotocol,安全文件传送协议)、scp(securecopy)。

本申请一实施例中的指定方式为ftp,ftp是tcp/ip(transmissioncontrolprotocol/internetprotocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议)网络上两台计算机传送文件的协议,属于网络协议组的应用层。ftp客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。本实施例的ftp用到两个tcp连接,一个是命令链路,用来在ftp主机端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。本实施例的ftp是基于tcp协议的,因此防火墙设置中只需要放开指定端口的tcp协议即可,ftp允许明文传输,当然也可根据需要设置为带ssl(securesocketslayer安全套接层)的加密ftp。本实施例的ftp工作模式包括port(主动)方式、pasv(passive被动)方式。举例地,port(主动)方式的连接过程是:主机端向服务器的指定端口发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,主机端在命令链路上用port命令告诉服务器:已打开了一个1024+的随机端口,可连接。于是服务器从指定端口向主机端的1024+随机端口发送连接请求,建立一条数据链路来传送数据。再举例地,pasv方式的连接过程是:主机端向服务器的ftp端口发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用pasv命令告诉主机端:已打开了一个1024+的随机端口,可连接。于是主机端向服务器的指定端口发送连接请求,建立一条数据链路来传送数据。但普通ftp仅使用端口21作为命令传输。由服务器和主机端协商另外一个随机端口来进行数据传送。在pasv模式下,服务器端需要侦听另一个随机端口。假如服务器在路由器或者防火墙后面,端口映射会比较麻烦,因为无法提前知道数据端口编号,无法映射。

本申请一实施例中指定方式为数据传输使用ssh(secureshell),ssh为建立在应用层和传输层基础上的安全协议。本实施例的ssh主要有三部分组成:传输层协议ssh-trans,用户认证协议ssh-userauth,连接协议ssh-connect。利用ssh协议可以有效防止远程管理过程中的信息泄露问题,提供安全保证。本实施例的ssh中包括sftp安全文件传输子系统,sftp可以为传输文件提供一种安全的加密方法,sftp与上述ftp有着几乎一样的语法和功能。本实施例的sftp本身没有单独的守护进程,必须使用ssh守护进程来完成相应的连接操作。sftp使用加密传输认证信息和传输的数据,非常安全。但是由于使用了加密/解密技术,传输效率比普通的ftp要低得多,只有对网络安全性要求更高时,使用sftp代替ftp。

本实施例优选通过scp把第一运行数据转移到第二主机上,操作更加简单,更便于实现,提高数据同步共享的效率。本实施例的scp基于ssh登录,可用来进行远程文件复制的,更加满足将第一运行数据同步到第二主机上,并且整个复制过程是加密的。举例地,要把第一运行数据的当前一个文件同步到远程第二主机上,从本地复制到远程的命令格式为:scplocal_fileremote_username@remote_ip:remote_folder或者scplocal_fileremote_username@remote_ip:remote_file或者scplocal_fileremote_ip:remote_folder或者scplocal_fileremote_ip:remote_file,第1,2个命令格式中指定了用户名,命令执行后需要再输入密码,第1个命令格式仅指定了远程的目录,文件名字不变,第2个命令格式指定了文件名;第3,4个命令格式没有指定用户名,命令执行后需要输入用户名和密码,第3个命令格式仅指定了远程的目录,文件名字不变,第4个命令格式指定了文件名;而从远程复制到本地,只要将从本地复制到远程的命令的后两个命令格式中的参数调换顺序即可实现,本实施例的远程和本地包括远程服务器与本地服务器之间的数据同步,也包括远程主机终端与本地主机终端之间的数据同步。本实施例的scp/sftp属于开源协议可免费使用,不像ftp存在安全或版权问题,且scp/sftp传输软件均免费并开源,方便开发各种扩展插件和应用组件。

参照图4,本申请再一实施例的主备切换装置,包括:

第二判断模块21,用于判断所述第二运行数据与所述第一运行数据的数据交集。

本实施例的数据交集通过比较第一运行数据与第二运行数据的节点数获得。本申请其他实施例中,数据交集也可通过数据字节数等其他方式获得。本实施例的社区版neo4j是一个高性能的nosql(notonlysql)图形数据库,它将结构化数据存储在网络上,nosql图形数据库中,对应着两个概念:节点集和节点。nosql图形数据库中的数据展示并不使用节点集,而是独立的节点。本实施例的nosql具有如下特征:不需要事先定义数据模式,预定义表结构,数据中的每条记录都可能有不同的属性和格式,当插入数据时,并不需要预先定义模式;相对于将所有数据存储的存储区域网络中的全共享架构,nosql将数据划分后存储在各个本地服务器上,因为从本地磁盘读取数据的性能好于通过网络传输读取数据的性能,从而提高了系统的性能;可以在系统运行的时候,动态增加或者删除节点,不需要停机维护,数据可以自动迁移;相对于将数据存放于同一个节点,nosql数据库需要将数据进行分区,将记录分散在多个节点上面,并且分区的同时还要做复制,既提高了并行性能,又能保证没有单点失效的问题;和raid(redundantarraysofindependentdisks,磁盘阵列)存储系统不同的是,nosql中的复制是基于日志的异步复制,数据尽快地写入节点,减少网络传输引起迟延。nosql数据库并没有一个统一的架构,两种nosql数据库之间的不同,甚至远远超过两种关系型数据库的不同。但nosql各有所长,本实施例的nosql图形数据库特别适用于社区版neo4j,第一主机和第二主机之间同步nosql图形数据库的数据,依据复制节点数据进行完成。

确定模块22,用于根据所述数据交集确定所述第二主机的运行进程起点。

本实施例中通过确定模块22根据第一运行数据与第二运行数据的数据交集确定第二主机的启动起点标签,即第二主机的运行进程起点。比如,第一运行数据中包括节点a、节点b、节点c、节点d;第二运行数据中包括节点a、节点b、节点c,则进一步判断节点c的数据是否完整,若是,则第二主机则从第一主机在节点c处或节点c之前的任一时刻点对应的业务数据处所进行的业务处理开始,继续支撑社区版neo4j的运行;若判定节点c的数据不完整,则判断是否可获取节点c的数据终止处的数据信息,若可获取节点c的数据终止处的数据信息,则第二主机从第一主机在上述节点c的数据终止处或节点c的数据终止之前的任一时刻点对应的业务数据处所进行的业务处理开始;若不可获取节点c的数据终止处的数据信息,则第二主机从第一主机在节点c之前的任一时刻点对应的业务数据处所进行的业务处理开始。本申请其他实施例选择从第一主机在节点a处所进行的业务处理开始或从第一主机在节点a处到节点c处之间的任一时刻点对应的业务状态作为起点。第二主机选择的起始节点能够接续第一主机继续支撑社区版neo4j的正常运行,不影响用户的正常使用即可。数据在第一主机与第二主机之间实现共享中存在时间延迟,第二运行数据中的数据节点为业务已进行过的数据,第二主机选择的节点可以是刚好接续的节点数据为起始点,也可是刚好接续节点之前的节点数据作为起始点。

参照图5,本申请又一实施例的主备切换装置,包括:

记录模块23,用于记录所述社区版neo4j的访问数据和所述访问数据对应的访问频次。

本实施例的社区版neo4j通过记录模块23缓存记录最近访问的数据。

获取模块24,用于获取所述访问数据中,所述访问频次大于预设阈值的高频次访问数据。

举例地,本实施例的预设阈值比如为访问三次,访问次数大于三次则为高频次访问数据。

形成模块25,用于若访问频次大于预设阈值,则通过汇总所述访问数据与所述访问数据对应的实例场景,形成实例数据库并存储。

本实施例的社区版neo4j是一个图形数据库,数据并非保存在表或集合中,而是保存为节点以及节点之间的关系。在社区版neo4j中,节点以及关系都能够包含保存值的属性,为节点设置零或多个标签(例如author或book),每个关系都对应一种类型(例如wrote或friend_of),关系总是从一个节点指向另一个节点(但可以在不考虑指向性的情况下进行查询)。本实施例的社区版neo4j自带一套易于学习的查询语言(名为cypher)不使用schema(数据库对象的集合,一个用户一般对应一个schema),因此可以满足任何形式的需求。本实施例通过将高频次访问数据根据情景的相关性进行汇总,形成实例场景的数据库并存储,以实现数据库的局部数据逐渐模块化、模型化,以提高社区版neo4j快速响应数据请求,且防止请求量非常大时而导致随机分布的数据发生缓存缺失,上述实例场景包括根据数据类型形成的场景情景汇总,比如将涉及医药信息、医院信息、病例介绍、医疗器材等的数据汇总为医疗行业的实例场景。本实施例的社区版neo4j与关系型数据库相比,对于高度关联的数据(图形数据)的查询快速要快上许多。本实施例的社区版neo4j的实体与关系结构非常自然地切合人类的直观感受,支持兼容acid(数据库事务正确执行的四个基本要素的缩写,包含:原子性atomicity、一致性consistency、隔离性isolation、持久性durability)的事务操作,提供了一个高可用性模型,以支持大规模数据量的查询,支持备份、数据局部性以及冗余,提供了一个可视化的查询控制台,避免人员疲倦感。本实施例通过形成模块25汇总所述访问数据与所述访问数据对应的实例场景,形成实例数据库并存储,以提高社区版neo4j快速响应数据请求,且防止请求量非常大时而导致随机分布的数据发生缓存缺失。

参照图6,本申请又一实施例的主备切换装置,还包括:

第三判断模块26,用于判断所述第二主机当前运行的实例场景是否已存储备份。

通过第三判断模块26判断当前运行的实例场景是否已存在相应的备份数据库,提高调用数据的效率。比如,本实施例通过实例场景的分类标签判断两个实例场景的相似度,比如,实例场景标签显示两个实例场景均为医疗领域,则判定相似。若一个场景标签显示为医疗领域,另一个场景标签显示为影视领域,则判定不相似。本实施例的场景标签分类可根据需要,进一步细化分类,以提高根据实例场景标签调用数据的可靠性。本实施例的实例场景分类标签可通过卷积神经网络获取的实例场景的图片组成要素的特征进行分类,并根据图片组成要素的特征相似度判断实例场景的相似度。本实施例优选根据欧式距离判断两个图片组成要素的特征相似度,进而判断两个实例场景的相似度。

调用模块27,用于若已存储备份,则调用与当前运行的所述实例场景匹配的访问数据。

举例地,当前运行的实例场景为医疗领域,则通过调用模块27调用标签为医疗领域的数据,增加快捷性。

参照图7,本申请又一实施例的主备切换装置,包括:

监测模块28,用于监测所述第一主机的故障报警。

本实施例在衔接第一主机和第二主机的应用模块上,设置了具有监测功能的监测模块28,以监测第一主机的故障报警。比如,第一主机故障后,应用模块接收故障报警信息。比如通过监听心跳包的方式进行监听,未接收到第一主机的心跳监听反馈信息,则判定第一主机故障,本实施例的故障报警包括声音式故障报警,如故障鸣笛等;灯光式故障报警,故障明灯或闪灯;无表现式故障报警,如无心跳信号或无反馈信号等。

标记模块29,用于标记故障报警时第一运行数据同步到所述第二主机的节点信息。

本实施例通过监测模块28监测到第一主机故障时,会同时监测第一主机和第二主机的数据同步状况并通过标记模块29标记,监测社区版neo4j的数据请求状态,以便切换到第二主机后,更顺畅地接续第一主机继续支撑社区版neo4j的运行和应用。本实施例通过监测数据同步状态中数据节点的变化信息来监测第一主机和第二主机的数据同步状况。本步骤的节点信息包括但不限于节点属性、与其他节点的关联关系、节点查寻路径等节点信息。

传输模块30,用于将所述节点信息传输至所述第二主机,以根据所述节点信息确定所述第二主机的运行进程起点。

本实施例通过传输模块30将上述节点信息传输至第二主机,以便第二主机快速识别同步数据的差量,选择更优化的方式,接续第一主机的工作。本实施例的第二主机的运行进程起点的具体确定方法同确定模块22。

除了上述应用之外,本申请一实施例中,通过提供关于某个实体及其相邻数据关系(比如你可以提供一个web页面返回其结果),社区版neo4j也能够处理“大数据”,比如按照作者所处的地点(城市)计算书籍的分类数目,通过使用相同的设计模式,返回一组不同的列。比如,基于社区版neo4j的一个互式地渲染生成的文档门户网站,基于一个简单的文本文件,其中用文字描述以及图片描述了整个数据模型、架构以及用例查询,支持在线执行并保持可视化。门户网站提供了一个列表,允许用户查看每个列表的详细内容。

参照图8,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储社区版neo4j数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种主备切换方法。

通过路由中转设备衔接社区版neo4j的第一主机和第二主机,第一主机与路由中转设备的第一端口相连,第二主机与路由中转设备的第二端口相连,上述处理器执行上述主备切换方法的步骤:判断支撑社区版neo4j的第一主机是否出现故障;若是,则将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机。

上述计算机设备,通过路由中转设备实现社区版neo4j的主备切换,弥补了现有社区版neo4j只有单一主机,遇到主机故障时无法继续使用社区版neo4j;通过主备主机切换,提高社区版neo4j的使用持续性,提高用户使用体验,且主备两主机通过数据备份和数据同步,减小主备两主机在切换前后对社区版neo4j工作进程的影响,对社区版neo4j的持续使用具有深远意义;主备主机切换完全自动化,无需人员介入,降低成本,提高主备切换的时效性、提高效率;而且通过创建实例数据库,提高社区版neo4j快速响应数据请求,减少缓存缺失,提高准确性。

在一个实施例中,所述判断支撑社区版neo4j的第一主机是否出现故障的步骤之前,包括:存储所述第一主机的第一运行数据;将所述第一运行数据通过指定方式转移到所述第二主机上,形成第二运行数据。

在一个实施例中,所述将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:判断所述第二运行数据与所述第一运行数据的数据交集;根据所述数据交集确定所述第二主机的运行进程起点。

在一个实施例中,所述将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:记录所述第二主机的访问数据和所述访问数据对应的访问频次;获取所述访问数据中,所述访问频次大于预设阈值的高频次访问数据;通过汇总所述高频次访问数据与所述高频次访问数据对应的实例场景,形成实例数据库并存储。

在一个实施例中,所述通过汇总所述高频次访问数据与所述高频次访问数据对应的实例场景,形成实例数据库并存储的步骤之后,还包括:判断所述第二主机当前运行的实例场景是否已存储备份;若是,则调用与当前运行的所述实例场景匹配的访问数据。

在一个实施例中,所述将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:监测所述第一主机的故障报警;标记故障报警时第一运行数据同步到所述第二主机的节点信息;将所述节点信息传输至所述第二主机,以根据所述节点信息确定所述第二主机的运行进程起点。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现主备切换方法,通过路由中转设备衔接社区版neo4j的第一主机和第二主机,第一主机与路由中转设备的第一端口相连,第二主机与路由中转设备的第二端口相连,具体为:判断支撑社区版neo4j的第一主机是否出现故障;若是,则将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机。

上述计算机可读存储介质,通过路由中转设备实现社区版neo4j的主备切换,弥补了现有社区版neo4j只有单一主机,遇到主机故障时无法继续使用社区版neo4j;通过主备主机切换,提高社区版neo4j的使用持续性,提高用户使用体验,且主备两主机通过数据备份和数据同步,减小主备两主机在切换前后对社区版neo4j工作进程的影响,对社区版neo4j的持续使用具有深远意义;主备主机切换完全自动化,无需人员介入,降低成本,提高主备切换的时效性、提高效率;而且通过创建实例数据库,提高社区版neo4j快速响应数据请求,减少缓存缺失,提高准确性。

所述判断支撑社区版neo4j的第一主机是否出现故障的步骤之前,包括:存储所述第一主机的第一运行数据;将所述第一运行数据通过指定方式转移到所述第二主机上,形成第二运行数据。

在一个实施例中,将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:判断所述第二运行数据与所述第一运行数据的数据交集;根据所述数据交集确定所述第二主机的运行进程起点。

在一个实施例中,将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:记录所述第二主机的访问数据和所述访问数据对应的访问频次;获取所述访问数据中,所述访问频次大于预设阈值的高频次访问数据;通过汇总所述高频次访问数据与所述高频次访问数据对应的实例场景,形成实例数据库并存储。

在一个实施例中,处理器通过汇总所述高频次访问数据与所述高频次访问数据对应的实例场景,形成实例数据库并存储的步骤之后,还包括:判断所述第二主机当前运行的实例场景是否已存储备份;若是,则调用与当前运行的所述实例场景匹配的访问数据。

在一个实施例中,处理器将与路由中转设备第一端口相连的第一主机切换为与路由中转设备第二端口相连的第二主机的步骤之后,包括:监测所述第一主机的故障报警;标记故障报警时第一运行数据同步到所述第二主机的节点信息;将所述节点信息传输至所述第二主机,以根据所述节点信息确定所述第二主机的运行进程起点。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1