CN117857573A - 网关服务热加载方法、装置、介质和设备 - Google Patents
网关服务热加载方法、装置、介质和设备 Download PDFInfo
- Publication number
- CN117857573A CN117857573A CN202311665011.7A CN202311665011A CN117857573A CN 117857573 A CN117857573 A CN 117857573A CN 202311665011 A CN202311665011 A CN 202311665011A CN 117857573 A CN117857573 A CN 117857573A
- Authority
- CN
- China
- Prior art keywords
- file
- gateway service
- dll file
- target path
- dll
- 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 59
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012544 monitoring process Methods 0.000 claims abstract description 26
- 230000008859 change Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000004048 modification Effects 0.000 abstract description 5
- 238000012986 modification Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000012190 activator Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
-
- 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/50—Network services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网关服务热加载方法、装置、介质和设备,先定义接口规范,其中包括DLL文件的路径和网关服务的目标方法。再获取初始DLL文件并将其存储在目标路径中。再实时监听目标路径下的DLL文件是否发生变动,这样可以在DLL文件发生变动时立即采取行动,确保系统的更新或修改能够立即生效。如果DLL文件发生变动,就通过文件流的方式读取变动的DLL文件。然后,热加载读取到的文件流,创建相应的网关服务实例,并将其添加到当前的内存实例中。这样读取变动的DLL文件,并通过热加载读取的文件流创建网关服务实例,系统不需要停机或重启,从而避免了停机时间,保证了连续的服务可用性。
Description
技术领域
本发明涉及互联网技术领域,尤其是涉及一种网关服务热加载方法、装置、介质和设备。
背景技术
现有的网关服务加载方式需要先停止服务器运行,然后进行加载操作。该方式在更新服务器时,需要等待较长时间才能重新启动服务器,由于服务器停止运行期间无法为客户端提供服务,会造成服务中断和用户体验不佳的问题。
发明内容
基于此,有必要提供网关服务热加载方法、装置、介质和设备,以解决服务器停止运行期间无法为客户端提供服务,会造成服务中断和用户体验不佳的问题。
一种网关服务热加载方法,所述方法包括:
定义网关服务的接口规范;其中,接口规范包括DLL文件的目标路径地址和网关服务对应的目标方法;
获取实现所述目标方法的初始DLL文件并存储至所述目标路径地址;
实时监听所述目标路径地址下的DLL文件是否存在变动;
若所述目标路径地址下的DLL文件存在变动,则通过文件流的方式读取所述目标路径地址下的变动DLL文件;
热加载读取到的文件流并创建对应的网关服务实例,将所述网关服务实例添加至当前的内存实例中。
在其中一个实施例中,所述实时监听所述目标路径地址下的DLL文件是否存在变动,包括:
创建监听器,将所述目标路径地址作为所述监听器的监听目录,并指定监听的DLL文件参数;
当所述监听目录下的DLL文件参数发生变化时,确定DLL文件存在变动。
在其中一个实施例中,监听的DLL变动包括创建、更改及删除中至少一项。
在其中一个实施例中,所述通过文件流的方式读取所述目标路径地址下的变动DLL文件,包括:
引入命名空间,通过文件流类的构造函数创建文件流对象,以传入所述目标路径地址和文件打开的预设模式;
使用所述预设模式打开文件流,并通过文件流的方式读取所述目标路径地址下的变动DLL文件。
在其中一个实施例中,所述热加载读取到的文件流并创建对应的网关服务实例,包括:
通过Assembly Load文件流的方式热加载文件流中的程序集;
通过加载的程序集,使用反射机制创建对应的网关服务实例。
在其中一个实施例中,所述方法还包括:
实时监控热加载和创建网关服务实例的处理过程;
若监控到处理过程中存在异常情况,则执行回滚操作。
在其中一个实施例中,所述方法还包括:
在热加载过程中记录关键信息、错误日志和性能指标。
一种网关服务热加载装置,所述装置包括:
接口规范定义模块,用于定义网关服务的接口规范;其中,接口规范包括DLL文件的目标路径地址和网关服务对应的目标方法;
初始DLL文件获取模块,用于获取实现所述目标方法的初始DLL文件并存储至所述目标路径地址;
监听模块,用于实时监听所述目标路径地址下的DLL文件是否存在变动;
热加载模块,用于若所述目标路径地址下的DLL文件存在变动,则通过文件流的方式读取所述目标路径地址下的变动DLL文件;热加载读取到的文件流并创建对应的网关服务实例,将所述网关服务实例添加至当前的内存实例中。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述网关服务热加载方法的步骤:
一种网关服务热加载设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述网关服务热加载方法的步骤:
本发明提供了网关服务热加载方法、装置、介质和设备,先定义接口规范,其中包括DLL文件的路径和网关服务的目标方法。再获取初始DLL文件并将其存储在目标路径中。再实时监听目标路径下的DLL文件是否发生变动,这样可以在DLL文件发生变动时立即采取行动,确保系统的更新或修改能够立即生效。如果DLL文件发生变动,就通过文件流的方式读取变动的DLL文件。然后,热加载读取到的文件流,创建相应的网关服务实例,并将其添加到当前的内存实例中。这样读取变动的DLL文件,并通过热加载读取的文件流创建网关服务实例,系统不需要停机或重启,从而避免了停机时间,保证了连续的服务可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为网关服务热加载方法的流程示意图;
图2为网关服务热加载装置的结构示意图;
图3为网关服务热加载设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
如图1所示,图1为一个实施例中网关服务热加载方法的流程示意图,为便于说明,下文仅以订房场景为例进行说明,该场景中我们需要为订房系统增加新的支付方式,为了避免服务器停止运行期间无法为客户端提供服务,采用本网关服务热加载方法。当然可以理解的是,本实施例也可以应用于其他的网关服务加载场景。
本实施例中网关服务热加载方法提供的步骤包括:
S101,定义网关服务的接口规范。
这一步是为了明确网关服务应该具备的特性和功能。在本实施例中,接口规范将包括两个主要部分:DLL文件的目标路径地址和网关服务对应的目标方法。
其中,
DLL文件的目标路径地址:表示了存放支付方式实现的DLL文件的位置。示例性的,我们可以将支付方式的实现放在一个名为PaymentMethods.dll的文件中,其目标路径地址可以是C:\PaymentMethods\。
网关服务对应的目标方法:指的是网关服务需要支持的具体支付操作。示例性的,对于支付方式A,我们可能会有一个名为PaymentA()的方法用于处理支付请求。
因此在接口规范中,我们可以定义:
DLL文件目标路径地址:C:\PaymentMethods\
网关服务目标方法:PaymentA()
这样,我们就明确了网关服务应该放在哪个文件夹下,并且其中必须包含一个名为PaymentA()的方法来处理支付请求。
S102,获取实现目标方法的初始DLL文件并存储至目标路径地址。
示例性的,我们从官方渠道获取到相应的DLL文件PaymentMethodA.dll,这个DLL文件中包含了支付方式A的实现代码。
接着,我们将获得的DLL文件保存至系统指定的目标路径地址,也就是:C:\PaymentMethods\PaymentMethodA.dll文件,在这个路径下,我们保存了支付宝支付方式的DLL文件,使得订房系统能够在需要时可调用PaymentA()方法来实现对应的支付功能。
S103,实时监听目标路径地址下的DLL文件是否存在变动。若目标路径地址下的DLL文件存在变动,则执行S104。
可选的,系统监听的DLL变动包括创建、更改及删除中至少一项。
在一个具体实施中,实时监听目标路径地址下的DLL文件是否存在变动的步骤具体包括:
(1)、创建监听器,将目标路径地址作为监听器的监听目录,并指定监听的DLL文件参数。
示例性的,在C#中,可以使用FileSystemWatcher类来创建监听器,设置其Path属性为C:\PaymentMethods\,并使用NotifyFilter属性来指定监听的DLL文件参数,如NotifyFilter.LastWrite|NotifyFilter.FileName,表示监听文件的修改和文件名的变动。
(2)、当监听目录下的DLL文件参数发生变化时,确定DLL文件存在变动。
监听器会实时监控目标路径地址(C:\PaymentMethods\)下的DLL文件参数。它会检测是否有文件被新增、修改或删除。
当监听目录下的DLL文件参数发生变化时,监听器会触发相应的事件,从而确定DLL文件存在变动。例如,如果管理员在C:\PaymentMethods\目录下新增了一个名为PaymentMethodB.dll的DLL文件,监听器将会检测到这个变化并触发相应的事件。本实施例中,若目标路径地址下的DLL文件存在变动,则执行S104以进行热加载。
通过这两个步骤,系统能够实时监测目标路径下DLL文件的变动情况,确保在支付方式发生变动时,系统可以迅速响应并进行相应的操作,
S104,通过文件流的方式读取目标路径地址下的变动DLL文件。
可以理解的是,变动DLL文件也就对应上文中的PaymentMethodB.dll。
在一个具体实施中,通过文件流的方式读取目标路径地址下的变动DLL文件的步骤具体包括:
(1)、引入命名空间,通过文件流类的构造函数创建文件流对象,以传入目标路径地址和文件打开的预设模式。
在程序中使用文件流类之前,需要先引入相应的命名空间。在C#中,可以使用using语句来引入System.IO命名空间,该命名空间包含了文件流相关的类和方法。
接着使用文件流类提供的构造函数来创建文件流对象。文件流类有多个重载的构造函数,可以根据需要选择不同的构造函数。例如,可以使用FileStream(string path,FileMode mode)构造函数来创建一个文件流对象,其中path参数表示要打开的文件路径,mode参数表示文件打开的预设模式。
(2)、使用预设模式打开文件流,并通过文件流的方式读取目标路径地址下的变动DLL文件。
创建文件流对象后,需要使用其Open方法来打开文件流。打开文件流时,可以指定文件打开的模式、访问权限和共享方式等参数。例如,可以使用文件流对象的Open方法来打开文件流,并指定FileMode.Open和FileAccess.Read模式以只读方式打开DLL文件。
在打开文件流之后,可以使用其提供的方法来读取DLL文件的内容。具体的读取操作可以根据需求和编程语言的特点来选择,例如使用Read、ReadLine或ReadBytes等方法。
通过以上步骤,我们成功地使用文件流的方式读取了目标路径地址下的变动DLL文件的内容。这样,后续我们可以进一步对DLL文件进行处理。
S105,热加载读取到的文件流并创建对应的网关服务实例,将网关服务实例添加至当前的内存实例中。
在一个具体实施中,热加载读取到的文件流并创建对应的网关服务实例,包括:
(1)、通过Assembly Load文件流的方式热加载文件流中的程序集。
具体的,使用Assembly.Load方法可以将文件流中的程序集动态加载到内存中。这样,我们就可以在运行时使用这个程序集中的类型和成员。
示例代码:
Assembly assembly=Assembly.Load(buffer);
其中,buffer是之前从文件流中读取的DLL文件的内容。
(2)、通过加载的程序集,使用反射机制创建对应的网关服务实例。
使用反射机制可以在运行时动态地创建类型的实例。在这里,我们可以根据程序集中的类型信息创建对应的网关服务实例。
示例代码:
Type gatewayType=assembly.GetType("Namespace.ClassName");
object gatewayInstance=Activator.CreateInstance(gatewayType);
其中,Namespace.ClassName需要替换成实际的类型全名,这个类型名应该是实现了网关服务接口的类。
网关服务实例创建成功后,我们需要将其添加到当前的内存实例中,以便在订房系统中使用。
示例代码(假设gatewayInstance是实现了网关服务接口的实例):
GatewayManager.AddGateway(gatewayInstance);
其中,GatewayManager.AddGateway方法用于将网关服务实例添加到网关管理器中,以便后续在系统中使用。
通过以上步骤,我们成功地热加载了文件流中的程序集,并创建了对应的网关服务实例,并将其添加到了当前的内存实例中,从而使其可以在订房系统中使用。这样,系统就可以动态地扩展和更新网关服务了。
上述网关服务热加载方法,先定义接口规范,其中包括DLL文件的路径和网关服务的目标方法。再获取初始DLL文件并将其存储在目标路径中。再实时监听目标路径下的DLL文件是否发生变动,这样可以在DLL文件发生变动时立即采取行动,确保系统的更新或修改能够立即生效。如果DLL文件发生变动,就通过文件流的方式读取变动的DLL文件。然后,热加载读取到的文件流,创建相应的网关服务实例,并将其添加到当前的内存实例中。这样读取变动的DLL文件,并通过热加载读取的文件流创建网关服务实例,系统不需要停机或重启,从而避免了停机时间,保证了连续的服务可用性。
在一个具体实施中,本发明还可执行如下步骤:
(1)、实时监控热加载和创建网关服务实例的处理过程。
在整个热加载和创建网关服务实例的过程中,需要建立监控机制以确保整个操作的稳定性和可靠性。这包括了对每个步骤的监控,确保它们在预期时间内完成,以及对结果的检查,以防止潜在的问题。
在订房系统的例子中,我们可以通过记录日志或者使用监控工具来实时监控这个过程。比如,在热加载新的支付方式时,我们可以在开始加载时记录一个日志,然后在加载成功或失败时分别记录相应的日志。
(2)、若监控到处理过程中存在异常情况,则执行回滚操作。
如果在热加载和创建网关服务实例的过程中发生了异常情况,比如程序抛出了一个未处理的异常,系统应该能够回滚到一个稳定的状态,以避免造成更严重的问题。
在订房系统的例子中,如果在加载新的支付方式时发生了异常,系统可以回滚到之前的状态,即使用之前可用的支付方式。这可以通过备份相关数据或者使用事务来实现。
在一个具体实施中,本发明还可执行如下步骤:
(1)、在热加载过程中记录关键信息、错误日志和性能指标。
在热加载的过程中,我们可以记录一些关键信息,比如热加载开始的时间、加载的DLL文件名称等。这些信息可以帮助我们追溯整个过程,方便后续的审查和分析。同时如果在热加载的过程中发生了错误或异常情况,我们应该及时记录错误日志,以便后续排查问题。还可以在关键步骤前后记录时间,以评估热加载的性能表现。
通过以上步骤,我们可以在热加载过程中记录关键信息、错误日志和性能指标,以便后续的分析和优化工作。这些记录可以帮助我们更好地了解系统的运行情况,及时发现并解决问题。
在一个实施例中,如图2所示,提出了一种网关服务热加载装置,该装置包括:
接口规范定义模块201,用于定义网关服务的接口规范;其中,接口规范包括DLL文件的目标路径地址和网关服务对应的目标方法;
初始DLL文件获取模块202,用于获取实现目标方法的初始DLL文件并存储至目标路径地址;
监听模块203,用于实时监听目标路径地址下的DLL文件是否存在变动;
热加载模块203,用于若目标路径地址下的DLL文件存在变动,则通过文件流的方式读取目标路径地址下的变动DLL文件;热加载读取到的文件流并创建对应的网关服务实例,将网关服务实例添加至当前的内存实例中。
图3示出了一个实施例中网关服务热加载设备的内部结构图。如图3所示,该网关服务热加载设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该网关服务热加载设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现网关服务热加载方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行网关服务热加载方法。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的网关服务热加载设备的限定,具体的网关服务热加载设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:定义网关服务的接口规范;其中,接口规范包括DLL文件的目标路径地址和网关服务对应的目标方法;获取实现目标方法的初始DLL文件并存储至目标路径地址;实时监听目标路径地址下的DLL文件是否存在变动;若目标路径地址下的DLL文件存在变动,则通过文件流的方式读取目标路径地址下的变动DLL文件;热加载读取到的文件流并创建对应的网关服务实例,将网关服务实例添加至当前的内存实例中。
一种网关服务热加载设备,包括存储器、处理器以及存储在该存储器中并可在该处理器上执行的计算机程序,该处理器执行该计算机程序时实现如下步骤:定义网关服务的接口规范;其中,接口规范包括DLL文件的目标路径地址和网关服务对应的目标方法;获取实现目标方法的初始DLL文件并存储至目标路径地址;实时监听目标路径地址下的DLL文件是否存在变动;若目标路径地址下的DLL文件存在变动,则通过文件流的方式读取目标路径地址下的变动DLL文件;热加载读取到的文件流并创建对应的网关服务实例,将网关服务实例添加至当前的内存实例中。
需要说明的是,上述网关服务热加载方法、装置、设备及计算机可读存储介质属于一个总的发明构思,网关服务热加载方法、装置、设备及计算机可读存储介质实施例中的内容可相互适用。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种网关服务热加载方法,其特征在于,所述方法包括:
定义网关服务的接口规范;其中,接口规范包括DLL文件的目标路径地址和网关服务对应的目标方法;
获取实现所述目标方法的初始DLL文件并存储至所述目标路径地址;
实时监听所述目标路径地址下的DLL文件是否存在变动;
若所述目标路径地址下的DLL文件存在变动,则通过文件流的方式读取所述目标路径地址下的变动DLL文件;
热加载读取到的文件流并创建对应的网关服务实例,将所述网关服务实例添加至当前的内存实例中。
2.根据权利要求1所述的方法,其特征在于,所述实时监听所述目标路径地址下的DLL文件是否存在变动,包括:
创建监听器,将所述目标路径地址作为所述监听器的监听目录,并指定监听的DLL文件参数;
当所述监听目录下的DLL文件参数发生变化时,确定DLL文件存在变动。
3.根据权利要求1所述的方法,其特征在于,监听的DLL变动包括创建、更改及删除中至少一项。
4.根据权利要求1所述的方法,其特征在于,所述通过文件流的方式读取所述目标路径地址下的变动DLL文件,包括:
引入命名空间,通过文件流类的构造函数创建文件流对象,以传入所述目标路径地址和文件打开的预设模式;
使用所述预设模式打开文件流,并通过文件流的方式读取所述目标路径地址下的变动DLL文件。
5.根据权利要求1所述的方法,其特征在于,所述热加载读取到的文件流并创建对应的网关服务实例,包括:
通过Assembly Load文件流的方式热加载文件流中的程序集;
通过加载的程序集,使用反射机制创建对应的网关服务实例。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
实时监控热加载和创建网关服务实例的处理过程;
若监控到处理过程中存在异常情况,则执行回滚操作。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在热加载过程中记录关键信息、错误日志和性能指标。
8.一种网关服务热加载装置,其特征在于,所述装置包括:
接口规范定义模块,用于定义网关服务的接口规范;其中,接口规范包括DLL文件的目标路径地址和网关服务对应的目标方法;
初始DLL文件获取模块,用于获取实现所述目标方法的初始DLL文件并存储至所述目标路径地址;
监听模块,用于实时监听所述目标路径地址下的DLL文件是否存在变动;
热加载模块,用于若所述目标路径地址下的DLL文件存在变动,则通过文件流的方式读取所述目标路径地址下的变动DLL文件;热加载读取到的文件流并创建对应的网关服务实例,将所述网关服务实例添加至当前的内存实例中。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种网关服务热加载设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311665011.7A CN117857573A (zh) | 2023-12-04 | 2023-12-04 | 网关服务热加载方法、装置、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311665011.7A CN117857573A (zh) | 2023-12-04 | 2023-12-04 | 网关服务热加载方法、装置、介质和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857573A true CN117857573A (zh) | 2024-04-09 |
Family
ID=90527942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311665011.7A Pending CN117857573A (zh) | 2023-12-04 | 2023-12-04 | 网关服务热加载方法、装置、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857573A (zh) |
-
2023
- 2023-12-04 CN CN202311665011.7A patent/CN117857573A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768728B (zh) | 运维任务处理方法、装置、计算机设备和存储介质 | |
CN109446068B (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN108427613B (zh) | 异常接口定位方法、装置、计算机设备和存储介质 | |
CN111610989B (zh) | 一种面向离线容器云环境的应用发布/更新方法及系统 | |
CN108614702B (zh) | 字节码优化方法及装置 | |
CN108932295A (zh) | 主数据库切换控制方法、装置、计算机设备和存储介质 | |
US20230036357A1 (en) | Method and apparatus for authority control, computer device and storage medium | |
CN109460252B (zh) | 基于git的配置文件处理方法、装置和计算机设备 | |
CN108965383B (zh) | 文件同步方法、装置、计算机设备和存储介质 | |
CN111290919A (zh) | 日志文件生成方法、装置、计算机设备和存储介质 | |
CN110489421A (zh) | 数据存储方法、装置、计算机可读存储介质和计算机设备 | |
CN109460438A (zh) | 消息数据存储方法、装置、计算机设备和存储介质 | |
CN111124872A (zh) | 基于差异代码分析的分支检测方法、装置及存储介质 | |
CN115242874B (zh) | 应用开发阶段的网络请求代理优化方法、系统、设备及存储介质 | |
CN109086597A (zh) | 密钥访问方法、密钥管理方法、存储介质及计算机设备 | |
CN113835713A (zh) | 源码包下载方法、装置、计算机设备和存储介质 | |
CN114138549A (zh) | 基于kubernetes系统的数据备份和恢复方法 | |
CN113377668A (zh) | 服务接口的自动化测试方法、装置和计算机设备 | |
CN114564385A (zh) | 软件测试方法、装置、计算机设备和存储介质 | |
WO2024125108A1 (zh) | 移动端安全切面的按需开启方法及装置 | |
CN113312205B (zh) | 数据校验方法、装置、存储介质和计算机设备 | |
CN111339054A (zh) | 一种存储系统分级管理的方法、装置、设备及存储介质 | |
CN117857573A (zh) | 网关服务热加载方法、装置、介质和设备 | |
CN114356369A (zh) | Ssd固件一致性加载方法、装置、计算机设备及存储介质 | |
CN114756293A (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 |