一种基于微服务架构的数据采样方法及相关装置与流程

文档序号:22238993发布日期:2020-09-15 19:50阅读:138来源:国知局
一种基于微服务架构的数据采样方法及相关装置与流程

本发明涉及微服务技术领域,特别是涉及一种基于微服务架构的数据采样方法、一种基于微服务架构的数据采样装置、一种基于微服务架构的数据采样设备以及一种计算机可读存储介质。



背景技术:

随着科技的进步以及社会的发展,微服务系统在人们日常生活中的应用越来越广泛。微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。

在现阶段,通常会使用多个子服务节点构成具有特定功能的集群,例如实现用户管理功能的集群、用于实现订单服务的集群、用于实现支付服务功能的集群等等。而微服务架构中子服务节点的状态参数,例如负载参数等是每个微服务系统在高流量状态下都会高度重视的指标。spring-cloud是java语言的微服务框架,在依托于spring-cloud微服务体系架构下,如何高效的实现对各个子服务节点的数据采样是本领域技术人员急需解决的问题。



技术实现要素:

本发明的目的是提供一种基于微服务架构的数据采样方法,可以使网关节点高效的采集子服务节点的数据;本发明的另一目的在于提供一种基于微服务架构的数据采样装置、一种基于微服务架构的数据采样设备以及一种计算机可读存储介质,可以使网关节点高效的采集子服务节点的数据。

为解决上述技术问题,本发明提供一种基于微服务架构的数据采样方法,应用于网关节点,包括:

获取多个子服务节点所发送的采样信息;所述采样信息包括从左到右依次排列的子服务节点名称、采样参数名称、采样结果;所述子服务节点名称包括从左到右依次排列的集群名称和字符串;

在预设的采样表中按照所述集群名称对所述采样信息进行排列,已在所述采样表中集中对应同一集群的采样信息;

在所述采样表中排列所述采样信息之后,通过所述集群名称检索所述采样表中的预设部分,以在所述采样表中查询对应同一集群的采样信息。

可选的,所述获取多个子服务节点所发送的采样信息包括:

通过rabbitmq获取多个子服务节点所发送的采样信息。

可选的,所述字符串为随机生成的随机字符串。

可选的,还包括:

获取对应目标集群的业务信息;

在所述采样表中排列所述采样信息之后,根据所述目标集群的集群名称检索所述采样表中的预设部分,以在所述采样表中查询对应所述目标集群的采样信息;

根据查询到的所述采样信息中的所述采样结果将所述业务信息发送至对应的子服务节点。

可选的,所述采样参数名称包括负载参数。

本发明还提供了一种基于微服务架构的数据采样装置,应用于网关节点,包括:

获取模块:用于获取多个子服务节点所发送的采样信息;所述采样信息包括从左到右依次排列的子服务节点名称、采样参数名称、采样结果;所述子服务节点名称包括从左到右依次排列的集群名称和字符串;

排列模块:用于在预设的采样表中按照所述集群名称对所述采样信息进行排列,已在所述采样表中集中对应同一集群的采样信息;

检索模块:用于在所述采样表中排列所述采样信息之后,通过所述集群名称检索所述采样表中的预设部分,以在所述采样表中查询对应同一集群的采样信息。

可选的,所述获取模块具体用于:

通过rabbitmq获取多个子服务节点所发送的采样信息。

可选的,还包括:

业务信息获取模块:用于获取对应目标集群的业务信息;

目标集群检索模块:用于在所述采样表中排列所述采样信息之后,根据所述目标集群的集群名称检索所述采样表中的预设部分,以在所述采样表中查询对应所述目标集群的采样信息;

分发模块:用于根据查询到的所述采样信息中的所述采样结果将所述业务信息发送至对应的子服务节点。

本发明还提供了一种基于微服务架构的数据采样设备,应用于网关节点,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任意一项所述基于微服务架构的数据采样方法的步骤。

本发明还提供了一种计算机可读存储介质,应用于网关节点,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述基于微服务架构的数据采样方法的步骤。

本发明所提供的一种基于微服务架构的数据采样方法,应用于网关节点,包括获取多个子服务节点所发送的采样信息;采样信息包括从左到右依次排列的子服务节点名称、采样参数名称、采样结果;子服务节点名称包括从左到右依次排列的集群名称和字符串;在预设的采样表中按照集群名称对采样信息进行排列,已在采样表中集中对应同一集群的采样信息;在采样表中排列采样信息之后,通过集群名称检索采样表中的预设部分,以在采样表中查询对应同一集群的采样信息。

