一种基于文件式存储服务高可用架构的制作方法

文档序号:21180165发布日期:2020-06-20 17:45阅读:231来源:国知局
一种基于文件式存储服务高可用架构的制作方法

本发明涉及产品软件和应用软件技术领域,具体为一种基于文件式存储服务高可用架构。



背景技术:

知识图谱是一个新兴技术方向,为互联网网金融风控,保险,社交行业的数据挖掘提供了一个新的方向和思路。与此同时,工业界开发出了很多与知识图谱相关的分析工具和存储工具,其中大部分框架数据存储都是以文件形式,比如:neo4j(社区版),tigergraph(社区版)。这些图数据库提供了知识图谱相分析、存储、查询等相关功能。其中,使用最为广泛的neo4j,分为商业版和社区版两个分支。商业版本功能最为完善,同时收费高昂。社区版完全免费,但是功能简单。大部分中小企业使用neo4j(社区版)或者tigergraph(社区版)作为图数据库。

当前,类似于neo4j等开源版文件式存储服务无法搭建集群模式,且不支持主备模式。对于生产环境,无法实现高可用。一旦这些服务出现节点故障,基于此类服务的相关应用将全部不可用。这对工业级7*24小时全天候服务产生极大的挑战。若采用商业版图数据库,会极大提高整个产品的运营成本,分流大部分研发资源。如果采用janusgraph或者dbgraph等其他开源框架,对于已经上线的产品需要二次开发,非常不利于产品的稳定和发展。



技术实现要素:

本发明的目的在于提供一种基于文件式存储服务高可用架构,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种基于文件式存储服务高可用架构,该高可用架构包括:

心跳检查模块:采用主控模块主动检查的方式实现心跳机制,脚本中通过telnet所配置的工作服务组件的端口,来判定服务组件的工作状态,并将心跳结果反馈到主控模块,再由主控模块做相应事件处理,并且心跳机制还负责各节点间集群状态同步;

命令执行模块:封装了集群中的各个服务组件的操作,负责各个服务组件的管理和调度的实现;

数据同步模块:文件式存储服务在提供服务时,会将图数据发生的更改实时的写入到文件中;

虚拟ip映射模块:集群中的故障转移通过虚拟ip来实现,通过心跳检查集群中节点状态,按照一定策略将虚拟ip映射到不同的物理ip上;

主控模块:负责控制调度各级模块工作流程,按照默认策略处理各种线上各种事件。

优选的,所述命令执行模块分为本地命令模块和远程命令模块,所述本地命令模块封装了本地服务管理的命令集合,负责调度管理本地服务的实现和事件日志的输出,所述远程命令模块封装了操作远程节点服务组件的命令集合,需要主从节点实现免密码登陆,所述远程命令模块负责根据当前节点角色判断远程节点ip和服务端口。

优选的,所述远程命令模块的判断逻辑为当前节点角色是文件式存储服务主节点,远程节点就是文件式存储服务从节点,当前节点角色是文件式存储服务从节点,远程节点就是文件式存储服务主节点,并根据当前角色不同,使用不同逻辑的命令集合操作远程节点。并根据配置将远程ip和端口拼接到命令中,实现远程服务的的调度和管理。

优选的,所述数据同步模块采用sersync+rsync架构,所述数据同步模块监听文件夹中文件变化并实时同步到备用服务文件夹中。

优选的,所述sersync+rsync架构的sersync采用性能强劲的c++语言编写,自带crontab功能,可自定义同步时间间隔,所述sersync会过滤掉linux系统文件产生临时文件和重复文件的操作,再结合rsync同步数据,所述sersync支持多线程同步,此外,所述sersync自带出错处理机制,所述sersync+rsync架构的rsync组件是一个开源的,可实现全量及增量的本地或远程数据同步备份工具,所述rsync组件拥有其独特的“quickcheck算法”,检查两个文件的不同部分,对本地和远程两个主机之间的文件不同部分进行同步,所述rsync组件通过lan/wan快速同步多台主机间的文件。

优选的,所述虚拟ip映射模块由keepalived服务实现。

优选的,所述主控模块基于事件驱动开发。

优选的,所述虚拟ip映射模块的故障转移需要多种通讯协议。

优选的,所述多种通讯协议包括http通讯协议和blot/jdbc通讯协议。

优选的,所述该高可用架构独立于工作组件。

与现有技术相比,本发明的有益效果是:

1、本发明,全部使用开源框架且无任何其他成本,能为企业节省大量资金成本。

2、本发明能够快速高效的实现主备节点数据实时热备和故障节点切换,为企业服务稳定性和数据安全提供了可靠的支撑。

附图说明

图1为本发明的架构解析图;

