一种高可用的数据交换集群的应用方法与流程

    专利2022-07-07  164


    本发明涉及通信技术,尤其涉及一种高可用的数据交换集群的应用方法。



    背景技术:

    在企业内部,随着信息系统的不断增加,各自孤立工作的信息系统将会造成大量的冗余数据和业务人员的重复劳动,企业急需通过建立数据交换平台来联系横贯整个企业的信息系统,完成企业内部的系统之间无缝的共享和交换数据。

    对于传统的单机形式的数据交换服务,随着交换数据量的增加,在可用性方面,将会难以满足要求。简单的依靠提高单机的硬件性能无法达到高可用性与高可靠性,因此需要一种采用多服务器集群的技术方案。



    技术实现要素:

    本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种高可用的数据交换集群的应用方法,实现多个数据交换集群间数据交换的高可用性与可靠性,确保数据的完整性和安全性。

    为解决上述技术问题,本发明提出的技术方案为:

    一种高可用的数据交换集群的应用方法,所述数据交换集群包括源信息系统所在的数据交换集群a和目的信息系统所在的数据交换集群b,源信息系统和目的信息系统进行数据交换包括以下步骤:

    s1)源信息系统将消息发送给数据交换集群a,数据交换集群a对消息进行哈希校验,校验通过后数据交换集群a的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将消息发送给被选择的数据交换节点中的消息发送方并进行哈希校验,校验通过后消息发送方将消息发送给数据交换集群b;

    s2)数据交换集群b的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将收到的消息发送给被选择的数据交换节点中的消息接收方并进行哈希校验,校验通过后消息接收方将消息转发给目的信息系统并向消息发送方反馈消息的状态。

    进一步的,步骤s1)之前还包括配置数据交换集群的步骤,具体包括:将两个数据交换集群分别标记为数据交换集群a和数据交换集群b,每个数据交换集群包括至少4台物理机,其中2台物理机安装有haproxy并配置成主备集群,另外2台物理机分别配置为数据交换节点,haproxy配置负载均衡策略为轮询调度策略,将数据交换节点的调度权重设置为相同的值,并且配置健康检查uri。

    进一步的,步骤s1)具体包括以下步骤:

    s11)源信息系统将消息发送到数据交换集群a的haproxy提供的虚拟ipvipa上,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则进入下一步;

    s12)数据交换集群a的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将消息通过数据交换请求发送给被选择的数据交换节点中的消息发送方;

    s13)消息发送方收到数据交换请求并得到完整消息后,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则保存消息发送记录并更新消息状态;

    s14)消息发送方将消息逐一发送到数据交换集群b的haproxy提供的虚拟ipvipb上。

    进一步的,步骤s14)中,所述消息发送方发送完消息后,通过轮询的方式向消息接收方查询所发送的消息的状态,直至消息从中间状态流转到最终状态时停止查询,并更新消息发送记录。

    进一步的,步骤s2)具体包括以下步骤:

    s21)数据交换集群b的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将收到的消息通过数据交换请求发送给被选择的数据交换节点中的消息接收方;

    s22)消息接收方收到数据交换请求并得到完整消息后,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则保存消息接收记录并更新消息状态为已寄存,然后向消息发送方反馈消息的状态;

    s23)消息接收方根据消息中的目标信息系统appid连接目的信息系统并向目的信息系统发送消息,发送完毕后更新消息状态为已下载并向消息发送方反馈。

    进一步的,步骤s1)和步骤s2)中还包括数据交换节点宕机时的处理步骤,具体包括:数据交换集群a和/或数据交换集群b的haproxy查询健康检测uri获取到存在服务为不可用状态的数据交换节点时,停止向所述数据交换节点发送数据交换请求并将对应的未完成交换的消息保存到数据库中;数据交换集群a和/或数据交换集群b的haproxy查询健康检测uri获取到所述数据交换节点服务变为可用状态时,通过数据库查询未完成交换的消息,将未完成交换的消息通过数据交换请求恢复转发到所述数据交换节点。

    与现有技术相比,本发明的优点在于:

    1、本发明通过在多个数据交换集群分别配置高可用的haproxy负载均衡软件,使得数据交换集群可以无限水平扩展,基于haproxy的健康检查机制,数据交换集群在数据交换节点发生故障时,能够快速进行故障切换,当故障恢复时,能够自动恢复对原故障数据交换节点的访问,因此实现了数据交换集群的高可用性;

    2、本发明在数据交换过程中接收消息的每一阶段,都会对消息进行哈希校验,保证了消息在交换过程中的安全性,在数据交换集群的数据交换节点宕机恢复后,通过断点续传恢复未完成交换的消息的交换,确保了消息在交换过程中的完整性。

    附图说明

    图1为本发明实施例方法中的数据交换集群结构示意图。

    图2为本发明实施例方法中的数据交换流程示意图。

    具体实施方式

    以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

    本发明提出一种高可用的数据交换集群的应用方法,如图1所示,本实施例中的数据交换集群包括源信息系统所在的数据交换集群a和目的信息系统所在的数据交换集群b,源信息系统和目的信息系统进行数据交换包括以下步骤:

    s1)源信息系统将消息发送给数据交换集群a,数据交换集群a对消息进行哈希校验,校验通过后数据交换集群a的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将消息发送给被选择的数据交换节点中的消息发送方并进行哈希校验,校验通过后消息发送方将消息发送给数据交换集群b;

    s2)数据交换集群b的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将收到的消息发送给被选择的数据交换节点中的消息接收方并进行哈希校验,校验通过后消息接收方将消息转发给目的信息系统并向消息发送方反馈消息的状态。

    通过上述步骤,本实施例针对多数据交换集群在每个数据交换集群配置haproxy负载均衡软件,使得数据交换集群可以无限水平扩展,在数据交换过程中接收消息的每一阶段,都会对消息进行哈希校验,保证了消息在交换过程中的安全性。

    本实施例的步骤s1)之前还包括配置数据交换集群的步骤,具体包括:如图1所示,将两个数据交换集群分别标记为数据交换集群a和数据交换集群b,每个数据交换集群包括至少4台物理机,其中2台物理机安装haproxy、keepalived软件,将haproxy配置成主备集群服务,本实施例中haproxy需至少配备一台备机,以应对主机硬件故障、断电等突发情况;运行haproxy的物理机上不部署其他的应用以确保haproxy独占资源,同时避免其他应用引发操作系统或机器的故障,另外2台物理机分别配置为数据交换节点,运行数据交换软件,如图1中所示的数据交换节点1和数据交换节点2,haproxy配置将tcp请求转发到数据交换节点1和数据交换节点2,haproxy配置负载均衡策略为轮询调度策略,将数据交换节点的调度权重设置为相同的值,并且配置健康检查uri。

    本实施例中所述数据交换软件由golang编写的平台软件,适用于各种服务器平台,数据交换软件由两部分组成,包括消息发送方sbox和消息接收方dbox。haproxy与keepalived是开源的搭建主备集群的负载均衡软件。

    如图2左半部分所示,本实施例的步骤s1)具体包括以下步骤:

    s11)源信息系统将消息发送到数据交换集群a的haproxy提供的虚拟ipvipa上,本实施例中为每个信息系统分配一个appid,保存相应的信息系统信息到数据库,每条消息中都包含源信息系统appid、目标信息系统appid以及消息内容的md5值,数据交换集群a将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,如果不一致,说明消息已被篡改,则停止消息交换并且记录异常日志,否则进入下一步;

    s12)数据交换集群a的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将消息通过数据交换请求发送给被选择的数据交换节点所运行的数据交换软件的消息发送方sbox;

    s13)消息发送方sbox收到数据交换请求并得到完整消息后,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则保存消息发送记录并更新消息状态;

    s14)消息发送方sbox将消息逐一发送到数据交换集群b的haproxy提供的虚拟ipvipb上。

    本实施例的步骤s14)中,所述消息发送方sbox发送完消息后,通过轮询的方式向消息接收方dbox查询所发送的消息的状态,直至消息从中间状态流转到最终状态时停止查询,并更新消息发送记录。

    如图2右半部分所示,本实施例的步骤s2)具体包括以下步骤:

    s21)数据交换集群b的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将收到的消息通过数据交换请求发送给被选择的数据交换节点运行的数据交换软件的消息接收方dbox;

    s22)消息接收方dbox收到数据交换请求并得到完整消息后,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则保存消息接收记录并更新消息状态为已寄存,然后向消息发送方sbox反馈消息的状态;

    s23)消息接收方dbox根据消息中的目标信息系统appid连接目的信息系统并向目的信息系统发送消息,发送完毕后更新消息状态为已下载并向消息发送方sbox反馈。

    在数据交换集群a、消息发送方sbox所在的数据交换节点以及消息接收方dbox所在的数据交换节点的每一次消息交换中都会将消息状态保存到数据库中,以便于消息的跟踪与查询,本实施例步骤s1)和步骤s2)中还包括数据交换节点宕机时的处理步骤,具体包括:数据交换集群a和/或数据交换集群b的haproxy查询健康检测uri获取到存在服务为不可用状态的数据交换节点时,停止向所述数据交换节点发送数据交换请求并将对应的未完成交换的消息保存到数据库中;数据交换集群a和/或数据交换集群b的haproxy查询健康检测uri获取到所述数据交换节点服务变为可用状态时,通过数据库查询未完成交换的消息,将未完成交换的消息通过数据交换请求恢复转发到所述数据交换节点。

    基于haproxy的健康检查机制,数据交换集群在数据交换节点发生故障时,能够快速进行故障切换,当故障恢复时,能够自动恢复对原故障数据交换节点的访问,因此实现了数据交换集群的高可用性,同时在数据交换集群的数据交换节点宕机恢复后,通过断点续传恢复未完成交换的消息的交换,确保了消息在交换过程中的完整性。

    上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。


    技术特征:

    1.一种高可用的数据交换集群的应用方法,其特征在于,所述数据交换集群包括源信息系统所在的数据交换集群a和目的信息系统所在的数据交换集群b,源信息系统和目的信息系统进行数据交换包括以下步骤:

    s1)源信息系统将消息发送给数据交换集群a,数据交换集群a对消息进行哈希校验,校验通过后数据交换集群a的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将消息发送给被选择的数据交换节点中的消息发送方并进行哈希校验,校验通过后消息发送方将消息发送给数据交换集群b;

    s2)数据交换集群b的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将收到的消息发送给被选择的数据交换节点中的消息接收方并进行哈希校验,校验通过后消息接收方将消息转发给目的信息系统并向消息发送方反馈消息的状态。

    2.根据权利要求1所述的高可用的数据交换集群的应用方法,其特征在于,步骤s1)之前还包括配置数据交换集群的步骤,具体包括:将两个数据交换集群分别标记为数据交换集群a和数据交换集群b,每个数据交换集群包括至少4台物理机,其中2台物理机安装有haproxy并配置成主备集群,另外2台物理机分别配置为数据交换节点,haproxy配置负载均衡策略为轮询调度策略,将数据交换节点的调度权重设置为相同的值,并且配置健康检查uri。

    3.根据权利要求1所述的高可用的数据交换集群的应用方法,其特征在于,步骤s1)具体包括以下步骤:

    s11)源信息系统将消息发送到数据交换集群a的haproxy提供的虚拟ipvipa上,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则进入下一步;

    s12)数据交换集群a的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将消息通过数据交换请求发送给被选择的数据交换节点中的消息发送方;

    s13)消息发送方收到数据交换请求并得到完整消息后,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则保存消息发送记录并更新消息状态;

    s14)消息发送方将消息逐一发送到数据交换集群b的haproxy提供的虚拟ipvipb上。

    4.根据权利要求3所述的高可用的数据交换集群的应用方法,其特征在于,步骤s14)中,所述消息发送方发送完消息后,通过轮询的方式向消息接收方查询所发送的消息的状态,直至消息从中间状态流转到最终状态时停止查询,并更新消息发送记录。

    5.根据权利要求1所述的高可用的数据交换集群的应用方法,其特征在于,步骤s2)具体包括以下步骤:

    s21)数据交换集群b的haproxy通过轮询调度的负载均衡策略选择一个数据交换节点,将收到的消息通过数据交换请求发送给被选择的数据交换节点中的消息接收方;

    s22)消息接收方收到数据交换请求并得到完整消息后,将消息的md5值与消息中的消息内容md5值进行比较判断消息是否被篡改,是则停止消息交换并且记录异常日志,否则保存消息接收记录并更新消息状态为已寄存,然后向消息发送方反馈消息的状态;

    s23)消息接收方根据消息中的目标信息系统appid连接目的信息系统并向目的信息系统发送消息,发送完毕后更新消息状态为已下载并向消息发送方反馈。

    6.根据权利要求2所述的高可用的数据交换集群的应用方法,其特征在于,步骤s1)和步骤s2)中还包括数据交换节点宕机时的处理步骤,具体包括:数据交换集群a和/或数据交换集群b的haproxy查询健康检测uri获取到存在服务为不可用状态的数据交换节点时,停止向所述数据交换节点发送数据交换请求并将对应的未完成交换的消息保存到数据库中;数据交换集群a和/或数据交换集群b的haproxy查询健康检测uri获取到所述数据交换节点服务变为可用状态时,通过数据库查询未完成交换的消息,将未完成交换的消息通过数据交换请求恢复转发到所述数据交换节点。

    技术总结
    本发明公开了一种高可用的数据交换集群的应用方法,包括以下步骤:源信息系统将消息发送给数据交换集群A并进行哈希校验,校验通过后数据交换集群A的HAProxy通过轮询调度的负载均衡策略选择一个数据交换节点,将消息发送给被选择的数据交换节点中的消息发送方并进行哈希校验,校验通过后消息发送方将消息发送给数据交换集群B;数据交换集群B的HAProxy通过轮询调度的负载均衡策略选择一个数据交换节点,将收到的消息发送给被选择的数据交换节点中的消息接收方并进行哈希校验,校验通过后消息接收方将消息转发给目的信息系统并向消息发送方反馈消息的状态。本发明实现了多个数据交换集群间数据交换的高可用性与可靠性,确保数据的完整性和安全性。

    技术研发人员:刘彪;彭勇;申锟铠;刘文清;杨涛
    受保护的技术使用者:湖南麒麟信安科技股份有限公司
    技术研发日:2020.11.25
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8250.html

    最新回复(0)