发明内容
有鉴于此,本发明的目的在于提供一种网络连接复用方法、装置、设备及介质,能够实现单元数据服务器节点的多业务处理单元,同时降低网路链接带来的负担,提高网络通信能力。其具体方案如下:
第一方面,本申请公开了一种网络连接复用方法,应用于元数据服务器集群节点,包括:
获取客户端不同的业务单元的心跳信息和数据操作信息;
通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端;
通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。
可选的,所述获取客户端不同的业务单元的心跳信息数据操作信息之前,还包括:
通过所述预设私有通信组件获取不同的所述业务单元的业务单元地址;
通过所述预设公共网络链接组件将所述业务单元地址发送给所述监控组件,以便当所述客户端初始化时,从监控组件中获取所述业务单元地址并与所述业务单元建立链接。
可选的,所述获取客户端不同的业务单元的心跳信息和数据操作信息,包括:
通过心跳管理组件获取客户端不同的业务单元的心跳信息;
通过所述对象存储设备的交互组件对象获取客户端不同的业务单元的数据操作信息。
可选的,所述当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,包括:
当不能获取到所述心跳信息或在故障恢复过程中所述元数据服务器集群节点需要改变状态时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态。
可选的,所述当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,包括:
当所述心跳信息的状态改变时,所述监控组件通过所述预设公共网络链接组件对所述元数据服务器集群节点的状态管理组件进行修改,以便将修改后的状态通知所述业务单元。
可选的,获取客户端不同的业务单元的数据操作信息,包括:
获取客户端不同的业务单元的数据落盘操作和/或数据获取操作;
相应的,所述通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互,包括:
通过预设公共网络链接组件将所述数据落盘操作和/或所述数据获取操作发送给对象存储设备,以便所述对象存储设备进行所述数据落盘操作和/或所述数据获取操作,并与所述客户端进行交互。
可选的,所述的网络连接复用方法,还包括:
当与其他元数据服务器集群节点进行通信时,建立网络连接,以基于所述网络连接与所述其他元数据服务器集群节点进行通信;
当所述元数据服务器集群节点内部的不同的所述业务单元进行通信时,将消息发送至对应的业务单元的本地消息队列,以便不同的所述业务单元基于所述本地消息队列进行通信。
第二方面,本申请公开了一种网络连接复用装置,应用于元数据服务器集群节点,包括:
信息获取模块,用于获取客户端不同的业务单元的心跳信息和数据操作信息;
第一交互模块,用于通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端;
第二交互模块,用于通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。
第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的网络连接复用方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的网络连接复用方法。
本申请中,应用于元数据服务器集群节点,获取客户端不同的业务单元的心跳信息和数据操作信息;通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端;通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。可见,通过在元数据服务器集群节点中增加了预设公共网络链接组件来与监控组件和对象存储设备直接进行连接交互,同时与客户端进行连接的时候使用各业务单元内的预设私有通信组件,不仅可以多进程并发处理,还在单元数据服务器集群节点降低了客户端、监控组件和对象存储设备之间的网络连接数,提高了进程的执行效率,同时也提高了网络连接使用率,网络的通信能力得以提升。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,元数据服务器对元数据访问的能力成为了分布式文件系统性能的关键因素,为了解决单节点元数据的性能瓶颈,元数据服务器集群不仅解决了单点故障的风险,同时增加了元数据多进程并发的能力。但是对于单元数据服务器节点负载到大量的业务请求时,由于元数据服务锁机制导致内部业务的逻辑处理无法实现并发处理,如果增加内部业务单元并发处理的模块,也会导致Client、Mon、OSD等连接数激增,给网路链接带来一定的负担。
为此,本申请提供了一种网络连接复用方案,能够实现单元数据服务器节点的多业务处理单元,同时降低网路链接带来的负担,提高网络通信能力。
本发明实施例公开了一种网络连接复用方法,参见图1所示,应用于元数据服务器集群节点,该方法包括:
步骤S11:获取客户端不同的业务单元的心跳信息和数据操作信息。
需要指出的是,在元数据服务器集群节点中存在虚拟的MDS Rank管理层VRank,主要部署公共组件和不同的业务单元,方便进行元数据服务管理。在公共组件中部署有心跳管理组件beacon,用于获取客户端不同的业务单元的心跳信息;在不同的业务单元中存在不同的可以与对象存储设备进行交互的交互组件对象Objector,如此一来,可以通过对象存储设备的交互组件对象获取客户端不同的业务单元的数据操作信息。
步骤S12:通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端。
本申请实施例中,在VRank层增加了预设公共网络链接组件msgr_shared,当与监控组件和对象存储设备进行交互的时候通过预设公共网络链接组件进行连接。因为在公共组件中部署有心跳管理组件beacon,所以beacon初始化时指定通过预设公共网络链接组件进行初始化,beacon向各业务处理单元收集心跳信息,然后通过预设公共网络链接组件反馈给监控组件。
需要指出的是,在虚拟管理层的公共组件中还部署有状态管理组件MDS Map,状态管理组件会在初始化时指定通过预设公共网络链接组件进行初始化,当监控组件不能收取到心跳信息或者在故障恢复过程中通过裁定VRank需要进入下一状态时,监控组件则通过预设公共网络链接组件将相关的消息发送给元数据服务器集群节点,然后元数据服务器集群节点在VRank层修改MDS Map,然后通过所述业务单元内的预设私有通信组件msgr_priv通知给各业务单元进行相关业务处理,以通知客户端。
具体的,所述当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,包括:当不能获取到所述心跳信息或在故障恢复过程中所述元数据服务器集群节点需要改变状态时,所述监控组件通过所述预设公共网络链接组件对所述元数据服务器集群节点的状态管理组件进行修改,以便将修改后的状态通知所述业务单元。
步骤S13:通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。
本申请实施例中,当客户端有并发的元数据操作请求时,需要与对象存储设备进行交互,也即,数据存储守护进程。对象存储设备的交互组件对象Objector在初始化时指定预设公共网络链接组件进行初始化,OSD数据落盘(如:元数据、日志事件)和数据获取操作(如:获取元数据、日志事件)都通过预设公共网络链接组件进行消息交互。
需要指出的是,当多元数据服务器集群节点进程间进行通信时,由于各业务处理单元对外体现单元号且有自己的业务单元地址,所以多元数据服务器集群节点进程间通信直接复用现有的进程间通信模式即可,需要建立网络连接,以基于所述网络连接与所述其他元数据服务器集群节点进行通信。当单元数据服务器集群节点内部进程通信时,因为发送的业务单元目的地址在业务单元内,则通过VRank层确定该目的地址的业务单元是哪一个,将消息投递到对应的业务单元的本地消息队列即可,不需要创建网络链接。也即,当所述元数据服务器集群节点内部的不同的所述业务单元进行通信时,将消息发送至对应的业务单元的本地消息队列,以便不同的所述业务单元基于所述本地消息队列进行通信。
示例性的,如图2所示为一种具体的单元数据服务器集群节点与其他守护进行网络通信的示意图。元数据服务VRank层新增预设公共网络链接组件。a)心跳管理控件beacon初始化时指定通过预设公共网络链接组件msgr_shared进行初始化,beacon向各业务处理单元Rank收集心跳、健康信息,然后通过预设公共网络链接组件msgr_shared反馈给监控组件Mon;b)状态管理组件MDS Map初始化时指定通过预设公共网络链接组件msgr_shared进行初始化,当Mon不能收取到心跳信息或者在故障恢复过程中通过裁定VRank需要进入下一状态时,Mon通过预设公共网络链接组件msgr_shared将消息发送给MDS的VRank,VRank修改状态MDS Map然后通知给原业务处理单元中由通信模块改为预设私有通信组件得msgr_priv,进行相关业务处理;c)OSD交互组件Objector初始化时指定为预设公共网络链接组件msgr_shared进行初始化,OSD数据落盘和数据fetch(获取)操作都通过预设公共网络链接组件msgr_shared进行消息交互。
本申请中,应用于元数据服务器集群节点,获取客户端不同的业务单元的心跳信息和数据操作信息;通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端;通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。可见,通过在元数据服务器集群节点中增加了预设公共网络链接组件来与监控组件和对象存储设备直接进行连接交互,同时与客户端进行连接的时候使用各业务单元内的预设私有通信组件,不仅可以多进程并发处理,还在单元数据服务器集群节点降低了客户端、监控组件和对象存储设备之间的网络连接数,提高了进程的执行效率,同时也提高了网络连接使用率,网络的通信能力得以提升。
本申请实施例公开了一种具体的网络连接复用方法,参见图3所示,该方法包括:
步骤S21:获取客户端不同的业务单元的心跳信息和数据操作信息。
其中,关于上述步骤S21更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S22:通过所述预设私有通信组件获取不同的所述业务单元的业务单元地址。
本申请实施例中,在元数据服务器集群节点中,与客户端client进行连接的时候使用各业务单元的预设私有通信组件。需要指出的是,各业务单元的初始化方式不变,元数据服务器集群节点中的虚拟管理层会以消息的方式将本VRank下的业务单元以及其业务单元地址通过预设私有通信组件以集合的方式通知到监控组件,也即,在监控组件侧注册这些业务单元的业务单元地址。
步骤S23:通过所述预设公共网络链接组件将所述业务单元地址发送给所述监控组件,以便当所述客户端初始化时,从监控组件中获取所述业务单元地址并与所述业务单元建立链接。
本申请实施例中,当通过预设公共网络链接组件将业务单元地址发送给所述监控组件后,监控组件侧即注册了这些业务单元的业务单元地址。当客户端初始化时需要从监控组件侧获取当前元数据服务器集群节点下每个业务单元的业务单元地址,然后进行建立链接,这样客户端与各业务单元就直接绑定了。可以理解的是,客户端与各业务单元直接绑定,是由于客户端的请求都是业务处理,不需要通过VRank层,例如:读元数据,创建元数据等,都是通过业务单元中的缓存直接处理。
步骤S24:通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端。
步骤S25:通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。
其中,关于上述步骤S24、步骤S25更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请中,应用于元数据服务器集群节点,获取客户端不同的业务单元的心跳信息和数据操作信息;通过所述预设私有通信组件获取不同的所述业务单元的业务单元地址;通过所述预设公共网络链接组件将所述业务单元地址发送给所述监控组件,以便当所述客户端初始化时,从监控组件中获取所述业务单元地址并与所述业务单元建立链接;通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端;通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。可见,通过在元数据服务器集群节点中增加了预设公共网络链接组件来与监控组件和对象存储设备直接进行连接交互,同时与客户端进行连接的时候使用各业务单元内的预设私有通信组件,不仅可以多进程并发处理,还在单元数据服务器集群节点降低了客户端、监控组件和对象存储设备之间的网络连接数,提高了进程的执行效率,同时也提高了网络连接使用率,网络的通信能力得以提升。
相应的,本申请实施例还公开了一种网络连接复用装置,参见图4所示,该装置包括:
信息获取模块11,用于获取客户端不同的业务单元的心跳信息和数据操作信息;
第一交互模块12,用于通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端;
第二交互模块13,用于通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,通过本实施例的上述方案,应用于元数据服务器集群节点,获取客户端不同的业务单元的心跳信息和数据操作信息;通过预设公共网络链接组件将所述心跳信息发送给监控组件,以便当所述心跳信息的状态改变时,基于所述预设公共网络链接组件修改所述元数据服务器集群节点的状态,然后将修改后的状态通过所述业务单元内的预设私有通信组件通知所述客户端;通过所述预设公共网络链接组件将所述数据操作信息发送给对象存储设备,以便所述对象存储设备根据所述数据操作信息进行数据操作,并与所述客户端进行交互。可见,通过在元数据服务器集群节点中增加了预设公共网络链接组件来与监控组件和对象存储设备直接进行连接交互,同时与客户端进行连接的时候使用各业务单元内的预设私有通信组件,不仅可以多进程并发处理,还在单元数据服务器集群节点降低了客户端、监控组件和对象存储设备之间的网络连接数,提高了进程的执行效率,同时也提高了网络连接使用率,网络的通信能力得以提升。
进一步的,本申请实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的网络连接复用方法中的相关步骤。另外,本实施例中的电子设备20具体可以为元数据服务器。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的网络连接复用方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述网络连接复用方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的网络连接复用或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种网络连接复用方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。