业务控制系统、网关服务方法、业务请求转发方法及装置
技术领域
本公开涉及负载均衡
技术领域
,尤其涉及一种业务控制系统、网关服务方法、业务请求转发方法及装置。背景技术
随着大数据和AI技术的发展,各个行业越来越深刻地意识到大数据技术对于自身产品服务的价值,大数据应用和大数据平台成为各个IT技术公司以及互联网公司的核心技术,IT公司,特别是互联网公司,有大量的日志数据需要通过大数据平台分析,数据需要从日志产生的业务机器经过采集、传输、发送到大数据平台,客户业务设备和大数据平台之间的数据流转一般通过数据网关服务实现的,常用的开源大数据方案有kafka/pulsar/rabbitmq等消息流队列可以使用,而通常用户业务数据在推入消息流队列之前需要预先做封装处理、格式转换工作。
目前现有的方案是在消息队列前面部署负载均衡设备,并在负载均衡设备和消息队列中间部署自定义开发的数据预处理的程序(数据业务网关),借助负载均衡设备,将数据业务网关程序多机部署,实现流量均衡,降低单机器压力。
但是,采用上述方案,业务网关单机服务的请求量是有上限瓶颈的,其不能满足客户业务流量突增时,实时提升系统吞吐的需求。因此现有技术方案数据业务网关稳定性差、动态横向扩展能力弱。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种业务控制系统、网关服务方法、业务请求转发方法及装置。
第一方面,本公开提供了一种业务控制系统,包括:负载均衡设备、主机集群、可伸缩集群和数据处理网关;
所述主机集群和所述可伸缩集群均与所述负载均衡设备通讯连接;
所述负载均衡设备用于接收业务请求数据,并将所述业务请求数据转发至所述主机集群或所述可伸缩集群;
所述主机集群包括多个主机,所述主机中集成有数据处理网关;
所述可伸缩集群包括一个或多个业务处理单元,所述业务处理单元中集成有数据处理网关;
集成于所述主机中的数据处理网关和集成于所述业务处理单元中的数据处理网关均可对所述业务请求数据进行处理;并且,所述可伸缩集群可根据自身负载监控数据调整其所包括的业务处理单元的数量。
第二方面,本公开还提供了一种网关服务方法,所述网关服务方法包括:
获取可伸缩集群的负载监控数据;
根据所述负载监控数据,确定当前可伸缩集群中需包括的业务处理单元的数量;
根据当前可伸缩集群中需包括的业务处理单元的数量,调整可伸缩集群中业务处理单元的数量。
第三方面,本公开还提供了一种业务请求转发方法,所述业务请求转发方法包括:
接收业务请求数据;
获取当前所述主机集群的服务状态和所述可伸缩集群的服务状态;
基于当前所述主机集群的服务状态和所述可伸缩集群的服务状态,将所述业务请求数据转发至所述主机集群或所述可伸缩集群。
第四方面,本公开还提供了一种网关服务装置,所述网关服务装置包括:
监控数据获取模块,用于获取可伸缩集群的负载监控数据;
确定模块,用于根据所述负载监控数据,确定当前可伸缩集群中需包括的业务处理单元的数量;
调整模块,用于根据当前可伸缩集群中需包括的业务处理单元的数量,调整可伸缩集群中业务处理单元的数量。
第五方面,本公开还提供了一种业务请求转发装置,所述业务请求转发装置,包括:
接收模块,用于接收业务请求数据;
状态获取模块,用于获取当前所述主机集群的服务状态和所述可伸缩集群的服务状态;
转发模块,用于基于当前所述主机集群的服务状态和所述可伸缩集群的服务状态,将所述业务请求数据转发至所述主机集群或所述可伸缩集群。
第六方面,本公开还提供了一种电子设备,包括:处理器和存储器;
处理器通过调用存储器存储的程序或指令,用于执行上述任一方法的步骤。
第七方面,本公开还提供了一种计算机可读存储介质,计算机可读存储介质存储程序或指令,程序或指令使计算机执行上述任一方法的步骤。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的技术方案通过设置业务控制系统包括可伸缩集群,可伸缩集群可根据自身负载监控数据进行自动扩容或缩容,可以实现当业务负载上升时,可实时动态扩容承载服务;当业务负载下降时,可实时缩容,降低成本的目的。并且整个扩容或缩容的过程中,无需运维人员参与,可降低运维人员工作量。
并且,本公开实施例提供的技术方案中主机集群部署和可伸缩集群部署可以采用跨机房跨地区部署,实现多地、双活跃、高可用性的目的。并且由于业务处理单元自身拥有比较优秀的异常恢复机制,其可以确保整个业务控制系统的稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种业务控制系统的结构框图;
图2为本公开实施例提供的另一种可伸缩集群的结构框图;
图3为本公开实施例提供的一种网关服务方法的流程图;
图4为本公开实施例提供的一种业务请求转发方法的流程图;
图5为本公开实施例提供的一种的网关服务装置的结构示意图;
图6为本公开实施例提供的一种的业务请求转发装置的结构示意图;
图7为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1为本公开实施例提供的一种业务控制系统的结构框图。参见图1,该业务控制系统包括:负载均衡设备1、主机集群2、可伸缩集群3和数据处理网关;主机集群2和可伸缩集群3均与负载均衡设备1通讯连接;负载均衡设备1用于接收业务请求数据,并将业务请求数据转发至主机集群2或可伸缩集群3;主机集群2包括多个主机,主机中集成有数据处理网关;可伸缩集群3包括一个或多个业务处理单元311,业务处理单元311中集成有数据处理网关;集成于主机中的数据处理网关和集成于业务处理单元311中的数据处理网关均可对业务请求数据进行处理;并且,可伸缩集群可根据自身负载监控数据调整其所包括的业务处理单元311的数量。
其中,可伸缩集群可以基于kubernetes的hpa方式部署得到。示例性地,继续参见图1,该可伸缩集群包括扩容/缩容模块以及监测模块32。其中,扩容/缩容模块31包括一个或多个用于对业务请求数据进行处理的业务处理单元311。业务处理单元311,也即Pod,为kubernetes的最小单元。一个pod中有一个pause容器和若干个业务容器。pod将容器绑定在一起,并将它们作为一个单元进行管理。每个业务处理单元均可提供网关服务,即对业务请求数据进行处理。监测模块32用于对扩容/缩容模块31的整体负载情况进行监测,进而得到负载监控数据,并将该负载监控数据发送至扩容/缩容模块31。扩容/缩容模块31在接收到负载监控数据后,基于该负载监控数据确定其需包括的业务处理单元的数量,并根据其需包括的业务处理单元的数量,新建业务处理单元或者删除多余的已有业务处理单元,进行实现扩容或缩容的目的。
图2为本公开实施例提供的另一种可伸缩集群的结构框图。与图1相比,图2中该可伸缩集群还包括适配模块。具体地,参见图2,监测模块用于对扩容/缩容模块的整体负载情况进行监测,进而得到负载监控数据,并将该负载监控数据发送给适配模块,适配模块用于根据预设的协议转换规则,将负载监控数据转化为扩容/缩容模块可识别的数据,并将转化后的数据发送至扩容/缩容模块。同时适配模块还向该监测模块反馈负载监控数据已成功接收的反馈信息。扩容/缩容模块在接收到转化后的数据后,基于该转化后的数据确定其需包括的业务处理单元的数量,并根据其需包括的业务处理单元的数量,新建业务处理单元或者删除多余的已有业务处理单元,进行实现扩容或缩容的目的。
上述技术方案通过设置数据处理网关包括可伸缩集群,可伸缩集群可伸缩集群可根据自身负载监控数据调整其所包括的业务处理单元的数量,实质是根据自身负载监控数据进行自动扩容或缩容,可以实现当业务负载上升时,可实时动态扩容承载服务;当业务负载下降时,可实时缩容,降低成本的目的。并且整个扩容或缩容的过程中,无需运维人员参与,可降低运维人员工作量。
并且,上述技术方案中主机集群部署和可伸缩集群部署可以采用跨机房跨地区部署策略,实现多地、双活跃、高可用性的目的。并且由于业务处理单元自身拥有比较优秀的异常恢复机制,其可以确保整个数据处理网关的稳定性。
还需要说明的是,在上述技术方案中,主机集群可以是被运维人员手动扩容后的主机集群,也可以是未被运维人员手动扩容的主机集群。本申请对此不作限制。
进一步的,若根据业务需要,需要运维人员对主机集群手动扩容,其扩容方法为运维人员手动在新机器设备(如图1中的主机5和主机6)上部署数据处理网关进程,并且把数据处理网关进程启动后的地址配置到上层的负载均衡设备上来接收数据转发。
需要说明的是,本申请对数据处理网关中主机集群的部署规模和可伸缩集群的部署规模不作限制。
图3为本公开实施例提供的一种网关服务方法的流程图,该网关服务方法适用于前文提及的业务控制系统。该方法由可伸缩集群执行。具体地,参见图3,该方法包括:
S110、获取可伸缩集群的负载监控数据。
可选地,负载监控数据包括下述中的至少一个:CPU占用数据、内存占用数据以及网络请求量数据。
需要强调的是,负载监控数据中,网络请求量数据是指可伸缩集群的网络请求量数据,该数据是对可伸缩集群进行监控得到,而不是对负载均衡设备监控得到。这是因为在利用本申请提供的业务控制系统进行业务请求处理时,一部分业务请求数据会被转发至主机集群,而另一部分业务请求数据会被转发至可伸缩集群。显然对可伸缩集群进行监控得到网络请求量数据往往小于对负载均衡设备监控得到网络请求量数据。这样设置可以确保后续得到的当前可伸缩集群中需包括的业务处理单元的数量准确。
在实际中,可以用作CPU占用数据的参量有多种,示例性地,可以CPU占用数据包括CPU瞬时利用率、单位时间内CPU平均利用率等。类似得,可以用作内存占用数据以及可以用作网络请求量数据的参量有多种,本申请对此不作限制。
可选地,若负载监控数据包括CPU占用数据、内存占用数据以及网络请求量数据;其中,CPU占用数据包括单位时间内CPU平均利用率,内存占用数据包括单位时间内内存使用率,网络请求量数据包括单位时间内平均查询率。其中,对于单位时间的具体时间长度取值,本申请不作限制。在实际中可以由工作人员进行设置,示例性地,可以设置,单位时间等于1分钟。这样设置,通过将多个指标作为负载监控数据,可以使得最终所确定的当前可伸缩集群中需包括的业务处理单元的数量更加合理,有利于提高整个数据处理网关的稳定性。并且,通过使用单位时间内CPU平均利用率,单位时间内内存使用率以及单位时间内平均查询率作为负载监控数据,其可以避免客户业务流量突增时,可伸缩集群扩容或缩容频繁,造成系统负担重的问题。
S120、根据负载监控数据,确定当前可伸缩集群中需包括的业务处理单元的数量。
本步骤的实现方法有多种,本申请对此不作限制。示例性地,根据负载监控数据以及预设的负载监控数据与扩容/缩容比例的对应关系,确定当前可伸缩集群中需包括的业务处理单元的数量。
示例性地,可以预先设置可伸缩集群整体1分钟内平均查询率最大负载设置为2000,并且,1分钟内CPU平均利用率到达90%及以上,扩容30%。假设在实际使用的过程中,某一时刻,负载监控数据表明,当前可伸缩集群整体1分钟内平均查询率最大负载大于2000,并且,1分钟内CPU平均利用率到达91%,并且当前可伸缩集群包括10个业务处理单元,则新建3个业务处理单元。
可选地,本步骤实现方法还可以为,预先构建以负载监控数据为自变量,以业务处理单元数量为因变量的函数关系。根据负载监控数据以及该函数关系,确定当前可伸缩集群中需包括的业务处理单元的数量。
S130、根据当前可伸缩集群中需包括的业务处理单元的数量,调整可伸缩集群中业务处理单元的数量。
可选地,在执行本步骤时,先确定当前可伸缩集群中已包括的业务处理单元的数量,根据当前可伸缩集群中已包括的业务处理单元的数量,以及当前可伸缩集群中需包括的业务处理单元的数量,进行业务处理单元的新建或删除。
具体地,若当前可伸缩集群中已包括的业务处理单元的数量n1大于当前可伸缩集群中需包括的业务处理单元的数量n2,计算二者的差值n1-n2,删除n1-n2个业务处理单元,实现缩容的目的。若当前可伸缩集群中已包括的业务处理单元的数量n1小于当前可伸缩集群中需包括的业务处理单元的数量n2,计算二者的差值n2-n1,新增n2-n1个业务处理单元,实现扩容的目的。若当前可伸缩集群中已包括的业务处理单元的数量n1等于当前可伸缩集群中需包括的业务处理单元的数量n2,不进行业务处理单元的新建和删除。
上述技术方案根据负载监控数据,确定当前可伸缩集群中需包括的业务处理单元的数量;根据当前可伸缩集群中需包括的业务处理单元的数量,调整可伸缩集群中业务处理单元的数量,可以实现当业务负载上升时,可实时动态扩容承载服务;当业务负载下降时,可实时缩容,降低成本的目的。并且整个扩容或缩容的过程中,无需运维人员参与,可降低运维人员工作量。
图4为本公开实施例提供的一种业务请求转发方法的流程图。该业务请求转发方法适用于前文提及的业务控制系统。该方法由负载均衡设备执行。示例性地,参见图4,该方法包括:
S210、接收业务请求数据。
S220、获取当前主机集群的服务状态和可伸缩集群的服务状态。
其中,当前主机集群的服务状态包括可用和不可以两个状态。“可用”表示当前主机集群可以提供网关服务,“不可用”表示当前主机集群不可以提供网关服务,如当前主机集群故障。
类似地,当前可伸缩集群的服务状态包括可用或不可以两个状态。“可用”表示当前可伸缩集群可以提供网关服务,“不可用”表示当前可伸缩集群不可以提供网关服务,如当前可伸缩集群故障。
S230、基于当前主机集群的服务状态和可伸缩集群的服务状态,将业务请求数据转发至主机集群或可伸缩集群。
可选地,若当前主机集群的服务状态为可用,可伸缩集群的服务状态为不可用;将业务请求数据转发至主机集群;若当前主机集群的服务状态为不可用,可伸缩集群的服务状态为可用;将业务请求数据转发至可伸缩集群;若当前主机集群的服务状态为可用,可伸缩集群的服务状态为可用,可以将业务请求数据转发至主机集群,也可以将业务请求数据转发至可伸缩集群。
进一步地,对于当前主机集群的服务状态为可用,可伸缩集群的服务状态为可用的情况,还可以预先设置的业务请求数据分发规则,在进行业务请求数据转发时,根据业务请求数据分发规则,确定将该业务请求数据转发至主机集群还是可伸缩集群。
上述技术方案的实质是,负载均衡设备可以对主机集群的服务状态和可伸缩集群的服务状态进行感知,主机集群和可伸缩集群互为备份,根据当前主机集群的服务状态和可伸缩集群的服务状态,将业务请求数据转发至主机集群或可伸缩集群,可以确保整个数据处理网关始终能够对业务请求数据进行及时处理,可以提高整个数据处理网关的稳定性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
图5为本公开实施例提供的一种的网关服务装置的结构示意图,如图5所示,所述网关服务装置适用于本公开实施例提供的业务控制系统;该装置包括:
监控数据获取模块310,用于获取可伸缩集群的负载监控数据;
确定模块320,用于根据所述负载监控数据,确定当前可伸缩集群中需包括的业务处理单元的数量;
调整模块330,用于根据当前可伸缩集群中需包括的业务处理单元的数量,调整可伸缩集群中业务处理单元的数量。
进一步地,所述负载监控数据包括下述中的至少一个:
CPU占用数据、内存占用数据以及网络请求量数据。
进一步地,所述负载监控数据包括CPU占用数据、内存占用数据以及网络请求量数据;
其中,CPU占用数据包括单位时间内CPU平均利用率,内存占用数据包括单位时间内内存使用率,网络请求量数据包括单位时间内平均查询率。
进一步地,确定模块320,用于根据所述负载监控数据以及预设的负载监控数据与业务处理单元数量的对应关系,确定当前可伸缩集群中需包括的业务处理单元的数量。
以上实施例公开的装置能够实现以上各方法实施例公开的网关服务方法的流程,具有相同或相应的有益效果。为避免重复,在此不再赘述。
图6为本公开实施例提供的一种的业务请求转发装置的结构示意图,如图6所示,所述业务请求转发装置适用于本公开实施例提供的业务控制系统;该装置包括:
所述业务请求转发装置,包括:
接收模块410,用于接收业务请求数据;
状态获取模块420,用于获取当前所述主机集群的服务状态和所述可伸缩集群的服务状态;
转发模块430,用于基于当前所述主机集群的服务状态和所述可伸缩集群的服务状态,将所述业务请求数据转发至所述主机集群或所述可伸缩集群。
进一步地,若当前所述主机集群的服务状态为可用,所述可伸缩集群的服务状态为不可用;
转发模块430,用于基于当前所述主机集群的服务状态和所述可伸缩集群的服务状态,将所述业务请求数据转发至所述主机集群。
以上实施例公开的装置能够实现以上各方法实施例公开的业务请求转发方法的流程,具有相同或相应的有益效果。为避免重复,在此不再赘述。
图7为本公开实施例提供的电子设备的硬件结构示意图,如图7所示,该电子设备包括:
一个或多个处理器301,图7中以一个处理器301为例;
存储器302;
所述电子设备还可以包括:输入装置303和输出装置304。
所述电子设备中的处理器301、存储器302、输入装置303和输出装置304可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器302作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本公开实施例中的网关服务方法和/或业务请求转发方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的网关服务方法和/或业务请求转发方法。
存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置303可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置304可包括显示屏等显示设备。
本公开实施例还提供一种包含计算机可读存储介质,该计算机可读存储介质存储程序或指令,该程序或指令使计算机执行行时用于执行一种网关服务方法,该方法包括:
获取可伸缩集群的负载监控数据;
根据所述负载监控数据,确定当前可伸缩集群中需包括的业务处理单元的数量;
根据当前可伸缩集群中需包括的业务处理单元的数量,调整可伸缩集群中业务处理单元的数量。
本公开实施例还提供一种包含计算机可读存储介质,该计算机可读存储介质存储程序或指令,该程序或指令使计算机执行行时用于执行一种业务请求转发方法,该方法包括:
接收业务请求数据;
获取当前所述主机集群的服务状态和所述可伸缩集群的服务状态;
基于当前所述主机集群的服务状态和所述可伸缩集群的服务状态,将所述业务请求数据转发至所述主机集群或所述可伸缩集群。
可选的,该计算机可执行指令在由计算机处理器执行时还可以用于执行本公开任意实施例所提供的网关服务方法和/或业务请求转发方法的技术方案。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本公开可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。