图2为本发明的事件处理流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-2,本发明提供一种技术方案:一种基于文件式存储服务高可用架构,该高可用架构包括:

心跳检查模块:采用主控模块主动检查的方式实现心跳机制,脚本中通过telnet所配置的工作服务组件的端口,来判定服务组件的工作状态,并将心跳结果反馈到主控模块,再由主控模块做相应事件处理,并且心跳机制还负责各节点间集群状态同步;

命令执行模块:封装了集群中的各个服务组件的操作,负责各个服务组件的管理和调度的实现;

数据同步模块:文件式存储服务在提供服务时,会将图数据发生的更改实时的写入到文件中;

虚拟ip映射模块:集群中的故障转移通过虚拟ip来实现,通过心跳检查集群中节点状态,按照一定策略将虚拟ip映射到不同的物理ip上;

主控模块:负责控制调度各级模块工作流程,按照默认策略处理各种线上各种事件。

具体的,命令执行模块分为本地命令模块和远程命令模块,本地命令模块封装了本地服务管理的命令集合,负责调度管理本地服务的实现和事件日志的输出,远程命令模块封装了操作远程节点服务组件的命令集合,需要主从节点实现免密码登陆,远程命令模块负责根据当前节点角色判断远程节点ip和服务端口。

具体的,远程命令模块的判断逻辑为当前节点角色是文件式存储服务主节点,远程节点就是文件式存储服务从节点,当前节点角色是文件式存储服务从节点,远程节点就是文件式存储服务主节点,并根据当前角色不同,使用不同逻辑的命令集合操作远程节点。并根据配置将远程ip和端口拼接到命令中,实现远程服务的的调度和管理。

具体的,数据同步模块采用sersync+rsync架构,数据同步模块监听文件夹中文件变化并实时同步到备用服务文件夹中。

具体的,sersync+rsync架构的sersync采用性能强劲的c++语言编写,自带crontab功能,可自定义同步时间间隔,sersync会过滤掉linux系统文件产生临时文件和重复文件的操作,再结合rsync同步数据,sersync支持多线程同步,此外,sersync自带出错处理机制,sersync+rsync架构的rsync组件是一个开源的,可实现全量及增量的本地或远程数据同步备份工具,rsync组件拥有其独特的“quickcheck算法”,检查两个文件的不同部分,对本地和远程两个主机之间的文件不同部分进行同步,rsync组件通过lan/wan快速同步多台主机间的文件。

具体的,虚拟ip映射模块由keepalived服务实现。

具体的,主控模块基于事件驱动开发,降低组件间耦合,并为各个模块定义相应事件模型以及响应策略,主控模块制定了默认的事件响应策略。

具体的,虚拟ip映射模块的故障转移需要多种通讯协议。

具体的,多种通讯协议包括http通讯协议和blot/jdbc通讯协议,有些文件式存储服务对外开放http通讯协议的,使用户可以通过浏览器和文件式存储服务交互,并实现增删改查以及集群的配置。有些文件式存储服务对外开放blot/jdbc通讯协议,使用户可以通过应用程序和文件式存储服务进行数据交互,基于以上,虚拟ip需要提供http/jdb/bolt等多种网络协议的转发功能。而keepavlied恰巧工作在三层,四层,五层网络协议,可以很好的完成多种通讯协议(http/jdbc/bolt)的请求转发。keepalived采用集群模式,避免虚拟ip组件产生单点故障问题。默认情况下neo4j主节点所在的keepalived服务配置较高优先级,虚拟ip优先优先强制映射到文件式存储服务主节点所在的物理ip上。在主节点文件式存储服务出现故障时,由主控模块将虚拟ip映射到从节点的物流ip上。集群的ip映射和节点故障检查对用户是透明的,所以用户在访问文件式存储服务集群时,只需要访问虚拟ip。

具体的,该高可用架构独立于工作组件,整套架构可以为其他类似服务组件提供高可用保证。

工作原理:步骤一:1.启动数据同步模块(数据同步方向由主节点到从节点),2.启动主节点服务,3.启动keepalived服务将虚拟ip映射到主机点的物理ip,并定时执行主节点心跳检查。以上步骤完成完成,当前集群状态为主节点负载。

步骤二:当发现主节点服务下线,切换数据同步方向(从节点到主节点)。2.通过远程命令模块启动从节点上的服务。3.将虚拟ip映射到从节点所在物理ip。以上步骤完成,当前集群状态为从节点负载。

步骤三:在从节点对外负载情况下,当发现主节点上线。1.关闭当前节点服务。2.切换数据同步方向(从主节点到从节点方向)。3.切换虚拟ip映射(将向虚拟ip映射到从节点的物理ip上)。以上步骤完成,当前集群状态为从节点负载。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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