通过设置统一格式的子服务节点名称,并且在子服务节点名称中添加所属集群的集群名称,通过子服务节点名称就可以识别出对应子服务节点所属集群。网关节点获取的采样信息中,会在最左侧就体现出该采样信息所述集群,从而使得网关节点仅仅遍历采样表中每条采样信息开头的集群名称即可将采样信息根据对应集群进行排列,集中采样表中对应同一集群的采样信息。而网关节点具体会以集群为单位,仅仅检索采样表中的部分区域即可实现对同一集群的采样信息进行采样查询,从而减少采样查询所需的工作量,避免在对某一集群的采样信息查询时,需要对采样表中全部采样信息进行遍历的过程,以使网关节点可以高效的采集子服务节点的数据。

本发明还提供了一种基于微服务架构的数据采样装置、一种基于微服务架构的数据采样设备以及一种计算机可读存储介质,同样具有上述有益效果,在此不再进行赘述。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种基于微服务架构的数据采样方法的流程图;

图2为本发明实施例所提供的一种微服务架构的结构示意图;

图3为本发明实施例所提供的一种具体的基于微服务架构的数据采样方法的流程图;

图4为本发明实施例所提供的一种基于微服务架构的数据采样装置的结构框图;

图5为本发明实施例所提供的一种基于微服务架构的数据采样设备的结构框图。

具体实施方式

本发明的核心是提供一种基于微服务架构的数据采样方法。在现有技术中,每次需要准对某一集群进行数据采样时,通常需要遍历所有的采样信息,从而使得网关节点获取采样信息的速度较慢,效率较低。

而本发明所提供的一种基于微服务架构的数据采样方法,应用于网关节点,包括获取多个子服务节点所发送的采样信息;采样信息包括从左到右依次排列的子服务节点名称、采样参数名称、采样结果;子服务节点名称包括从左到右依次排列的集群名称和字符串;在预设的采样表中按照集群名称对采样信息进行排列,已在采样表中集中对应同一集群的采样信息;在采样表中排列采样信息之后,通过集群名称检索采样表中的预设部分,以在采样表中查询对应同一集群的采样信息。

通过设置统一格式的子服务节点名称,并且在子服务节点名称中添加所属集群的集群名称,通过子服务节点名称就可以识别出对应子服务节点所属集群。网关节点获取的采样信息中,会在最左侧就体现出该采样信息所述集群,从而使得网关节点仅仅遍历采样表中每条采样信息开头的集群名称即可将采样信息根据对应集群进行排列,集中采样表中对应同一集群的采样信息。而网关节点具体会以集群为单位,仅仅检索采样表中的部分区域即可实现对同一集群的采样信息进行采样查询,从而减少采样查询所需的工作量,避免在对某一集群的采样信息查询时,需要对采样表中全部采样信息进行遍历的过程,以使网关节点可以高效的采集子服务节点的数据。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1以及图2,图1为本发明实施例所提供的一种基于微服务架构的数据采样方法的流程图;图2为本发明实施例所提供的一种微服务架构的结构示意图。

参见图1,在本发明实施例中,基于微服务架构的数据采样方法,应用于网关节点,包括:

s101:获取多个子服务节点所发送的采样信息。

在本发明实施例中,所述采样信息包括从左到右依次排列的子服务节点名称、采样参数名称、采样结果;所述子服务节点名称包括从左到右依次排列的集群名称和字符串。

参见图2,在本发明实施例中,网关节点具体是通过rabbitmq与各个子服务节点通信连接,相应的本步骤通常可以具体为:通过rabbitmq获取多个子服务节点所发送的采样信息。rabbitmq即消息队列,其是实现了高级消息队列协议(amqp)的开源消息代理软件(亦称面向消息的中间件)。在本发明实施例中,使用rabbitmq对子服务节点的采样信息进行传递,能够降低微服务系统中造成的系统耦合,同时保障采样消息传递的稳定性。通常情况下,rabbitmq具体会通过tcp(传输控制协议)的长连接分别与网关节点以及各个子服务节点相互连接。需要说明的是,本发明实施例所提供的数据采样方法具体应用于网关节点,但是子服务节点名称具体在网关节点、对应子服务节点以及注册中心节点中均会存储,以满足三者命名统一。当然,在本发明实施例中也可通过其他任何第三方mq组件获取上述采样信息而非rabbitmq,有关mq组件的具体选择可以根据实际情况自行设定,在此不做具体限定。

在本发明实施例中,注册中心节点主要用于进行微服务系统内的服务发现与服务注册,使多个子服务节点可以形成具有特定功能的集群。有关注册中心节点具体的功能可以参考现有技术,在此不再进行赘述。在本发明实施例中某一子服务节点初次加入该微服务系统中时,会首先与注册中心节点建立心跳连接,以通过注册中心节点将该子服务节点加入微服务系统。而在本发明实施例中,通常会在子服务节点中将该子服务节点的子服务节点名称修改为包括从左到右依次排列的集群名称和字符串的名称,并在子服务节点与注册中心节点和网关节点通信时,将该名称发送至注册中心节点和网关节点进行储存。

