CN113312037B - 应用于微服务的数据处理方法、装置、设备和存储介质 - Google Patents
应用于微服务的数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113312037B CN113312037B CN202110663492.2A CN202110663492A CN113312037B CN 113312037 B CN113312037 B CN 113312037B CN 202110663492 A CN202110663492 A CN 202110663492A CN 113312037 B CN113312037 B CN 113312037B
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- framework
- business logic
- logic
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000010365 information processing Effects 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 claims abstract description 32
- 230000004044 response Effects 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005067 remediation Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011269 treatment regimen Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种应用于微服务的信息处理方法、装置、设备和存储介质,应用于电子技术领域,具体应用于云平台技术领域和微服务技术领域。应用于微服务的信息处理方法的具体实现方案为:响应于接收到请求信息,确定与请求信息相匹配的目标微服务;以及执行目标微服务的服务框架所加载的目标微服务的业务逻辑,以对请求信息进行处理,其中,服务框架采用可执行文件格式的代码表示,业务逻辑采用动态链接库文件格式的代码表示。
Description
技术领域
本公开涉及电子技术领域,具体涉及云平台技术领域和微服务技术领域,更具体地涉及一种应用于微服务的数据处理方法、装置、设备和存储介质。
背景技术
随着电子技术的发展,支持客户端应用运行的软件服务***越来越庞大,采用单体框架的软件服务***由于复杂性逐渐变高、部署速度逐渐变慢等原因而存在扩展性差、可靠性低和维护成本高等缺陷。基于此,将单体框架拆分为多个服务的微服务架构的技术得到快速发展。
为了避免多个服务的基础功能的重复开发,可以将该基础功能下沉到基础组件,比如微服务通用框架中。
发明内容
提供了一种将框架与业务逻辑解耦的应用于微服务的信息处理方法、装置、设备和存储介质。
根据本公开的一个方面,提供了一种应用于微服务的信息处理方法,包括:响应于接收到请求信息,确定与请求信息相匹配的目标微服务;以及执行目标微服务的服务框架所加载的目标微服务的业务逻辑,以对请求信息进行处理,其中,服务框架采用可执行文件格式的代码表示,业务逻辑采用动态链接库文件格式的代码表示。
根据本公开的另一个方面,提供了一种应用于微服务的信息处理装置,包括:微服务确定模块,用于响应于接收到请求信息,确定与请求信息相匹配的目标微服务;以及业务执行模块,用于执行目标微服务的服务框架所加载的目标微服务的业务逻辑,以对请求信息进行处理,其中,服务框架采用可执行文件格式的代码表示,业务逻辑采用动态链接库文件格式的代码表示。
根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的应用于微服务的信息处理方法。
根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的应用于微服务的信息处理方法。
根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开提供的应用于微服务的信息处理方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的应用于微服务的信息处理方法和装置的应用场景示意图;
图2是根据本公开实施例的应用于微服务的信息处理方法的流程示意图:
图3是根据本公开实施例的微服务的开发、部署和更新的原理示意图;
图4是根据本公开实施例的微服务架构的结构示意图;
图5是根据本公开实施例的应用于微服务的信息处理装置的结构框图;以及
图6是用来实施本公开实施例的应用于微服务的信息处理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开提供了一种应用于微服务的信息处理方法,该方法包括微服务确定阶段和业务执行阶段。在微服务确定阶段中,响应于接收到请求信息,确定与请求信息相匹配的目标微服务。在业务执行阶段,执行目标微服务的服务框架所加载的目标微服务的业务逻辑,以对请求信息进行处理。其中,服务框架采用可执行文件格式的代码表示,业务逻辑采用动态链接库文件格式的代码表示。
以下将结合图1对本公开提供的方法和装置的应用场景进行描述。
图1是根据本公开实施例的应用于微服务的信息处理方法和装置的应用场景示意图。
如图1所示,该应用场景100包括终端设备110和服务器120。终端设备可以通过网络与服务器120通信连接,网络可以包括有线或无线通信链路。
用户例如可以使用终端设备110通过网络与服务器120交互,以接收或发送消息等。终端设备110可以为具有显示屏且可以安装客户端应用的终端设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。例如,终端设备110例如可以通过网络向服务器120发送请求信息130,以请求音频、视频、图像、文本等多媒体文件,或者请求其他任意的信息。
服务器120例如可以响应于终端设备110发送的请求信息130,对该请求信息130进行处理,得到针对请求信息130的反馈信息140,并将该反馈信息140反馈给终端设备110。该服务器120可以是提供各种服务的服务器,例如对用户利用终端设备所浏览的网站或客户端应用提供支持的后台管理服务器。该服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
根据本公开的实施例,如图1所示,服务器120例如可以通过微服务架构121(Microservice Architecture)来对来自终端设备110的请求信息进行处理。该微服务架构121可以包括多个微服务,每个微服务用于提供一种服务,且每个微服务相对于其他微服务可以独立的部署、运行和升级等。该多个微服务例如可以包括第一微服务1211、第二微服务1212、…、第(n-1)微服务1213和第n微服务1214等。其中,n为大于1的自然数。该多个微服务作为一个整体为终端设备110运行的网站或客户端应用提供服务。
在一实施例中,如图1所示,该应用场景100还可以包括数据库150,服务器120在对请求信息进行处理的过程中,例如可以从数据库150中读取数据,以对读取的数据进行处理,或将读取的数据反馈给终端设备110。
在一实施例中,终端设备中运行的网站或客户端应用和服务器中处理请求信息的微服务架构可以构成软件***架构。该架构包括表示层、业务逻辑层和数据访问层。终端设备可以充当表示层,以负责界面展示和人机交互。微服务架构可以充当业务逻辑层和数据访问层。业务逻辑层负责定义业务逻辑,接收来自表示层的数据请求,在对该数据请求进行逻辑判断后向数据访问层提交请求,并传递数据访问结果。业务逻辑层实际上是一个中间件,起着承上启下的重要作用。数据访问层负责数据读取。
需要说明的是,本公开所提供的应用于微服务的信息处理方法可以由服务器120执行。相应地,本公开所提供的应用于微服务的信息处理装置可以设置于服务器120中。
应该理解,图1中的终端设备、服务器、微服务架构和数据库的数目和类型仅仅是示意性的。根据实现需要,可以具有任意数目和类型的终端设备、服务器、微服务架构和数据库。
以下将结合图2~图4对本公开提供的应用于微服务的信息处理方法进行详细描述。
图2是根据本公开实施例的应用于微服务的信息处理方法的流程图。
如图2所示,该实施例的应用于微服务的信息处理方法200可以包括操作S210~操作S220。
在操作S210,响应于接收到请求信息,确定与请求信息相匹配的目标微服务。
请求信息例如可以为终端设备响应于用户操作向服务器发送的。该请求信息可以用于请求网页页面、音频、视频、文本、图像等多媒体信息。该请求信息中例如可以包括用户想要访问网站的网站统一资源标识符(Uniform Resource Identifier,URI)等信息。
该实施例可以从微服务架构中的多个微服务中,选择与请求信息中的统一资源标识符具有映射关系的微服务,作为与请求信息相匹配的目标微服务。其中,微服务与统一资源标识符之间的映射关系是根据为微服务所设置的业务功能与统一资源标识符所访问功能之间的关联关系而建立的,以通过微服务的运行,使得微服务提供与其业务功能具有关联关系的功能。
可以理解的是,上述确定目标微服务的方法仅作为示例以利于理解本公开,该确定目标微服务的方法与相关技术类似,在此不再详述。
在操作S220,执行目标微服务的服务框架所加载的目标微服务的业务逻辑,以对请求信息进行处理。
目标微服务的服务框架在启动时,可以自动加载目标微服务的业务逻辑。其中,服务框架能够提供多个微服务具有的相同的基础功能。该服务框架例如可以为c/c++语言编写的远程过程调用框架(Remote Procedure Call,RPC),或者可以为Golang语言编写的Beego架构或者Gin架构等。
在该实施例中,服务框架例如可以采用可执行文件(Executable File,EF)格式,服务框架例如可以由c/c++语言代码或Golang代码编译得到的可执行文件中的代码表示。其中,例如可以采用编译器来实现代码的编译转换。该服务框架的原始代码例如可以由静态强类型、编译型语言编写。其中,可执行文件指由操作***进行加载执行的文件。该可执行文件格式可以为二进制文件格式、exe文件格式等,本公开对此不做限定。该由可执行文件格式的代码所表示的服务框架可以加载到内存中,由操作***加载该可执行文件格式的代码而执行。
在服务框架启动并加载业务逻辑后,可以在接收到与该目标微服务相匹配的请求信息时,通过执行业务逻辑来实现对请求信息的处理。其中,为了便于服务框架对业务逻辑的加载和调用,业务逻辑可以采用动态链接库文件格式的代码来表示。例如,业务逻辑可以由动态链接库(Dynamic Link Library,DLL)文件表示。该由动态链接库文件格式的代码所表示的业务逻辑不能直接执行,也不能接收消息,其中业务逻辑例如可以包含能被程序或其他DLL调用来完成一定操作的函数。在一实施例中,该DLL文件只有在应用程序需要时才被软件***架构加载到进程的虚拟空间中,成为调用进程的一部分,此时该DLL文件也只能被该进程的线程访问。
在一实施例中,可执行文件格式包括二进制文件格式,所述动态链接库文件格式包括.so文件格式。例如服务框架例如可以采用与Golang语言提供的Plugin机制类似的方式,来加载动态链接库.so文件。
本公开实施例通过由二进制文件格式的代码表示服务框架,由动态链接库文件格式的代码表示业务逻辑,可以实现服务框架对动态链接库文件的加载,并通过执行该加载的业务逻辑,可以实现对请求信息的处理。相较于相关技术中将业务逻辑的代码和服务框架的代码均转换为二进制文件的技术方案,可以实现服务框架与业务逻辑之间的编译解耦和部署解耦。如此,在需要对服务框架进行升级时,无需对多个微服务分别表示业务逻辑的多个文件进行修改,仅需对服务框架的代码进行一次转换即可,因此可以提高升级效率,节约计算成本。
根据本公开的实施例,为了便于服务框架在运行时调用处理信息的方法,该服务框架可以提供有至少一个调用接口。类似的,服务框架也可以通过调用接口来加载业务逻辑。在加载业务逻辑时,可以确定该至少一个调用接口中与业务逻辑具有映射关系的目标调用接口,并调用该目标调用接口对业务逻辑进行加载。
示例性地,可以将业务逻辑定义为一个方法。在确定具有映射关系的目标调用接口时,可以将业务逻辑的方法名与至少一个调用接口指定的方法名进行比对,确定指定的方法名与业务逻辑的方法名一致的调用接口为目标调用接口。
图3是根据本公开实施例的微服务的开发、部署和更新的原理示意图。
根据本公开的实施例,如图3所示,该实施例300在开发微服务时,可以由第一开发人员310编写微服务中的服务框架代码331,由第二开发人员320编写微服务中的业务逻辑代码341。其中,服务框架代码331和业务逻辑代码341可以由Golang语言、C++语言等静态语言编写。编写服务框架代码331的语言与编写业务逻辑代码341的语言可以为同一种语言,也可以为不同种语言。第一开发人员310与第二开发人员320可以为同一人员,也可以为不同人员。
服务器在接收到服务框架代码331后,可以采用第一编译工具将服务框架代码转换为可执行的二进制码,并存储为二进制文件332。服务器在接收到业务逻辑代码341后,可以采用第二编译工具将业务逻辑代码转换为可以编写动态链接库文件的代码,并存储为动态链接库.so文件342。其中,可以编写动态链接库文件的代码例如可以包括C++代码等,本公开对此不做限定。在得到二进制文件332和动态链接库.so文件342后,服务器可以将该两个文件独立地部署于同一容器350中,部署于容器350中的二进制文件333和动态链接库.so文件343可以彼此独立存储。其中,可以根据编写代码的语言和转换后存储所要求的语言,从相关技术中的编译工具中选择合适的工具作为第一编译工具和第二编译工具,本公开对该第一编译工具和第二编译工具的类型不做限定。
可以理解的是,在得到二进制文件332和动态链接库.so文件342后,还可以直接将该两个文件存储至预定存储空间,而无需部署于容器350中。仅在多个微服务部署于同一台服务器的情况下,将该两个文件部署于容器350中,以此实现与其他微服务的隔离,提高微服务运行的稳定性。
在服务器部署了该两个文件后,可以在微服务上线或测试时启动进程来运行表示服务框架的二进制文件333。该二进制文件333可以自动加载指示业务逻辑的动态链接库.so文件343,以此实现服务框架对业务逻辑的加载。在加载了动态链接库.so文件343后,包括该服务框架和业务逻辑的微服务即做好了接收请求信息,并对请求信息进行处理的准备。如此,在接收到终端设备发送的请求信息时,可响应于该请求信息确定该微服务是否为目标微服务,若是,则执行所加载的业务逻辑。若不是,例如可以丢弃该请求信息。
根据本公开的实施例,在微服务开发之后,第一开发人员310还可以根据实际需求对服务框架进行升级。如此,服务器在接收到升级版本的服务框架的代码后,可以采用前述的第一编译工具将该升级版本的服务框架的代码转换为二进制码,并存储为另一二进制文件,作为升级后服务框架。通过使用该另一二进制文件替换已存储的二进制文件,来实现对服务框架的升级更新。在有多个微服务时,可以采用上述方式对每个微服务中的服务框架进行升级更新。
根据本公开的实施例,在使用升级后服务框架更新微服务已有的服务框架时,可以先确定微服务的运行状态。例如,服务器可以响应于接收到升级版本的服务框架,先确定服务器中部署的多个微服务中每个微服务的运行状态。仅在每个微服务的运行状态为未执行业务逻辑的状态时,采用转换得到的升级后服务框架更新该每个微服务的服务框架。通过该方式,可以避免服务框架的升级更新对处理请求信息进程的影响,提高用户经由终端设备使用客户端应用的体验。
示例性地,可以调用链数据,统计各微服务的指标数据,根据该指标数据来确定微服务是否在处理请求信息。其中,指标数据例如可以包括微服务的并发请求流量等。若并发请求流量较低或为零,则可以确定微服务处于未执行业务逻辑的状态。或者,可以采用Spring Boot工具来对各微服务进行监控,从而获得各微服务的状态。可以理解的是,上述确定微服务状态的方法仅作为示例以利于理解本公开,本公开对此不做限定。
根据本公开的实施例,若确定多个微服务中某个微服务处于未执行业务逻辑的状态,则可以采用转换得到的升级后服务框架来更新该某个微服务的服务框架。具体地,可以先将升级版本的服务框架的代码转换为可执行文件格式的代码,得到升级后服务框架。随后基于该升级后服务框架,采用镜像提升(Image Promotion)方式来更新该某个微服务的服务框架。其中,可以采用前文描述的第一编译工具来将升级版本的服务框架的代码转换为可执行文件格式的代码。在该某个微服务的服务框架和业务逻辑存储至同一容器中,则可以采用该镜像提升方式更新服务框架。其中,镜像提升为容器可信注册表(DockerTrusted Registry,DTR)的特征。可以理解的是,还可以在确定各微服务的状态之前,将升级版本的服务框架的代码转换为可执行文件格式的代码,本公开对得到该升级后服务框架的时机不做限定。
根据本公开的实施例,在微服务开发之后,第二开发人员320还可以根据实际需求对业务逻辑进行升级。如此,服务器在接收到升级版本的业务逻辑的代码后,可以采用前述的第二编译工具将该升级版本的业务逻辑的代码转换为动态链接库文件格式的代码,作为升级后业务逻辑,并用该转换得到的代码替换微服务已有的业务逻辑代码,实现对业务逻辑的升级。其中,微服务例如可以具有唯一标识,提交的升级版本的业务逻辑代码例如可以携带有该唯一标识,以基于该唯一标识从服务器部署的多个微服务中定位到需要升级业务逻辑的微服务。
示例性地,如图3所示,可以采用覆盖式更新的方式来升级业务逻辑。具体地,在接收到针对前述目标微服务的升级版本的业务逻辑的代码时,可以先采用前述第二编译工具将接收到的升级版本的业务逻辑代码转换为动态链接库文件格式的代码,得到升级后业务逻辑。随后采用该升级后业务逻辑覆盖目标微服务的业务逻辑。覆盖之后,通过重新启动服务框架,来实现服务框架对升级后业务逻辑的加载,完成微服务业务逻辑的升级。其中,重新启动服务框架例如可以通过重新启动该目标微服务的进程来实现,本公开对此不做限定。
综上分析,本公开实施例通过以二进制文件格式的代码来表示服务框架,通过以动态链接库文件格式的代码来表示业务逻辑,可以实现服务框架维护和业务逻辑维护的解耦,使得服务框架可以单点上线更新,而无需依赖于业务。相较于相关技术中的服务网格(service mesh)技术,可以将服务框架的全部功能与业务逻辑进行解耦。
根据本公开的实施例,通过将业务逻辑和服务框架存储至容器Docker中,可以使得运行的每个微服务都表现为一个独立的容器。在对微服务进行升级时,很容易配合一些自动化工具来实现“整体升级”。通过该Docker,可以将应用标准化为可管理、可测试、易迁移的镜像/容器,从而为不同技术栈提供整合管理的途径。
根据本公开的实施例,该微服务的服务框架中还可以定义有启停函数。具体为服务框架的代码中具有启停脚本代码。例如,该启停函数例如可以为shell函数,本公开对此不做限定。如此,在启动业务逻辑的执行进程时,也即在微服务上线或测试而启动进程时,基于该启停函数来启动进程,从而实现对该执行进程进行初始化。通过该初始化,例如可以在进程中加载一些环境变量或其他参量。通过该启停函数,服务框架可以指定debug端口、指定配置文件等,或者执行一些私有化操作。
图4是根据本公开实施例的微服务架构的结构示意图。
根据本公开的实施例,如图4所示,与服务网格类似,该实施例中的微服务架构400可以配置有控制面板440,以对多个容器410~430中分别存储的服务框架的配置参数进行调整。从而实现对服务框架的动态修改,在无需重新上线升级服务框架的基础上,实现对服务框架配置参数的更新,并使得更新后的配置参数生效。
其中,服务器中的微服务架构400可以具有n个微服务,每个微服务存储配置于一个容器中。容器410(Docker 1)中存储有服务框架412和业务逻辑a 411,容器420(Docker2)中存储有服务框架422和业务逻辑b 421,容器430(Docker n)中存储有服务框架432和业务逻辑c431。其中,n为大于1的自然数,且该n个微服务中的服务框架可以彼此相同,但业务逻辑彼此不同。可以理解的是,n个微服务中的服务框架可以为基础框架相同,但版本有所区别的框架,这是由于在升级服务框架时,有些微服务中的服务框架还未及时更新引起的。
根据本公开的实施例,各微服务的服务框架中例如还可以定义有针对多个微服务的服务治理(SOA governance)策略。例如,服务框架412中定义有服务治理策略4121、服务框架422中定义有服务治理策略4221、服务框架432中定义有服务治理策略4321。经由该服务治理策略,例如可以对微服务进行注册和发现、掌控微服务间的调用关系和微服务的状态,同时在微服务进行版本更迭的过程中,对微服务间的调用进行控制,对调用业务敏感的微服务的其他微服务进行认证与鉴权等。相应地,在执行服务框架加载的业务逻辑时,可以基于该服务治理策略来执行业务逻辑,以实现对微服务的管理和控制。
示例性地,可以通过前述的控制面板440来对该服务治理策略中的治理配置参数进行调整和配置。在控制面板440响应于开发人员的操作获得治理配置参数后,该服务器可以接收到治理配置参数,并响应于接收到治理配置参数对容器中服务框架定义的服务治理策略进行调整。以此实现对服务治理策略的更新,而无需对整个服务框架进行升级。通过该调整,在执行业务逻辑时,则基于该调整后的服务治理策略来执行业务逻辑。
示例性地,治理配置参数例如可以包括超时次数、超时时间、限流频率等配置参数,以此实现对微服务间的调用进行管理和控制的策略的调整。可以理解的是,上述治理配置参数仅作为示例以利于理解本公开,本公开对此不做限定。
基于本公开提供的应用于微服务的信息处理方法,本公开还提供了一种应用于微服务的信息处理装置。以下将结合图5对该装置进行详细描述。
图5是根据本公开实施例的应用于微服务的信息处理装置的结构框图。
如图5所示,该实施例的应用于微服务的信息处理装置500可以包括微服务确定模块510和业务执行模块520。
微服务确定模块510用于响应于接收到请求信息,确定与请求信息相匹配的目标微服务。在一实施例中,微服务确定模块510可以用于执行前文描述的操作S210,在此不再赘述。
业务执行模块520用于执行目标微服务的服务框架所加载的目标微服务的业务逻辑,以对请求信息进行处理。其中,服务框架采用可执行文件格式的代码表示,业务逻辑采用动态链接库文件格式的代码表示。在一实施例中,业务执行模块520可以用于执行前文描述的操作S220,在此不再赘述。
根据本公开的实施例,服务框架提供有至少一个调用接口。上述应用于微服务的信息处理装置500例如还可以包括业务加载模块,用于对业务逻辑进行加载。该业务加载模块可以包括接口确定子模块和加载子模块。接口确定子模块用于确定至少一个调用接口中与业务逻辑具有映射关系的目标调用接口。加载子模块用于使服务框架调用目标调用接口对业务逻辑进行加载。
根据本公开的实施例,服务框架中定义有针对多个微服务的服务治理策略。上述应用于微服务的信息处理装置500例如还可以包括策略调整模块,用于响应于接收到治理配置参数,对服务框架定义的服务治理策略进行调整。其中,目标微服务的业务逻辑是基于服务治理策略执行的。
根据本公开的实施例,上述应用于微服务的信息处理装置500例如还可以包括状态确定模块和框架更新模块。状态确定模块用于响应于接收到升级版本的服务框架,针对多个微服务中的每个微服务,确定每个微服务的运行状态。框架更新模块用于在每个微服务的运行状态为未执行业务逻辑的状态的情况下,采用升级版本的服务框架更新每个微服务的服务框架。
根据本公开的实施例,每个微服务封装于一个容器中。上述框架更新模块可以包括第一代码转换子模块和更新子模块。第一代码转换子模块用于将升级版本的服务框架的代码转换为可执行文件格式的代码,得到升级后服务框架。更新子模块用于基于升级后服务框架,采用镜像提升方式更新每个微服务的服务框架。
根据本公开的实施例,上述应用于微服务的信息处理装置500例如还可以包括业务更新模块,用于对业务逻辑进行更新。该业务更新模块例如可以包括第二代码转换子模块、业务覆盖子模块和重启子模块。第二代码转换子模块用于响应于接收到针对目标微服务的升级版本的业务逻辑,将升级版本的业务逻辑的代码转换为动态链接库文件格式的代码,得到升级后业务逻辑。业务覆盖子模块用于采用升级后业务逻辑覆盖目标微服务的业务逻辑。重启子模块用于重启服务框架,以加载升级后业务逻辑。
根据本公开的实施例,服务框架中定义有启停函数。上述应用于微服务的信息处理装置500例如还可以包括初始化模块,用于在加载子模块对业务逻辑进行加载之前,基于启停函数启动业务逻辑的执行进程,以对执行进程进行初始化。
根据本公开的实施例,可执行文件格式包括二进制文件格式,动态链接库文件格式包括.so文件格式。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如应用于微服务的信息处理方法。例如,在一些实施例中,应用于微服务的信息处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的应用于微服务的信息处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用于微服务的信息处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual PrivateServer″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (14)
1.一种应用于微服务的信息处理方法,包括:
响应于接收到请求信息,确定与所述请求信息相匹配的目标微服务;以及
执行所述目标微服务的服务框架所加载的所述目标微服务的业务逻辑,以对所述请求信息进行处理,其中,所述服务框架采用可执行文件格式的代码表示,所述业务逻辑采用动态链接库文件格式的代码表示;
响应于接收到升级版本的服务框架,针对多个微服务中的每个微服务,确定所述每个微服务的运行状态,其中,所述每个微服务封装于一个容器中;
在所述每个微服务的运行状态为未执行业务逻辑的状态的情况下,将所述升级版本的服务框架的代码转换为所述可执行文件格式的代码,得到升级后服务框架;以及
基于所述升级后服务框架,采用镜像提升方式更新所述每个微服务的服务框架。
2. 根据权利要求1所述的方法,其中,所述服务框架提供有至少一个调用接口;所述服务框架采用以下方式对所述业务逻辑进行加载:
确定所述至少一个调用接口中与所述业务逻辑具有映射关系的目标调用接口;以及
使所述服务框架调用所述目标调用接口对所述业务逻辑进行加载。
3.根据权利要求1或2所述的方法,其中,所述服务框架中定义有针对多个微服务的服务治理策略;所述方法还包括:
响应于接收到治理配置参数,对所述服务框架定义的服务治理策略进行调整,
其中,所述目标微服务的业务逻辑是基于所述服务治理策略执行的。
4.根据权利要求1所述的方法,还包括通过以下方式对所述业务逻辑进行更新:
响应于接收到针对所述目标微服务的升级版本的业务逻辑,将所述升级版本的业务逻辑的代码转换为所述动态链接库文件格式的代码,得到升级后业务逻辑;
采用所述升级后业务逻辑覆盖所述目标微服务的业务逻辑;以及
重启所述服务框架,以加载所述升级后业务逻辑。
5.根据权利要求2所述的方法,其中,所述服务框架中定义有启停函数;所述方法在对所述业务逻辑进行加载之前还包括:
基于所述启停函数启动所述业务逻辑的执行进程,以对所述执行进程进行初始化。
6.根据权利要求1所述的方法,其中,所述可执行文件格式包括二进制文件格式;所述动态链接库文件格式包括.so文件格式。
7.一种应用于微服务的信息处理装置,包括:
微服务确定模块,用于响应于接收到请求信息,确定与所述请求信息相匹配的目标微服务;
业务执行模块,用于执行所述目标微服务的服务框架所加载的所述目标微服务的业务逻辑,以对所述请求信息进行处理,其中,所述服务框架采用可执行文件格式的代码表示,所述业务逻辑采用动态链接库文件格式的代码表示;
状态确定模块,用于响应于接收到升级版本的服务框架,针对多个微服务中的每个微服务,确定所述每个微服务的运行状态,其中,所述每个微服务封装于一个容器中;
第一代码转换子模块,用于在所述每个微服务的运行状态为未执行业务逻辑的状态的情况下,将所述升级版本的服务框架的代码转换为所述可执行文件格式的代码,得到升级后服务框架;以及
更新子模块,用于基于所述升级后服务框架,采用镜像提升方式更新所述每个微服务的服务框架。
8. 根据权利要求7所述的装置,其中,所述服务框架提供有至少一个调用接口;所述装置还包括业务加载模块,用于对所述业务逻辑进行加载;所述业务加载模块包括:
接口确定子模块,用于确定所述至少一个调用接口中与所述业务逻辑具有映射关系的目标调用接口;以及
加载子模块,用于使所述服务框架调用所述目标调用接口对所述业务逻辑进行加载。
9.根据权利要求7或8所述的装置,其中,所述服务框架中定义有针对多个微服务的服务治理策略;所述装置还包括:
策略调整模块,用于响应于接收到治理配置参数,对所述服务框架定义的服务治理策略进行调整,
其中,所述目标微服务的业务逻辑是基于所述服务治理策略执行的。
10.根据权利要求7所述的装置,还包括业务更新模块,用于对所述业务逻辑进行更新;所述业务更新模块包括:
第二代码转换子模块,用于响应于接收到针对所述目标微服务的升级版本的业务逻辑,将所述升级版本的业务逻辑的代码转换为所述动态链接库文件格式的代码,得到升级后业务逻辑;
业务覆盖子模块,用于采用所述升级后业务逻辑覆盖所述目标微服务的业务逻辑;以及
重启子模块,用于重启所述服务框架,以加载所述升级后业务逻辑。
11.根据权利要求8所述的装置,其中,所述服务框架中定义有启停函数;所述装置还包括:
初始化模块,用于在所述加载子模块对所述业务逻辑进行加载之前,基于所述启停函数启动所述业务逻辑的执行进程,以对所述执行进程进行初始化。
12.根据权利要求7所述的装置,其中,所述可执行文件格式包括二进制文件格式;所述动态链接库文件格式包括.so文件格式。
13. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110663492.2A CN113312037B (zh) | 2021-06-15 | 2021-06-15 | 应用于微服务的数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110663492.2A CN113312037B (zh) | 2021-06-15 | 2021-06-15 | 应用于微服务的数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113312037A CN113312037A (zh) | 2021-08-27 |
CN113312037B true CN113312037B (zh) | 2023-11-24 |
Family
ID=77378999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110663492.2A Active CN113312037B (zh) | 2021-06-15 | 2021-06-15 | 应用于微服务的数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312037B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114139039B (zh) * | 2021-11-30 | 2022-08-09 | 百度在线网络技术(北京)有限公司 | 服务稳定性确定方法、装置、设备以及存储介质 |
CN114201314B (zh) * | 2021-12-10 | 2022-10-04 | 优维科技(深圳)有限公司 | 一种基于契约的实现服务依赖发现和服务访问的路由方法 |
CN114237628B (zh) * | 2022-02-25 | 2022-05-27 | 卓望数码技术(深圳)有限公司 | 微服务编排及调用方法、装置、计算机设备及存储介质 |
CN114416224B (zh) * | 2022-03-25 | 2022-07-12 | 共道网络科技有限公司 | 一种在多微服务环境下调用微服务的方法及装置 |
CN114979263B (zh) * | 2022-03-28 | 2023-09-15 | 慧之安信息技术股份有限公司 | 基于Gin框架的高并发网关SIP代理方法和装置 |
CN114895879B (zh) * | 2022-07-14 | 2022-11-04 | 四川航天信息有限公司 | 管理***设计方案确定方法、装置、设备及存储介质 |
CN115514665B (zh) * | 2022-08-31 | 2023-11-21 | 北京达佳互联信息技术有限公司 | 业务扩展方法、装置、电子设备及存储介质 |
CN115904361B (zh) * | 2022-09-28 | 2023-09-22 | 建信金融科技有限责任公司 | 应用于微服务的数据处理方法、装置、设备和介质 |
WO2024082875A1 (zh) * | 2022-10-17 | 2024-04-25 | 华为云计算技术有限公司 | 一种服务治理方法以及装置 |
CN117873605B (zh) * | 2024-03-12 | 2024-05-24 | 深圳市华磊迅拓科技有限公司 | 设备端加载方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032392A (zh) * | 2019-04-15 | 2019-07-19 | 杭州朗和科技有限公司 | 服务治理方法及装置、存储介质和电子设备 |
CN111078315A (zh) * | 2019-12-12 | 2020-04-28 | 拉扎斯网络科技(上海)有限公司 | 微服务编排、执行方法及***、架构、设备、存储介质 |
CN111767095A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 微服务生成方法、装置、终端设备及存储介质 |
CN112199105A (zh) * | 2020-10-15 | 2021-01-08 | 舟山网脉科技有限公司 | 功能组合式软件开发的方法、***、介质及电子设备 |
CN112799786A (zh) * | 2021-02-02 | 2021-05-14 | 微民保险代理有限公司 | 微服务实例的退出方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070112574A1 (en) * | 2003-08-05 | 2007-05-17 | Greene William S | System and method for use of mobile policy agents and local services, within a geographically distributed service grid, to provide greater security via local intelligence and life-cycle management for RFlD tagged items |
-
2021
- 2021-06-15 CN CN202110663492.2A patent/CN113312037B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032392A (zh) * | 2019-04-15 | 2019-07-19 | 杭州朗和科技有限公司 | 服务治理方法及装置、存储介质和电子设备 |
CN111078315A (zh) * | 2019-12-12 | 2020-04-28 | 拉扎斯网络科技(上海)有限公司 | 微服务编排、执行方法及***、架构、设备、存储介质 |
CN111767095A (zh) * | 2020-06-30 | 2020-10-13 | 平安国际智慧城市科技股份有限公司 | 微服务生成方法、装置、终端设备及存储介质 |
CN112199105A (zh) * | 2020-10-15 | 2021-01-08 | 舟山网脉科技有限公司 | 功能组合式软件开发的方法、***、介质及电子设备 |
CN112799786A (zh) * | 2021-02-02 | 2021-05-14 | 微民保险代理有限公司 | 微服务实例的退出方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113312037A (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113312037B (zh) | 应用于微服务的数据处理方法、装置、设备和存储介质 | |
US10162624B1 (en) | Web shell for dynamically generated cross-platform applications | |
US11144711B2 (en) | Webpage rendering method, device, electronic apparatus and storage medium | |
US11816492B2 (en) | Third party integration of plugins and widgets | |
US11042387B2 (en) | Deploying cross-platform applications on mobile devices with native and web components | |
CN115291946A (zh) | 鸿蒙***移植方法、装置、电子设备及可读介质 | |
CN112154417B (zh) | 经由仿真网络通信信道在应用的单机版本和基于Web的版本之间共享代码库 | |
CN112948018B (zh) | 用于小程序的动态库加载方法、装置、设备及介质 | |
CN113626095A (zh) | 配置中心的切换方法、切换***、电子设备及存储介质 | |
CN110599112B (zh) | 一种网络页面开发、维护方法和装置 | |
CN109408057B (zh) | 自动生成代码的方法、装置、介质和计算设备 | |
US10579373B2 (en) | Seamless extension porting | |
EP3872630A2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN114741294A (zh) | 一种页面的调试方法、装置、设备及存储介质 | |
CN114510334A (zh) | 类实例的调用方法、装置、电子设备及自动驾驶车辆 | |
CN114026540A (zh) | 用于支持和协商跨多个产品的多个api版本的***和方法 | |
US11588654B2 (en) | Method and apparatus for operating blockchain system, device and storage medium | |
CN113805858B (zh) | 持续部署脚本语言开发的软件的方法和装置 | |
US20240143340A1 (en) | Hybrid multi-tenant framework for reconfiguring software components | |
CN114095758B (zh) | 云图像截取方法、相关装置 | |
CN114676034B (zh) | 一种测试方法、装置、及计算机设备 | |
KR102337961B1 (ko) | 모노리틱 아키텍처와 마이크로서비스 아키텍처를 모두 지원하는 개발 프레임워크 제공 시스템, 이를 이용한 애플리케이션 개발 방법 및 이를 위한 컴퓨터 프로그램 | |
US20230110520A1 (en) | Ui service package generation and registration method and apparatus, and ui service loading method and apparatus | |
CN117251250A (zh) | 基于云原生平台的容器管理方法及相关设备 | |
CN114676034A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |