一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集群管理器调度引擎实例的方法、装置及计算机设备与流程

2022-02-20 01:28:00 来源:中国专利 TAG:


1.本发明涉及计算机网络技术领域,具体涉及一种集群管理器调度引擎实例的方法。


背景技术:

2.对于医疗、教育、军工、地产等行业的企事业单位信息管理系统,涉及的内部外部业务系统通常很多(可能达到上百个),日系统间交互消息量有可能达到几千万。
3.为了解决业务系统点对点间交互的情况,考虑上线信息集成平台,业务系统作为端点只与集成平台对接,集成平台完成与其他业务系统对接过程,实现业务系统间交互的解耦和交互可配置,实现业务系统间交互过程的跟踪监控和报警。
4.集成平台做为负载中心点,希望采用集群化运行方式提高可靠性和处理速度,避免单点故障所带来的大范围影响。集群化运行需要有集群管理器对多个运行处理实例(以下简称引擎实例)进行有效调度,需要不仅能够达到引擎实例调用负载均衡的目的,而且能够保障消息被有效处理,真正发挥集群的作用。目前,现有技术中尚未提出有关集群管理器调度引擎实例的机制。


技术实现要素:

5.本发明实施例提供一种集群管理器调度引擎实例的方法、装置及计算机设备,旨在不仅达到引擎实例调用负载均衡的目的,而且保障消息被有效处理,真正发挥集群的作用。
6.为了实现上述目的,本发明实施例提供如下技术方案:
7.第一方面,集群管理器调度引擎实例的方法,所述引擎实例只能由集群管理器访问,其特殊之处在于,该方法包括:
8.接收消息,所述消息中包含端点的token信息;
9.根据所述token信息识别端点身份,并对端点身份鉴权,判断端点是否有权发送该消息;
10.对于通过鉴权的消息,再判断当前引擎可用状态;
11.若当前存在可用的引擎,根据消息类型初步分配相适配的引擎实例;
12.依据负载均衡算法选定引擎实例,将消息发送给该引擎实例进行处理。
13.可选地,所述对身份鉴权,具体是根据端点的ip地址和访问权限,判断端点是否有权发送消息。
14.可选地,所述引擎可用状态按照以下方式标记:
15.判断引擎实例地址是否可以访问,若访问超时,则引擎可用状态=0;
16.判断引擎实例是否可以连接日志数据库,若无法连接日志数据库,则引擎可用状态=0;
17.判断引擎实例心跳值,若心跳值=0,则引擎可用状态=0;
18.否则,引擎可用状态=1,表示当前存在可用的引擎。
19.可选地,在当前存在可用的引擎时、所述根据消息类型分配相适配的引擎之前,先判断消息的属性中是否存在消息定向处理引擎实例,当存在该属性时,则直接将消息发送给指定的引擎实例处理。
20.可选地,所述根据消息类型分配相适配的引擎,具体是:如果消息类型为同步消息,则将消息发送给常规引擎或者超级引擎;如果消息类型为异步消息,则将消息发送给mq专用引擎或超级引擎。
21.可选地,所述依据负载均衡算法选定引擎实例,具体是:依据负载均衡算法依次对各个引擎实例的运行状态做判断:引擎实例是否处于维护状态,引擎实例是否已经达到满负荷运行状态;如果满足以上条件,则将消息发送给该引擎实例进行处理;如果存在不满足的条件,则判断范围内的其他引擎实例的运行状态,将消息发送给满足条件的引擎实例进行处理。
22.可选地,所述接收消息,具体是可以直接接收端点发送的消息,也可以是接收经统一接口nginx分发的消息。
23.第二方面,集群管理器调度引擎实例的装置,其特殊之处在于,包括:
24.消息接收模块,用于接收消息,所述消息中包含端点的token信息;
25.鉴权认证模块,用于根据所述token信息识别端点身份,并对端点身份鉴权,判断端点是否有权发送该消息;
26.引擎状态识别模块,用于在消息鉴权通过的情况下,判断当前引擎可用状态;
27.引擎匹配模块,用于在当前存在可用的引擎的情况下,根据消息类型初步分配相适配的引擎实例;
28.负载均衡处理模块,用于依据负载均衡算法选定引擎实例,将消息发送给该引擎实例进行处理。
29.第三方面,一种应用于集群管理器的计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特殊之处在于,所述处理器执行所述计算机程序时实现上述方法的步骤。
30.第四方面,一种计算机可读存储介质,其上存储有计算机程序,其特殊之处在于,所述计算机程序被处理器执行时实现上述方法的步骤。
31.本发明至少具有以下有益效果:
32.本发明通过端点身份鉴权、引擎实可用状态判断、引擎实例类型适配、依据负载均衡的算法依次对引擎实例的运行状态最终确定引擎实例对消息进行处理,不仅能够达到引擎实例调用负载均衡的目的,而且能够保障消息被有效处理,真正发挥集群的作用。
附图说明
33.为了更清楚地说明现有技术以及本发明,下面将对现有技术以及本发明实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的附图。
34.图1为本发明一个实施例涉及的集群部署架构示意图。
35.图2为本发明一个实施例集群管理器调度引擎实例的方法的流程示意图。
36.图3为本发明一个实施例中查询、更新引擎可用状态的示意图。
具体实施方式
37.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
38.本技术一个实施例提供的集群管理器调度引擎实例的方法,可适用于图1所示的集群部署架构。从部署架构上来看,第三方nginx作为可选项实现集中访问,端点发送消息给nginx,由nginx对管理器进行分发。也可以去中心化,端点发送消息给任意集群管理器都是集群化处理,提高处理性能,无单点漏洞,增加平台运行的可靠性,不会因为某台服务器故障影响全局运行。
39.端点只能访问集群管理器,引擎实例只能由集群管理器访问。
40.从引擎实例角度,能够将引擎实例类型细分,并能够分别部署,可以充分发挥引擎的工作效率,其中常规类型引擎可以用来只处理同步消息,mq专用引擎可以用来只处理异步消息,混合引擎即可以处理同步消息也可以处理异步消息。集群管理器能够根据发送过来的消息类型,判断对哪种类型引擎的调用。
41.表1调用引擎实例判断机制二维表
[0042][0043]
在一个实施例中,如图2所示,提供了一种集群管理器调度引擎实例的方法,包括以下步骤:
[0044]
s1:接收消息,所述消息中包含端点的token信息;
[0045]
s2:根据所述token信息识别端点身份,并对端点身份鉴权,判断端点是否有权发送该消息;
[0046]
s3:对于通过鉴权的消息,再判断当前引擎可用状态;
[0047]
s4:若当前存在可用的引擎,根据消息类型初步分配相适配的引擎实例;
[0048]
s5:依据负载均衡算法选定引擎实例,将消息发送给该引擎实例进行处理。
[0049]
其中,在s4之前,还可先判断消息的属性中是否存在消息定向处理引擎实例,当存在该属性时,则直接将消息发送给指定的引擎实例处理。
[0050]
如此,通过端点身份鉴权、引擎实可用状态判断、引擎实例类型适配、依据负载均衡的算法依次对引擎实例的运行状态最终确定引擎实例对消息进行处理,不仅能够达到引擎实例调用负载均衡的目的,而且能够保障消息被有效处理,真正发挥集群的作用。
[0051]
在一个实施例中,集群管理器对引擎实例的访问逻辑具体如下:
[0052]
判断优先级1:集群管理器鉴权认证优先于引擎实可用状态判断
[0053]
集群管理器负责接收消息,消息中包含发送者(以下称为端点)的token信息,集群管理器能够根据token信息识别端点身份,并对身份鉴权(包括端点的ip地址、访问权限)。也就是说,消息中包含发送的消息代码,集群管理器能够对端点是否有权发送消息做判断。
[0054]
判断优先级2:引擎实例可用状态优先级高于引擎实例定向维度
[0055]
如图3所示,在消息通过集群管理器的鉴权后,集群管理器查找引擎可用状态=1的引擎实例,集群管理器只调用引擎可用状态=1的引擎实例。
[0056]
引擎可用状态的判断:
[0057]
(1)引擎实例地址是否可以访问,访问超时,引擎可用状态=0
[0058]
(2)引擎实例是否可以连接日志数据库,如果无法连接日志数据库,引擎可用状态=0
[0059]
(3)引擎实例心跳值,心跳值=0,引擎可用状态=0
[0060]
对于第(1)项,集群管理器直接判断,对于第(2)、(3)项,集群管理器可通过引擎实例提供的getprocessorstatus方法实现状态值的获取。
[0061]
判断优先级3:引擎实例定向维度优先级高于引擎实例类型维度
[0062]
集群管群器发现存在引擎可用状态=1的引擎实例,接下来判断消息的属性中是否存在消息定向处理引擎实例(可选项),当存在这个属性时,该消息只能发送给指定的引擎实例处理。
[0063]
判断优先级4:引擎实例类型维度优先级高于引擎实例运行状态
[0064]
集群管理器判断消息的类型,如果消息类型为同步消息,集群管理器需要将消息发送给常规引擎或者超级引擎(或称混合引擎),如果消息类型为异步消息,集权管理器需要将消息发送给mq专用引擎或超级引擎(或称混合引擎)。
[0065]
引擎实例个数可以配置,理论上无个数限制,可以对每个引擎实例设置引擎类型。
[0066]
判断优先级5:引擎实例运行状态决定最终管理器可以访问哪个引擎实例
[0067]
在之前几步的判断基础上,集群管理器还要依据负载均衡的算法依次对引擎实例的运行状态做判断,该引擎实例是否处于维护状态,该引擎实例是否已经达到满负荷运行状态,如果存在不满足状态,集群管理器则需要判断范围内的其他引擎实例的运行状态,如果满足条件,将消息发送给引擎实例进行处理。
[0068]
引擎实例负荷状态机制:在集群管理器发送给引擎实例时,引擎实例执行集成项目前增加判断,具体算法例如:
[0069]
·
引擎实例可用token数未超限(参数设置数)
[0070]
·
可以处理消息
[0071]
·
引擎实例可用token数超限(参数设置数)
[0072]
·
返回失败信息,集权管理器尝试访问另外一个引擎实例
[0073]
·
按照设定次数(para_token_retry_num),集群管理器循环所有常规引擎或超级引擎,依旧超限
[0074]
·
集群管理器返回给调用方信息(格式同之前310之类格式)
[0075]
·
077:引擎实例处理繁忙,请稍后再尝试
[0076]
·
para_token_if_use=1
[0077]
·
一个消息请求,引擎实例判断token消耗数 1》最大负荷参数
[0078]
·
不成立
[0079]
·
token消耗数=token消耗数 1
[0080]
·
允许请求
[0081]
·
消息执行完毕,token消耗数=token消耗数

