CN108664343B - 一种微服务的有状态调用方法及装置 - Google Patents
一种微服务的有状态调用方法及装置 Download PDFInfo
- Publication number
- CN108664343B CN108664343B CN201810437412.XA CN201810437412A CN108664343B CN 108664343 B CN108664343 B CN 108664343B CN 201810437412 A CN201810437412 A CN 201810437412A CN 108664343 B CN108664343 B CN 108664343B
- Authority
- CN
- China
- Prior art keywords
- request
- server
- response
- client
- stateful
- 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
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种微服务的有状态调用方法及装置,包括:接收客户端的有状态调用请求;如果所述有状态调用请求为首次,则在本机响应并记录客户端请求和响应服务器的映射时间;如果所述有状态调用请求为非首次,则判定此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务并更新客户端请求和响应服务器的映射时间。该方法不仅能够找到响应此请求的服务器通过REST接口转发调用,服务端屏蔽了有状态请求和无状态请求对客户端的差异,还能够实现序列化落地到磁盘后再复用,实行转发策略通常也能做到有状态请求被始终转发到同一台机器,实现了有效调用的高效有序。
Description
技术领域
本发明涉及大数据领域,具体的说,是涉及一种微服务的有状态调用方法及装置。
背景技术
随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,导致项目代码规模越来越庞大和难以维护。行业各应用逐渐采用去中心化的微服务来根据业务功能进行拆解,将业务系统组件化和服务化,以降解开发的复杂度和系统的耦合度,然后在通过各微服务之间完成交互和集成。这样虽然便利了系统的开发同时也带来了一些问题。
首先,微服务的调用都是无状态的和原子性,以此保证业务数据的正确性和一致性。但在实际的系统开发中部分业务逻辑需要有服务的有状态调用,并且此状态难以序列化落地到磁盘后再复用,只能维护在服务器内存中。
此外,微服务引入了分布式的特性,多台服务器同时提供服务,保证在部分服务器宕机的情况下仍能提供服务。客户端请求会按照一定的策略被自动转发到可用的服务器执行。通常为达到服务的负载均衡,转发策略通常为随机或哈希等方法实现,不能做到有状态请求被始终转发到同一台机器。
因此,亟需一种微服务的有状态调用方法及装置,能够实时。
发明内容
鉴于现有技术中的上述缺陷或不足,本发明的第一目的是提供一种微服务的有状态调用方法,该方法不仅能够找到响应此请求的服务器通过REST接口转发调用,服务端屏蔽了有状态请求和无状态请求对客户端的差异,还能够实现序列化落地到磁盘后再复用,实行转发策略通常也能做到有状态请求被始终转发到同一台机器,实现了有效调用的高效有序。
本发明的第二目的是提供一种微服务的有状态调用装置,此装置能够实现上述微服务的有效调用方法。
为实现上述目的,第一方面,本发明提供一种微服务的有状态调用方法,包括:
接收客户端的有状态调用请求;
判断所述有状态调用请求是否为首次,如果为首次,则在本机响应并记录客户端请求和响应服务器的映射时间;
如果为非首次,则判定此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务并更新客户端请求和响应服务器的映射时间
作为一种优选的方案,所述方法还包括如果本机或者上一次响应的服务器宕机,则在本机响应并更新客户端请求和响应服务器的映射时间。
作为一种优选的方案,所述客户端请求和响应服务器的映射时间记录至HBASE数据库中。
作为一种优选的方案,所述本机响应方法具体包括:
本机的REST接口调用本机的RPC接口并将数据返回至客户端。
作为一种优选的方案,所述此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务具体包括:
此请求上一次响应的服务器调用本机的RPC接口进行转发请求的服务端再将数据返回给客户端。
第二方面,本发明提供了一种微服务的有状态调用装置,包括:
接收单元,用于接收客户端的有状态调用请求;
判断单元,用于判断所述有状态调用请求是否为首次,如果是,则在本机响应并记录客户端请求和响应服务器的映射时间;如果否,则判定此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务并更新客户端请求和响应服务器的映射时间。
作为一种优选的方案,所述装置还包括确定单元,用于根据本机或者上一次响应的服务器宕机状态,确定在本机响应并更新客户端请求和响应服务器的映射时间。
作为一种优选的方案,所述客户端请求和响应服务器的映射时间记录至HBASE数据库中。
第三方面,提供一种受控终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得终端设备执行上述的终端设备的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
与现有技术相比,本发明的有益效果为:
1)本发明有状态的RCP接口接受客户端请求,找到响应此请求的服务器通过REST接口转发调用,服务端屏蔽了有状态请求和无状态请求对客户端的差异。
2)本发明的有服务的有状态调用,能够实现序列化落地到磁盘后再复用,实行转发策略通常也能做到有状态请求被始终转发到同一台机器。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请一个实施例的方法的示意性流程图。
图2是本申请另一个实施例的方法的示意性流程图。
图3是本申请一个实施例的装置的示意性框图。
图4为本发明实施例提供的一种受控终端的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1是本申请一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种微服务的有状态调用的装置。
如图1所示,该方法100包括:
步骤110,接收客户端的有状态调用请求;
步骤120,判断所述有状态调用请求是否为首次,如果为首次,则在本机响应并记录客户端请求和响应服务器的映射时间;
步骤130,如果为非首次,则判定此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务并更新客户端请求和响应服务器的映射时间。
如图2所示,在本实施例中微服务架构中包含了两种角色:微服务调用方(图2中ZK)和微服务被调用方,其中微服务被调用方又称微服务提供方(图2中PROVIDER)。在微服务架构中的各个微服务既可以是微服务调用方,也可以是微服务被调用方。示例性的,在某个微服务架构中包含微服务A、B和C,其中,各个微服务的调用关系微服务A->微服务B->微服务C,则,在微服务A->微服务B的调用关系中,微服务A为微服务调用方,微服务B为微服务被调用方,而在微服务B->微服务C的调用关系中,微服务B为微服务调用方,微服务C为微服务被调用方。微服务调用请求中包含微服务调用方需要调用微服务架构中哪个微服务作为微服务被调用方。
具体调用方法为:
RCP接口接受有状态首次请求,在本机响应并记录客户端请求和响应服务器的映射到HBASE数据库中,HBASE数据库记录TTL映射时间;
RCP接口接受有状态首次请求,判定此请求上一次响应的服务器则进行转发,调用对应的服务器的REST服务接口,更新HBASE中更新客户端请求和响应服务器的映射时间。
所述本机响应方法具体为本机的REST接口调用本机的RPC接口并将数据返回至客户端。
所述上一次响应的服务器进行转发,调用对应的服务器的REST服务具体为此请求上一次响应的服务器调用本机的RPC接口进行转发请求的服务端再将数据返回给客户端。
如果是本机或者上一次响应的服务器宕机则在本机响应并更新HBASE中映射记录时间
图3示出了本申请一个实施例的装置的示意性框图。
如图3所示,该装置300包括:
接收单元310,所述接收单元用于接收客户端的有状态调用请求;
判断单元320,所述判断单元用于判断所述有状态调用请求是否为首次,如果是,则在本机响应并记录客户端请求和响应服务器的映射时间;如果否,则判定此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务并更新客户端请求和响应服务器的映射时间。
作为一种优选的方案,所述装置还包括确定单元330,用于根据本机或者上一次响应的服务器宕机状态,确定在本机响应并更新客户端请求和响应服务器的映射时间。
图4为本发明实施例提供的一种受控终端400的结构示意图,该受控终端400可以用于执行本申请实施例提供的微服务有效调用的方法。
其中,该受控终端400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本申请的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。
处理器410为存储设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器410可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本申请实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元430,用于建立通信信道,从而使所述存储设备可以与其它设备进行通信。接收其他设备发送的用户数据或者向其他设备发送用户数据。
此外,需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种微服务的有状态调用方法,其特征在于,所述方法用于微服务架构,所述微服务架构中包括至少两个微服务,所述微服务作为微服务调用方或提供方进行互相调用,所述方法包括:
其中一个微服务接收客户端的有状态调用请求,所述有状态调请求用于微服务调用方调用作为微服务提供方的微服务;
所述微服务判断所述有状态调用请求是否为首次,如果为首次,则在本机响应并记录客户端请求和响应服务器的映射时间;
如果为非首次,则判定此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务并更新客户端请求和响应服务器的映射时间。
2.根据权利要求1所述的一种微服务的有状态调用方法,其特征在于,所述方法还包括如果本机或者上一次响应的服务器宕机,则在本机响应并更新客户端请求和响应服务器的映射时间。
3.根据权利要求1所述的一种微服务的有状态调用方法,其特征在于,所述客户端请求和响应服务器的映射时间记录至HBASE数据库中。
4.根据权利要求1所述的一种微服务的有状态调用方法,其特征在于,所述本机响应方法具体包括:本机的REST接口调用本机的RPC接口并将数据返回至客户端。
5.根据权利要求1所述的一种微服务的有状态调用方法,其特征在于,所述此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务具体包括:
此请求上一次响应的服务器调用本机的RPC接口进行转发请求的服务端再将数据返回给客户端。
6.一种用于如权利要求1-5任一项所述的微服务的有状态调用方法的装置,其特征在于,包括:
接收单元,用于接收客户端的有状态调用请求,所述有状态调请求用于微服务调用方调用作为微服务提供方的微服务;
判断单元,用于判断所述有状态调用请求是否为首次,如果是,则在本机响应并记录客户端请求和响应服务器的映射时间;如果否,
则判定此请求上一次响应的服务器进行转发,调用对应的服务器的REST服务并更新客户端请求和响应服务器的映射时间。
7.根据权利要求6所述的一种微服务的有状态调用装置,其特征在于,所述装置还包括确定单元,用于根据本机或者上一次响应的服务器宕机状态,确定在本机响应并更新客户端请求和响应服务器的映射时间。
8.根据权利要求6所述的一种微服务的有状态调用装置,其特征在于,所述客户端请求和响应服务器的映射时间记录至HBASE数据库中。
9.一种受控终端,其特征在于,包括处理器:用于存储处理器的执行指令的存储器;其中,所述处理器被配置为执行权利要求1-5任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437412.XA CN108664343B (zh) | 2018-05-09 | 2018-05-09 | 一种微服务的有状态调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437412.XA CN108664343B (zh) | 2018-05-09 | 2018-05-09 | 一种微服务的有状态调用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108664343A CN108664343A (zh) | 2018-10-16 |
CN108664343B true CN108664343B (zh) | 2022-08-23 |
Family
ID=63778797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810437412.XA Active CN108664343B (zh) | 2018-05-09 | 2018-05-09 | 一种微服务的有状态调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108664343B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109584015A (zh) * | 2018-12-03 | 2019-04-05 | 广东鸭梨科技集团股份有限公司 | 一种零售业务及大数据系统 |
CN109587246A (zh) * | 2018-12-06 | 2019-04-05 | 国云科技股份有限公司 | 一种集成多种通讯协议自由组合的微服务框架的实现方法 |
CN111176761B (zh) * | 2019-12-23 | 2023-07-18 | 中国联合网络通信集团有限公司 | 微服务调用方法和装置 |
CN116016091A (zh) * | 2021-10-20 | 2023-04-25 | 中国移动通信有限公司研究院 | 消息处理方法、装置及系统 |
CN114661447A (zh) * | 2022-04-25 | 2022-06-24 | 中国工商银行股份有限公司 | 应用服务调用的链路管理方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457869A (zh) * | 2013-08-28 | 2013-12-18 | 北京星网锐捷网络技术有限公司 | 会话保持方法和装置 |
WO2016126690A1 (en) * | 2015-02-06 | 2016-08-11 | Anonos Inc. | Systems and methods for contextualized data protection |
CN106412034A (zh) * | 2016-09-14 | 2017-02-15 | 北京百度网讯科技有限公司 | 业务处理方法及装置 |
CN107426204A (zh) * | 2017-07-15 | 2017-12-01 | 深圳市华琥技术有限公司 | 网络业务处理方法和服务器 |
CN107483538A (zh) * | 2017-07-06 | 2017-12-15 | 聚好看科技股份有限公司 | 一种在微服务集群的节点上处理访问请求包的方法和装置 |
CN107682397A (zh) * | 2017-08-28 | 2018-02-09 | 平安科技(深圳)有限公司 | 客户资源获取方法、装置、终端设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667936A (zh) * | 2008-09-04 | 2010-03-10 | 中国移动通信集团公司 | 接入会话控制服务器的故障处理方法、设备及系统 |
US8166200B2 (en) * | 2009-03-30 | 2012-04-24 | Microsoft Corporation | Smart routing |
CN101795222B (zh) * | 2009-11-13 | 2012-05-23 | 深圳市科陆电子科技股份有限公司 | 多级转发服务系统及方法 |
CN102968310A (zh) * | 2012-12-05 | 2013-03-13 | 武汉烽火普天信息技术有限公司 | 一种一体化高性能应用软件架构及构建方法 |
CN103209223B (zh) * | 2013-04-27 | 2016-08-10 | 中国农业银行股份有限公司 | 分布式应用会话信息共享方法、系统和应用服务器 |
US10015077B2 (en) * | 2015-05-22 | 2018-07-03 | Microsoft Technology Licensing, Llc | Forwarding current request based on, at least in part, previous request(s) |
CN106487596B (zh) * | 2016-10-26 | 2019-12-13 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
CN107733995A (zh) * | 2017-09-21 | 2018-02-23 | 北京信安世纪科技股份有限公司 | 一种会话保持方法、装置和电子设备 |
CN107733726B (zh) * | 2017-11-29 | 2021-07-06 | 新华三云计算技术有限公司 | 一种服务请求的处理方法及装置 |
-
2018
- 2018-05-09 CN CN201810437412.XA patent/CN108664343B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457869A (zh) * | 2013-08-28 | 2013-12-18 | 北京星网锐捷网络技术有限公司 | 会话保持方法和装置 |
WO2016126690A1 (en) * | 2015-02-06 | 2016-08-11 | Anonos Inc. | Systems and methods for contextualized data protection |
CN106412034A (zh) * | 2016-09-14 | 2017-02-15 | 北京百度网讯科技有限公司 | 业务处理方法及装置 |
CN107483538A (zh) * | 2017-07-06 | 2017-12-15 | 聚好看科技股份有限公司 | 一种在微服务集群的节点上处理访问请求包的方法和装置 |
CN107426204A (zh) * | 2017-07-15 | 2017-12-01 | 深圳市华琥技术有限公司 | 网络业务处理方法和服务器 |
CN107682397A (zh) * | 2017-08-28 | 2018-02-09 | 平安科技(深圳)有限公司 | 客户资源获取方法、装置、终端设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
A scalable routing mechanism for stateful microservices;Nam H. Do等;《2017 20th Conference on Innovations in Clouds, Internet and Networks (ICIN)》;IEEE;20170417;第72-78页 * |
一种分布式服务治理框架的设计与实现;张羽;《中国优秀硕士学位论文全文数据库 信息科技辑》;中国学术期刊(光盘版)电子杂志社;20170115(第01期);I138-312 * |
Also Published As
Publication number | Publication date |
---|---|
CN108664343A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
CN109787830B (zh) | 灰度发布控制方法、装置、系统、电子设备及存储介质 | |
CN109309693B (zh) | 基于docker的多服务系统、部署方法及装置、设备及存储介质 | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
CN108255708B (zh) | 测试环境中访问生产文件的方法、装置、存储介质及设备 | |
CN114189525B (zh) | 服务请求方法、装置和电子设备 | |
CN110442502B (zh) | 一种埋点的方法、装置、设备及存储介质 | |
CN109189494B (zh) | 配置灰度发布方法、装置、设备及计算机可读存储介质 | |
CN109639818B (zh) | 一种云环境下的服务发现方法、装置、服务器和存储介质 | |
CN111143023B (zh) | 一种资源变更的方法及装置、设备、存储介质 | |
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
CN110049090B (zh) | 配置微服务架构中的自适应断路器链的方法、系统 | |
US20240012632A1 (en) | Coordinating updates to an agent platform appliance in which agents of cloud services are deployed | |
US11531526B1 (en) | Creating portable serverless applications | |
US20200310828A1 (en) | Method, function manager and arrangement for handling function calls | |
CN112099965B (zh) | 原生应用调用js的方法、装置、电子设备及存储介质 | |
US11494184B1 (en) | Creation of transportability container files for serverless applications | |
CN117273628A (zh) | 基于流程自动化的业务处理系统、方法、装置和介质 | |
CN115390939B (zh) | 业务处理方法和系统 | |
CN116737662A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN109388770B (zh) | Web页面生成方法及装置 | |
CN105338058A (zh) | 一种应用更新的方法及装置 | |
US11513833B1 (en) | Event listener interface for container-based execution of serverless functions | |
CN115170152A (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 |