在本步骤中,网关节点会获取到各个子服务节点所发送的采样信息,该采样信息从左到右依次为集群名称、字符串、采样参数名称、采样结果。其中集群名称加字符串表示子服务节点名称,通过集群名称加字符串不仅仅可以识别出对应的子服务节点,还可以识别出该子服务节点所对应的集群。例如,当微服务系统中具有管理服务集群和订单服务集群两种集群,而管理服务集群具有三个子服务节点,订单服务集群中具有两个子服务节点,此时该五个子服务节点可以命名为:um0as-1、um9sk12、umow_93、om0sk12、om902ik;其中um为管理服务集群名称、om为订单服务集群名称。

上述采样信息的格式通常具体为:{"集群名称","子服务节点对应的字符串",map<采样参数名称,采样结果>}。其中,采样参数名称需要根据实际采样参数种类而定,而采样结果通常是各个子服务节点自身采集到的数据。

具体的,在本发明实施例中,上述对应各个子服务节点的字符串通常为随机生成的随机字符串,其中随机字符串通常是利用java的uuid.randomuuid方法生成的一串随机字符,用于区分一个集群内的各子服务节点。

s102:在预设的采样表中按照集群名称对采样信息进行排列,已在采样表中集中对应同一集群的采样信息。

在本发明实施例中,网关节点内通常会建立有用于存储采样信息的采样表,网关节点会将采样信息放入该采样表中。在本步骤中,会在采样表中按照集群名称,通常是按照集群名称的字母顺序对采样信息进行排列。在根据集群名称进行排列之后,会在采样表中对应同一集群的采样信息进行集中。需要说明的是,由于在本发明实施例中采样信息的最左侧,即开口就记录有集群名称,从而使得在本步骤中,仅仅需要读取每条采样信息的开头内容,即集群名称即可实现对采样信息的排列,而不需要遍历全部采样信息的全部内容。

s103:在采样表中排列采样信息之后,通过集群名称检索采样表中的预设部分,以在采样表中查询对应同一集群的采样信息。

s102中在对采样表进行排列之后,由于对应同一集群的采样信息已经在采样表中被集中在一起,使得在本步骤中仅仅需要在检索采样表中的预设部分,而不用检索采样表中的全部部分,即可实现在采样表中查询对应同一集群的采样信息,实现对同一集群的数据采样。

本发明实施例所提供的一种基于微服务架构的数据采样方法,应用于网关节点,包括获取多个子服务节点所发送的采样信息;采样信息包括从左到右依次排列的子服务节点名称、采样参数名称、采样结果;子服务节点名称包括从左到右依次排列的集群名称和字符串;在预设的采样表中按照集群名称对采样信息进行排列,已在采样表中集中对应同一集群的采样信息;在采样表中排列采样信息之后,通过集群名称检索采样表中的预设部分,以在采样表中查询对应同一集群的采样信息。

通过设置统一格式的子服务节点名称,并且在子服务节点名称中添加所属集群的集群名称,通过子服务节点名称就可以识别出对应子服务节点所属集群。网关节点获取的采样信息中,会在最左侧就体现出该采样信息所述集群,从而使得网关节点仅仅遍历采样表中每条采样信息开头的集群名称即可将采样信息根据对应集群进行排列,集中采样表中对应同一集群的采样信息。而网关节点具体会以集群为单位,仅仅检索采样表中的部分区域即可实现对同一集群的采样信息进行采样查询,从而减少采样查询所需的工作量,避免在对某一集群的采样信息查询时,需要对采样表中全部采样信息进行遍历的过程,以使网关节点可以高效的采集子服务节点的数据。

有关本发明所提供的一种基于微服务架构的数据采样方法的具体内容将在下述发明实施例中做详细介绍。

请参考图3,图3为本发明实施例所提供的一种具体的基于微服务架构的数据采样方法的流程图。

参见图3,在本发明实施例中,基于微服务架构的数据采样方法,应用于网关节点,包括:

s201:获取多个子服务节点所发送的采样信息。

s202:在预设的采样表中按照集群名称对采样信息进行排列,已在采样表中集中对应同一集群的采样信息。

s203:在采样表中排列采样信息之后,通过集群名称检索采样表中的预设部分,以在采样表中查询对应同一集群的采样信息。

上述s201至s203与上述发明实施例中s101至s103基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。

s204:获取对应目标集群的业务信息。

在本步骤中,网关节点具体会获取从微服务系统外部输入的业务信息,该业务信息具体会对应一具有预设功能的集群,即目标集群。

s205:在采样表中排列采样信息之后,根据目标集群的集群名称检索采样表中的预设部分,以在采样表中查询对应目标集群的采样信息。