1,最小是0
[0082]
·
成立
[0083]
·
拒绝请求
[0084]
对于既要达到引擎实例调用负载均衡的目的,而且能够保障消息被有效处理,真正发挥集群的作用,本实施例作了充分的考虑,例如:
[0085]
如果引擎实例处于不可用状态,集群管理器即使发送给引擎实例也无法处理,影响业务系统间的交互。
[0086]
如果引擎实例处于繁忙状态,集群管理器即使发送给引擎实例需要等待,影响业务系统间的交互。
[0087]
以医疗行业的企事业单位信息管理系统为例,基于本实施例提供的方案,通过将引擎实例分类,可以按照医院的实际场景有针对性的部署引擎实例:
[0088]
如果医院规模比较大,每天所产生的同步消息比较多,并发量比较大,可以几个高配置服务器部署常规引擎专门处理同步消息,几个低配置服务器部署mq专用引擎专门处理异步消息,这样可以最大化的利用服务器资源和提高处理消息效率。
[0089]
如果医院规模比较小,消息量不大的情况下,可以部署几个混合引擎,这样能节约医院的硬件投入成本。
[0090]
在一个实施例中,还提供了一种集群管理器调度引擎实例的装置,包括以下程序模块:
[0091]
消息接收模块,用于接收消息,所述消息中包含端点的token信息;
[0092]
鉴权认证模块,用于根据所述token信息识别端点身份,并对端点身份鉴权,判断端点是否有权发送该消息;
[0093]
引擎状态识别模块,用于在消息鉴权通过的情况下,判断当前引擎可用状态;
[0094]
引擎匹配模块,用于在当前存在可用的引擎的情况下,根据消息类型初步分配相适配的引擎实例;
[0095]
负载均衡处理模块,用于依据负载均衡算法选定引擎实例,将消息发送给该引擎实例进行处理。
[0096]
关于上述装置的具体限定可以参见上文中对于集群管理器调度引擎实例的方法的限定,在此不再赘述。上述装置中的各个模块可全部通过软件来实现。上述各模块可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0097]
在一个实施例中,还提供了一种应用于集群管理器的计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,涉及上述实施例方法中的全部或部分流程。
[0098]
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,涉及上述实施例方法中的全部或部分流程。
[0099]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0100]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0101]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献