CN115134235A - 微服务网关插件动态加载方法、装置、系统及其存储介质 - Google Patents
微服务网关插件动态加载方法、装置、系统及其存储介质 Download PDFInfo
- Publication number
- CN115134235A CN115134235A CN202210712728.1A CN202210712728A CN115134235A CN 115134235 A CN115134235 A CN 115134235A CN 202210712728 A CN202210712728 A CN 202210712728A CN 115134235 A CN115134235 A CN 115134235A
- Authority
- CN
- China
- Prior art keywords
- plug
- gateway
- monitoring
- file
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012544 monitoring process Methods 0.000 claims abstract description 73
- 238000001914 filtration Methods 0.000 claims abstract description 44
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000003032 molecular docking Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000002708 enhancing effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 239000000344 soap Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种微服务网关插件动态加载方法、装置、系统及其存储介质,涉及微服务网关技术领域。该方法包括获取插件文件定义标识,形成当前插件数据库;获取指令信息,形成监测指令;根据监测指令对存储管理器进行监测,并对比当前插件数据库,获取更新插件文件;将获取的更新插件文件进行实例化,获得插件实例并缓存;将缓存的插件实例适配成过滤器;将过滤器加入至网关的过滤链中,形成更新过滤链。其能够做到实时对网关过滤需求进行调整,提升用户体的体验感。
Description
技术领域
本申请涉及微服务网关技术领域,具体而言,涉及一种微服务网关插件动态加载方法、装置、系统及其存储介质。
背景技术
网络服务刚开始时,基本采用客户端直连服务端的模式。如果客户端想查看商品目录、订单、付款、库存这些服务,需要分别向这些服务的URL地址发送请求,然后客户端需要根据各服务端返回的响应完成聚合。这种模式存在以下明显确定:
一是效率低下。客户端如果需要一个一键下单的功能,可能会涉及与多个微服务的接口交互,需要先查看商品库存、然后完成订单、最后付款。当客户端API接口粒度与后端API接口粒度不匹配时,浏览器需要来回多次访问请求,才能完成操作。而浏览器与后端的微服务是通过WAN公网通信的,这样带来的一个问题就是带宽的浪费。
二是协议适配问题。在这个实例中我们发现,商品目录服务采用了gRPC通信协议,订单、付款服务采用了REST方式的HTTP。库存服务可能是一个遗留系统,采用了Dubbo框架,对外暴露的是Dubbo的RPC接口。在这种情况下,客户端如果想实现对不同接口的访问和对接,需要分别适配不同的技术栈,这本身也给前端工作带来了复杂性和非Web协议的不友好性。应用对外暴露的接口最好使用对Web友好、对防火墙友好的HTTP或者SOAP。应用内部之间的调用可以采用RPC这样的远程方法。
三是耦合性强。这种模式的另一个重大缺陷就是客户端与服务端存在接口层面的依赖,服务端的技术栈和接口变化都会对调用方产生极大的影响。随着时间的推移,这种依赖将束缚服务的调用方与提供方的迭代和演进,这给微服务架构下的服务划分及重构都带来了难度。
四是可替代性下降。例如,当前端调用方需要从浏览器迁移到移动端时,在浏览器上使用的对接技术(JavaScript对接gRPC、JavaScript对接Dubbo)将无法迁移到移动端。
正因为客户端直连服务端模式存在如此多的问题,所以在微服务架构中我们很少直接通过客户端与服务端通信。通常的做法是设立网关。网关置于客户端和服务端之间。微服务网关在微服务架构中作为HTTP请求的统一调用入口,用来屏蔽和隔离内部服务实现细节,保护、增强和控制对微服务的访问,实现了服务之间调用关系的松散耦合,增强了服务的可重用性。
微服务网关为服务请求和响应提供统一的调配接口,形成客户端和服务端之间的中转站。随着网关技术的发展,在微服务网关上配置插件越来越方便,各种类型和规则的插件以完整独立的程序插入到网关中,完成到服务端前端的处理任务,可以有选择性的对请求进行过滤,达到优化整个网络服务的效果。
但目前,大多数的插件都是静态加载,需要重启网关才能实现,这个一定程度上降低了用户的体验感,并且不能做到实时对网关过滤需求进行调整的目的。
因此,设计一种微服务网关插件动态加载方法,能够做到实时对网关过滤需求进行调整,提升用户体的体验感,是目前亟待解决的问题。
发明内容
本申请实施例的目的在于提供一种微服务网关插件动态加载方法,通过按照指令获取更新的插件文件来确定是否有新的插件文件需要调整。同时,利用当前插件数据库来确认插件文件的变化请款个,进而确定需要怎样进行插件文件的更新。最终参考插件文件的变化情况进行插件实例化和缓存,形成重新调整后的网关过滤链。插件文件可以实时根据指令进行获取,并在获取更新后调整网关过滤链,过滤链的调增不需要重启网关,可快速的进行调整,达到实时更新的目的,进一步提升了用户的体验感。
本申请实施例的目的在于还提供一种微服务网关插件动态加载装置,该装置的存储管理模块可以对插件文件进行统一的管理和存储,方便在进行插件的动态加载过程中对插件文件进行确认和更新获取。监测管理模块,可以根据指令对寻西湖模块中的插件文件进行监测,快速实现插件文件更新情况的确认,并驱动更新插件文件实例化,完成后续将插件实例调整入网关过滤链的作用。实例缓存模块和实例化模块可以快速实现对插件的实例化和实例缓存,避免了网关重启实现更新插件实例化以及将插件实例调整入过滤链的情况,一定程度上提高了网关过滤需求调整的效率。
本申请实施例的目的在于还提供一种微服务网关插件动态加载系统,其形成完整的微服务网络生态,并且网关采用插件动态加载装置,可以实现在不用重启网关的情况下完成过滤链的调整,提高了插件加载的效率,进一步提升用户的体验感。
本申请实施例的目的在于还提供一种存储介质,该存储介质包含能够进行插件动态加载的计算机程序指令,避免网关重启进行插件加载,提高了插件加载的效率,同时提升了用户的体验感。
第一方面,本申请实施例提供一种微服务网关插件动态加载方法,包括以下步骤:获取插件文件定义标识,形成当前插件数据库;获取指令信息,形成监测指令;根据监测指令对存储管理器进行监测,并对比当前插件数据库,获取更新插件文件;将获取的更新插件文件进行实例化,获得插件实例并缓存;将缓存的插件实例适配成过滤器;将过滤器加入至网关的过滤链中,形成更新过滤链。
在本申请实施例中,该方法通过按照指令获取更新的插件文件来确定是否有新的插件文件需要调整。同时,利用当前插件数据库来确认插件文件的变化请款个,进而确定需要怎样进行插件文件的更新。最终参考插件文件的变化情况进行插件实例化和缓存,形成重新调整后的网关过滤链。插件文件可以实时根据指令进行获取,并在获取更新后调整网关过滤链,过滤链的调增不需要重启网关,可快速的进行调整,达到实时更新的目的,进一步提升了用户的体验感。
作为一种可能的实现方式,获取指令信息,形成监测指令,根据监测指令对存储管理器进行监测,包括:获取计时指令信息,形成定期监测指令;根据定期监测指令,对存储管理器进行周期性的监测。
在本申请实施例中,插件文件根据需要插入,为了保证不会对插件文件遗漏,避免发生插件加载不及时,不准确的情况,设定周期性对存储管理器中的插件进行监测的指令。同时,周期性地对存储管理器进行监测,可以避免实时对存储管理器进行监测造成的资源浪费的情况。
作为一种可能的实现方式,获取指令信息,形成监测指令,包括:获取偶发指令信息,形成非常规监测指令;根据非常规监测指令,对存储管理器进行即时的监测。
在本申请实施例中,在进行插件调整后,需要及时的对插件进行加载,以调整网关的过滤链,实现网关过滤需求实时地、准确地变化调整。非常规监测指令即是在调整插件后立刻实行动态加载,确保网关过滤链调整的实时性,进一步提升了用户的体验感。
作为一种可能的实现方式,根据监测指令对存储管理器进行监测,并对比当前插件数据库,获取更新插件文件之后,还包括:获取存储管理器中的所有插件文件的定义标识,形成更新定义标识数据包;根据更新定义标识数据包,对当前插件数据库进行更新。
在本申请实施例中,作为对比插件文件是否发生变化的依据,当前插件数据库需要在进行插件动态加载调整就进行更新,以方便后续进行插件调整时能够准确的进行对比,判断出插件调整的具体信息。有效的保证了插件调整的准确性和正确性。
作为一种可能的实现方式,根据更新定义标识数据包,对当前插件数据库进行更新,包括:对比更新定义标识数据包和当前插件数据库中的定义标识数据,删除当前插件数据库中被删除的定义标识;对比更新定义标识数据包和当前插件数据库中的定义标识数据,添加当前插件数据库中没有存储的定义标识;对比更新定义标识数据包和当前插件数据库中的定义标识数据,更新当前插件数据库中被调整的定义标识。
在本申请实施例中,对当前插件数据库进行更新,需要更新插件可能的所有调整形式,其中包括删除的插件文件,需要对应地将其定义标识删除,避免存在与当前插件数据库中,误以为该插件一直存在,造成后续插件调整数据对比的错误。同时,需要将新增的插件文件进行定义标识的添加确定该插件文件的存在。最后是对当前已有的插件文件的调整,相应的对定义标识进行调整,避免出现未调整的插件文件信息,导致后续插件调整获取的信息错误,影响网关过滤链的正确性和准确性。
作为一种可能的实现方式,根据监测指令对存储管理器进行监测,并对比当前插件数据库,获取更新插件文件,包括:监测存储管理器,获取存储管理器中所有插件文件的定义标识数据;对比将定义标识数据与当前插件数据库中的定义标识数据,确定新增、删除和调整的定义标识数据;根据新增和调整的定义标识数据,确定更新插件文件。
在本申请实施例中,更新插件文件需要将存储管理器中的插件文件定义标识数据与当前插件数据库中的定义标识对比,能够快速、准确地进行更新插件的确认,一定程度上提高了更新插件确认的效率。
作为一种可能的实现方式,将过滤器加入至网关的过滤链中,形成更新过滤链之后,还包括:按照更新过滤链将所接收到的访问请求进行过滤,并将过滤后的访问请求发送至服务器端中。
在本申请实施例中,过滤器需要加入到网关过滤链中才能实现网关依据更新的过滤器进行过滤分析,达到实施进行插件动态加载的效果。
第二方面,本申请实施例提供一种微服务网关插件动态加载装置,采用上述所说的微服务网关插件动态加载方法,包括:存储管理模块,存储管理模块用于对插件文件进行管理和存储;监测管理模块,监测管理模块与存储管理模块连接,用于接收指令后对存储管理模块进行监测,并获取存储管理模块中的更新插件文件;将推动获取的更新插件文件实例化,并将插件实例适配成过滤器加入到网关的过滤链中;实例缓存模块,实例缓存模块与监测管理模块连接,用于将更新的插件实例进行缓存;实例化模块,实例化模块分别与实例缓存模块和监测管理模块连接,用于对插件文件进行实例化形成插件实例。
在本申请实施例中,该装置的存储管理模块可以对插件文件进行统一的管理和存储,方便在进行插件的动态加载过程中对插件文件进行确认和更新获取。监测管理模块,可以根据指令对寻西湖模块中的插件文件进行监测,快速实现插件文件更新情况的确认,并驱动更新插件文件实例化,完成后续将插件实例调整入网关过滤链的作用。实例缓存模块和实例化模块可以快速实现对插件的实例化和实例缓存,避免了网关重启实现更新插件实例化以及将插件实例调整入过滤链的情况,一定程度上提高了网关过滤需求调整的效率。
第三方面,本申请实施例提供一种微服务网关插件动态加载系统,包括客户端、服务器端和网关;网关设置于客户端与服务器端之间,且网关中设有上述所说的微服务网关插件动态加载装置。
在本申请实施例中,该系统形成完整的微服务网络生态,并且网关采用插件动态加载装置,可以实现在不用重启网关的情况下完成过滤链的调整,提高了插件加载的效率,进一步提升用户的体验感。
第四方面,本申请实施例提供一种存储介质,存储介质中存储有计算机程序指令,当计算机程序指令被计算执行时,使计算机执行如上述所说的微服务网关插件动态加载方法。
本申请实施例中,该存储介质包含能够进行插件动态加载的计算机程序指令,避免网关重启进行插件加载,提高了插件加载的效率,同时提升了用户的体验感。
本实施例提供的一种微服务网关插件动态加载方法、装置、系统及其存储介质的有益效果有:
微服务网关插件动态加载方法通过按照指令获取更新的插件文件来确定是否有新的插件文件需要调整。同时,利用当前插件数据库来确认插件文件的变化请款个,进而确定需要怎样进行插件文件的更新。最终参考插件文件的变化情况进行插件实例化和缓存,形成重新调整后的网关过滤链。插件文件可以实时根据指令进行获取,并在获取更新后调整网关过滤链,过滤链的调增不需要重启网关,可快速的进行调整,达到实时更新的目的,进一步提升了用户的体验感。
微服务网关插件动态加载装置的存储管理模块可以对插件文件进行统一的管理和存储,方便在进行插件的动态加载过程中对插件文件进行确认和更新获取。监测管理模块,可以根据指令对寻西湖模块中的插件文件进行监测,快速实现插件文件更新情况的确认,并驱动更新插件文件实例化,完成后续将插件实例调整入网关过滤链的作用。实例缓存模块和实例化模块可以快速实现对插件的实例化和实例缓存,避免了网关重启实现更新插件实例化以及将插件实例调整入过滤链的情况,一定程度上提高了网关过滤需求调整的效率。
微服务网关插件动态加载系统形成完整的微服务网络生态,并且网关采用插件动态加载装置,可以实现在不用重启网关的情况下完成过滤链的调整,提高了插件加载的效率,进一步提升用户的体验感。
存储介质包含能够进行插件动态加载的计算机程序指令,避免网关重启进行插件加载,提高了插件加载的效率,同时提升了用户的体验感。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的微服务网关插件动态加载方法的步骤图;
图2为本申请实施例提供的微服务网关插件动态加载装置的逻辑结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
网络服务刚开始时,基本采用客户端直连服务端的模式。如果客户端想查看商品目录、订单、付款、库存这些服务,需要分别向这些服务的URL地址发送请求,然后客户端需要根据各服务端返回的响应完成聚合。这种模式存在以下明显确定:
一是效率低下。客户端如果需要一个一键下单的功能,可能会涉及与多个微服务的接口交互,需要先查看商品库存、然后完成订单、最后付款。当客户端API接口粒度与后端API接口粒度不匹配时,浏览器需要来回多次访问请求,才能完成操作。而浏览器与后端的微服务是通过WAN公网通信的,这样带来的一个问题就是带宽的浪费。
二是协议适配问题。在这个实例中我们发现,商品目录服务采用了gRPC通信协议,订单、付款服务采用了REST方式的HTTP。库存服务可能是一个遗留系统,采用了Dubbo框架,对外暴露的是Dubbo的RPC接口。在这种情况下,客户端如果想实现对不同接口的访问和对接,需要分别适配不同的技术栈,这本身也给前端工作带来了复杂性和非Web协议的不友好性。应用对外暴露的接口最好使用对Web友好、对防火墙友好的HTTP或者SOAP。应用内部之间的调用可以采用RPC这样的远程方法。
三是耦合性强。这种模式的另一个重大缺陷就是客户端与服务端存在接口层面的依赖,服务端的技术栈和接口变化都会对调用方产生极大的影响。随着时间的推移,这种依赖将束缚服务的调用方与提供方的迭代和演进,这给微服务架构下的服务划分及重构都带来了难度。
四是可替代性下降。例如,当前端调用方需要从浏览器迁移到移动端时,在浏览器上使用的对接技术(JavaScript对接gRPC、JavaScript对接Dubbo)将无法迁移到移动端。
正因为客户端直连服务端模式存在如此多的问题,所以在微服务架构中我们很少直接通过客户端与服务端通信。通常的做法是设立网关。网关置于客户端和服务端之间。微服务网关在微服务架构中作为HTTP请求的统一调用入口,用来屏蔽和隔离内部服务实现细节,保护、增强和控制对微服务的访问,实现了服务之间调用关系的松散耦合,增强了服务的可重用性。
微服务网关为服务请求和响应提供统一的调配接口,形成客户端和服务端之间的中转站。随着网关技术的发展,在微服务网关上配置插件越来越方便,各种类型和规则的插件以完整独立的程序插入到网关中,完成到服务端前端的处理任务,可以有选择性的对请求进行过滤,达到优化整个网络服务的效果。
但目前,大多数的插件都是静态加载,需要重启网关才能实现,这个一定程度上降低了用户的体验感,并且不能做到实时对网关过滤需求进行调整的目的。
参考图1和图2,本申请实施例提供一种微服务网关插件动态加载方法。该方法通过按照指令获取更新的插件文件来确定是否有新的插件文件需要调整。同时,利用当前插件数据库来确认插件文件的变化请款个,进而确定需要怎样进行插件文件的更新。最终参考插件文件的变化情况进行插件实例化和缓存,形成重新调整后的网关过滤链。插件文件可以实时根据指令进行获取,并在获取更新后调整网关过滤链,过滤链的调增不需要重启网关,可快速的进行调整,达到实时更新的目的,进一步提升了用户的体验感。
本申请提供的微服务网关插件动态加载方法包括以下步骤:
S1:获取插件文件定义标识,形成当前插件数据库。
该步骤中建立一个当前插件文件的识别库,便于在进行插件调整时进行对照,快速的找出更新插件,提高插件动态加载的效率。
S2:获取指令信息,形成监测指令。
该监测指令包括以下两种:
一种是获取计时指令信息,形成定期监测指令;根据定期监测指令,对存储管理器进行周期性的监测。插件文件根据需要插入,为了保证不会对插件文件遗漏,避免发生插件加载不及时,不准确的情况,设定周期性对存储管理器中的插件进行监测的指令。同时,周期性地对存储管理器进行监测,可以避免实时对存储管理器进行监测造成的资源浪费的情况。
二种是获取偶发指令信息,形成非常规监测指令;根据非常规监测指令,对存储管理器进行即时的监测。在进行插件调整后,需要及时的对插件进行加载,以调整网关的过滤链,实现网关过滤需求实时地、准确地变化调整。非常规监测指令即是在调整插件后立刻实行动态加载,确保网关过滤链调整的实时性,进一步提升了用户的体验感。
S3:根据监测指令对存储管理器进行监测,并对比当前插件数据库,获取更新插件文件。
该步骤实现更新插件文件的获取,具体包括:监测存储管理器,获取存储管理器中所有插件文件的定义标识数据;对比将定义标识数据与当前插件数据库中的定义标识数据,确定新增、删除和调整的定义标识数据;根据新增和调整的定义标识数据,确定更新插件文件。
更新插件文件需要将存储管理器中的插件文件定义标识数据与当前插件数据库中的定义标识对比,能够快速、准确地进行更新插件的确认,一定程度上提高了更新插件确认的效率。
S4:获取存储管理器中的所有插件文件的定义标识,形成更新定义标识数据包;根据更新定义标识数据包,对当前插件数据库进行更新。
作为对比插件文件是否发生变化的依据,当前插件数据库需要在进行插件动态加载调整就进行更新,以方便后续进行插件调整时能够准确的进行对比,判断出插件调整的具体信息。有效的保证了插件调整的准确性和正确性。
更新的具体形式为根据更新定义标识数据包,对当前插件数据库进行更新,包括:对比更新定义标识数据包和当前插件数据库中的定义标识数据,删除当前插件数据库中被删除的定义标识;对比更新定义标识数据包和当前插件数据库中的定义标识数据,添加当前插件数据库中没有存储的定义标识;对比更新定义标识数据包和当前插件数据库中的定义标识数据,更新当前插件数据库中被调整的定义标识。
对当前插件数据库进行更新,需要更新插件可能的所有调整形式,其中包括删除的插件文件,需要对应地将其定义标识删除,避免存在与当前插件数据库中,误以为该插件一直存在,造成后续插件调整数据对比的错误。同时,需要将新增的插件文件进行定义标识的添加确定该插件文件的存在。最后是对当前已有的插件文件的调整,相应的对定义标识进行调整,避免出现未调整的插件文件信息,导致后续插件调整获取的信息错误,影响网关过滤链的正确性和准确性。
S5:将获取的更新插件文件进行实例化,获得插件实例并缓存;将缓存的插件实例适配成过滤器。
插件实例作为网关进行过滤的条件,以过滤器的形式生成,便于网关调整过滤链。
S6:将过滤器加入至网关的过滤链中,形成更新过滤链。
更新过滤链是动态加载的结果,能够达到新的过滤要求和规则,实时进行过滤。满足用户的需求,提高用户的体验感。形成更新过滤链之后,还包括:按照更新过滤链将所接收到的访问请求进行过滤,并将过滤后的访问请求发送至服务器端中。过滤器需要加入到网关过滤链中才能实现网关依据更新的过滤器进行过滤分析,达到实施进行插件动态加载的效果。
本申请实施例还提供一种微服务网关插件动态加载装置,该装置采用上述的微服务网关插件动态加载方法,包括:存储管理模块,存储管理模块用于对插件文件进行管理和存储;监测管理模块,监测管理模块与存储管理模块连接,用于接收指令后对存储管理模块进行监测,并获取存储管理模块中的更新插件文件;将推动获取的更新插件文件实例化,并将插件实例适配成过滤器加入到网关的过滤链中;实例缓存模块,实例缓存模块与监测管理模块连接,用于将更新的插件实例进行缓存;实例化模块,实例化模块分别与实例缓存模块和监测管理模块连接,用于对插件文件进行实例化形成插件实例。
该装置的存储管理模块可以对插件文件进行统一的管理和存储,方便在进行插件的动态加载过程中对插件文件进行确认和更新获取。监测管理模块,可以根据指令对寻西湖模块中的插件文件进行监测,快速实现插件文件更新情况的确认,并驱动更新插件文件实例化,完成后续将插件实例调整入网关过滤链的作用。实例缓存模块和实例化模块可以快速实现对插件的实例化和实例缓存,避免了网关重启实现更新插件实例化以及将插件实例调整入过滤链的情况,一定程度上提高了网关过滤需求调整的效率。
本申请实施例也提供了一种微服务网关插件动态加载系统,包括客户端、服务器端和网关;网关设置于客户端与服务器端之间,且网关中设有上述所说的微服务网关插件动态加载装置。该系统形成完整的微服务网络生态,并且网关采用插件动态加载装置,可以实现在不用重启网关的情况下完成过滤链的调整,提高了插件加载的效率,进一步提升用户的体验感。
另外,本申请实施例还提供了一种存储介质,存储介质中存储有计算机程序指令,当计算机程序指令被计算执行时,使计算机执行如上述所说的微服务网关插件动态加载方法。该存储介质包含能够进行插件动态加载的计算机程序指令,避免网关重启进行插件加载,提高了插件加载的效率,同时提升了用户的体验感。
综上所述,本申请实施例提供的一种微服务网关插件动态加载方法、装置、系统及其存储介质的有益效果有:
微服务网关插件动态加载方法通过按照指令获取更新的插件文件来确定是否有新的插件文件需要调整。同时,利用当前插件数据库来确认插件文件的变化请款个,进而确定需要怎样进行插件文件的更新。最终参考插件文件的变化情况进行插件实例化和缓存,形成重新调整后的网关过滤链。插件文件可以实时根据指令进行获取,并在获取更新后调整网关过滤链,过滤链的调增不需要重启网关,可快速的进行调整,达到实时更新的目的,进一步提升了用户的体验感。
微服务网关插件动态加载装置的存储管理模块可以对插件文件进行统一的管理和存储,方便在进行插件的动态加载过程中对插件文件进行确认和更新获取。监测管理模块,可以根据指令对寻西湖模块中的插件文件进行监测,快速实现插件文件更新情况的确认,并驱动更新插件文件实例化,完成后续将插件实例调整入网关过滤链的作用。实例缓存模块和实例化模块可以快速实现对插件的实例化和实例缓存,避免了网关重启实现更新插件实例化以及将插件实例调整入过滤链的情况,一定程度上提高了网关过滤需求调整的效率。
微服务网关插件动态加载系统形成完整的微服务网络生态,并且网关采用插件动态加载装置,可以实现在不用重启网关的情况下完成过滤链的调整,提高了插件加载的效率,进一步提升用户的体验感。
存储介质包含能够进行插件动态加载的计算机程序指令,避免网关重启进行插件加载,提高了插件加载的效率,同时提升了用户的体验感。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种微服务网关插件动态加载方法,其特征在于,包括以下步骤:
获取插件文件定义标识,形成当前插件数据库;
获取指令信息,形成监测指令;
根据监测指令对存储管理器进行监测,并对比所述当前插件数据库,获取更新插件文件;
将获取的所述更新插件文件进行实例化,获得插件实例并缓存;
将缓存的所述插件实例适配成过滤器;
将所述过滤器加入至网关的过滤链中,形成更新过滤链。
2.根据权利要求1所述的微服务网关插件动态加载方法,其特征在于,所述获取指令信息,形成监测指令,根据监测指令对存储管理器进行监测,包括:
获取计时指令信息,形成定期监测指令;
根据所述定期监测指令,对所述存储管理器进行周期性的监测。
3.根据权利要求1所述的微服务网关插件动态加载方法,其特征在于,所述获取指令信息,形成监测指令,包括:
获取偶发指令信息,形成非常规监测指令;
根据所述非常规监测指令,对所述存储管理器进行即时的监测。
4.根据权利要求1所述的微服务网关插件动态加载方法,其特征在于,所述根据监测指令对存储管理器进行监测,并对比所述当前插件数据库,获取更新插件文件之后,还包括:
获取所述存储管理器中的所有插件文件的定义标识,形成更新定义标识数据包;
根据所述更新定义标识数据包,对所述当前插件数据库进行更新。
5.根据权利要求4所述的微服务网关插件动态加载方法,其特征在于,所述根据所述更新定义标识数据包,对所述当前插件数据库进行更新,包括:
对比更新定义标识数据包和所述当前插件数据库中的定义标识数据,删除所述当前插件数据库中被删除的定义标识;
对比更新定义标识数据包和所述当前插件数据库中的定义标识数据,添加所述当前插件数据库中没有存储的定义标识;
对比更新定义标识数据包和所述当前插件数据库中的定义标识数据,更新所述当前插件数据库中被调整的定义标识。
6.根据权利要求1所述的微服务网关插件动态加载方法,其特征在于,所述根据监测指令对存储管理器进行监测,并对比所述当前插件数据库,获取更新插件文件,包括:
监测所述存储管理器,获取所述存储管理器中所有插件文件的定义标识数据;
对比将所述定义标识数据与所述当前插件数据库中的定义标识数据,确定新增、删除和调整的定义标识数据;
根据新增和调整的定义标识数据,确定所述更新插件文件。
7.根据权利要求3所述的微服务网关插件动态加载方法,其特征在于,所述将所述过滤器加入至网关的过滤链中,形成更新过滤链之后,还包括:
按照所述更新过滤链将所接收到的访问请求进行过滤,并将过滤后的访问请求发送至服务器端中。
8.一种微服务网关插件动态加载装置,其特征在于,采用权利要求1-7任一所述的微服务网关插件动态加载方法,包括:
存储管理模块,所述存储管理模块用于对插件文件进行管理和存储;
监测管理模块,所述监测管理模块与所述存储管理模块连接,用于接收指令后对所述存储管理模块进行监测,并获取所述存储管理模块中的更新插件文件;将推动获取的更新插件文件实例化,并将插件实例适配成过滤器加入到网关的过滤链中;
实例缓存模块,所述实例缓存模块与所述监测管理模块连接,用于将更新的插件实例进行缓存;
实例化模块,所述实例化模块分别与所述实例缓存模块和所述监测管理模块连接,用于对插件文件进行实例化形成插件实例。
9.一种微服务网关插件动态加载系统,其特征在于,包括客户端、服务器端和网关;所述网关设置于所述客户端与所述服务器端之间,且所述网关中设有如权利要求8所述的微服务网关插件动态加载装置。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序指令,当计算机程序指令被计算执行时,使计算机执行如权利要求1-7任一所述微服务网关插件动态加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210712728.1A CN115134235A (zh) | 2022-06-22 | 2022-06-22 | 微服务网关插件动态加载方法、装置、系统及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210712728.1A CN115134235A (zh) | 2022-06-22 | 2022-06-22 | 微服务网关插件动态加载方法、装置、系统及其存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115134235A true CN115134235A (zh) | 2022-09-30 |
Family
ID=83380846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210712728.1A Pending CN115134235A (zh) | 2022-06-22 | 2022-06-22 | 微服务网关插件动态加载方法、装置、系统及其存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115134235A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608677A (zh) * | 2023-05-22 | 2024-02-27 | 阿里云计算有限公司 | 插件的生成方法、云服务系统及服务访问方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988274A (zh) * | 2021-03-25 | 2021-06-18 | 北京滴普科技有限公司 | 微服务网关插件动态加载方法、装置、系统及其存储介质 |
CN113726662A (zh) * | 2021-08-19 | 2021-11-30 | 成都民航西南凯亚有限责任公司 | 一种微服务路由及管理系统插件 |
CN113765695A (zh) * | 2021-03-26 | 2021-12-07 | 北京京东拓先科技有限公司 | 一种网关管理方法、装置、设备及计算机可读存储介质 |
-
2022
- 2022-06-22 CN CN202210712728.1A patent/CN115134235A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988274A (zh) * | 2021-03-25 | 2021-06-18 | 北京滴普科技有限公司 | 微服务网关插件动态加载方法、装置、系统及其存储介质 |
CN113765695A (zh) * | 2021-03-26 | 2021-12-07 | 北京京东拓先科技有限公司 | 一种网关管理方法、装置、设备及计算机可读存储介质 |
CN113726662A (zh) * | 2021-08-19 | 2021-11-30 | 成都民航西南凯亚有限责任公司 | 一种微服务路由及管理系统插件 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608677A (zh) * | 2023-05-22 | 2024-02-27 | 阿里云计算有限公司 | 插件的生成方法、云服务系统及服务访问方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277639B (zh) | 一种保持数据一致性的方法和装置 | |
US9766927B1 (en) | Data flow management in processing workflows | |
CN111600952A (zh) | 场景推送方法、执行方法、装置、终端、服务器和系统 | |
WO2019051948A1 (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN108664613A (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN112148711A (zh) | 一种批处理任务的处理方法和装置 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN111240812A (zh) | 任务执行方法及装置 | |
US20220303355A1 (en) | Resource discovery agent computing device, software application, and method | |
US20120266186A1 (en) | Providing inter-platform application launch in context | |
CN115134235A (zh) | 微服务网关插件动态加载方法、装置、系统及其存储介质 | |
CN103647811A (zh) | 一种实现应用访问后台服务的方法和装置 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
US10223407B2 (en) | Asynchronous processing time metrics | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN111367685A (zh) | 接口调用的方法及装置、计算机设备、存储介质 | |
US8694596B2 (en) | Systems and methods for information brokering in software management | |
CN110347659B (zh) | 数据处理方法和装置、交易数据处理方法和装置 | |
CN115914319A (zh) | 一种虚拟现实设备的远程管理方法和系统 | |
CN113760487B (zh) | 一种业务处理方法和装置 | |
CN114090268A (zh) | 容器管理方法及容器管理系统 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
CN103294527A (zh) | 一种处理网络任务的方法、系统以及服务器 | |
CN112860292A (zh) | 一种基于应用的配置管理方法及装置 | |
CN113726885A (zh) | 一种流量配额的调整方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220930 |
|
RJ01 | Rejection of invention patent application after publication |