在本步骤中,具体会在对采样表中存储的采样信息按照上述s202的方式进行排列之后,根据目标集群的集群名称检索采样表中的预设部分。由于在排列时已经将对应同一集群的采样信息在采样表中进行集中,使得在本步骤中仅仅需要检索对应目标集群的集群名称的预设部分,而不用检索采样表中的全部部分,即可在完成对目标集群采样信息的查询。

s206:根据查询到的采样信息中的采样结果将业务信息发送至对应的子服务节点。

在本步骤中,具体会根据s205中查询到的多个采样信息中所记录的采样结果,选取该目标集群中符合要求的子服务节点作为目标子服务节点,并将上述获取到的业务信息发送至该目标子服务节点,以使该目标子服务节点根据业务信息执行相应的任务。有关上述根据采样结果从集群中选取符合要求的子服务节点的具体过程可以参考现有技术,在此不再进行赘述。

具体的,在本发明实施例中,上述采样参数名称包括负载参数,相应的上述采样结果即对应各个子服务节点的具体的负载参数值。使得在本发明实施例中选取目标子服务节点时,具体会参考各个子服务节点的负载参数,以选取到符合要求的子服务节点作为目标子服务节点执行相应的业务。当然,上述采样参数名称可以为其他参数名称,有关采样参数名称的具体内容在本发明实施例中不做具体限定。

需要说明的是,在本发明实施例中,s204至s206通常是与s201至s203并行的执行,但是s205具体需要在s202中对采样表进行至少一次重新排列之后执行。

本发明实施例所提供的一种基于微服务架构的数据采样方法,通过在分发业务时参考目标集群的采样结果,可以有效平衡微服务系统中的负载,保证业务的正常执行。而在参考目标集群的采样结果时,结合经过排列的采样表,可以高效的读取目标集群的采样结果,从而实现高效的业务分发。

下面对本发明实施例所提供的一种基于微服务架构的数据采样装置进行介绍,下文描述的数据采样装置与上文描述的数据采样方法可相互对应参照。

图4为本发明实施例所提供的一种基于微服务架构的数据采样装置的结构框图,参照图4,基于微服务架构的数据采样装置,应用于网关节点,可以包括:

获取模块100:用于获取多个子服务节点所发送的采样信息;所述采样信息包括从左到右依次排列的子服务节点名称、采样参数名称、采样结果;所述子服务节点名称包括从左到右依次排列的集群名称和字符串。

排列模块200:用于在预设的采样表中按照所述集群名称对所述采样信息进行排列,已在所述采样表中集中对应同一集群的采样信息。

检索模块300:用于在所述采样表中排列所述采样信息之后,通过所述集群名称检索所述采样表中的预设部分,以在所述采样表中查询对应同一集群的采样信息。

作为优选的,在本发明实施例中,所述获取模块100具体用于:

通过rabbitmq获取多个子服务节点所发送的采样信息。

作为优选的,在本发明实施例中,所述字符串为随机生成的随机字符串。

作为优选的,在本发明实施例中,还包括:

业务信息获取模块:用于获取对应目标集群的业务信息;

目标集群检索模块:用于在所述采样表中排列所述采样信息之后,根据所述目标集群的集群名称检索所述采样表中的预设部分,以在所述采样表中查询对应所述目标集群的采样信息;

分发模块:用于根据查询到的所述采样信息中的所述采样结果将所述业务信息发送至对应的子服务节点。

作为优选的,在本发明实施例中,所述采样参数名称包括负载参数。

本实施例的基于微服务架构的数据采样装置用于实现前述的基于微服务架构的数据采样方法,因此数据采样装置中的具体实施方式可见前文中数据采样方法的实施例部分,例如,获取模块100,排列模块200,检索模块300分别用于实现上述数据采样方法中步骤s101,s102以及s103,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

下面对本发明实施例提供的一种基于微服务架构的数据采样设备进行介绍,下文描述的数据采样设备与上文描述的数据采样方法以及数据采样装置可相互对应参照。

请参考图5,图5为本发明实施例所提供的一种基于微服务架构的数据采样设备的结构框图。

参照图5,该基于微服务架构的数据采样设备,应用于网关节点,可以包括处理器11和存储器12。

所述存储器12用于存储计算机程序;所述处理器11用于执行所述计算机程序时实现上述发明实施例中所述的基于微服务架构的数据采样方法。

本实施例的数据采样设备中处理器11用于安装上述发明实施例中所述的数据采样装置,同时处理器11与存储器12相结合可以实现上述任一发明实施例中所述的数据采样方法。因此基于微服务架构的数据采样设备中的具体实施方式可见前文中数据采样方法的实施例部分,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一发明实施例中所介绍的一种基于微服务架构的数据采样方法。其余内容可以参照现有技术,在此不再进行展开描述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种基于微服务架构的数据采样方法、一种基于微服务架构的数据采样装置、一种基于微服务架构的数据采样设备以及一种计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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