CN112905364A - 微服务的调用方法与电子设备 - Google Patents

微服务的调用方法与电子设备 Download PDF

Info

Publication number
CN112905364A
CN112905364A CN202110349890.7A CN202110349890A CN112905364A CN 112905364 A CN112905364 A CN 112905364A CN 202110349890 A CN202110349890 A CN 202110349890A CN 112905364 A CN112905364 A CN 112905364A
Authority
CN
China
Prior art keywords
service
micro
instance
block chain
microservice
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
Application number
CN202110349890.7A
Other languages
English (en)
Inventor
李丰
查燕平
张伟
徐金娜
王巍
盛博文
张雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Duxiaoman Youyang Technology Co ltd
Original Assignee
Chongqing Duxiaoman Youyang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Duxiaoman Youyang Technology Co ltd filed Critical Chongqing Duxiaoman Youyang Technology Co ltd
Priority to CN202110349890.7A priority Critical patent/CN112905364A/zh
Publication of CN112905364A publication Critical patent/CN112905364A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供一种微服务的调用方法与电子设备,第一微服务实例需要调用第二微服务时,从与第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点,并向目标区块链节点发送服务发现请求,该服务发现请求用于发现第二微服务。目标区块链节点响应于服务发现请求,向第一微服务实例发送第二微服务的目标服务实例的参数信息,第一微服务实例根据目标服务实例的参数信息,调用第二微服务。即本申请通过将微服务的参数信息注册至区块链网络中,去除中心化问题,当区块链网络中的一个区块链节点故障时,可以从区块链网络中的其他区块链节点处获得该微服务的参数信息,实现微服务的调用,进而提高了微服务的调用可靠性。

Description

微服务的调用方法与电子设备
技术领域
本申请实施例涉及区块链技术领域,尤其涉及一种微服务的调用方法与电子设备。
背景技术
目前的微服务中,多个微服务之间可以互相调用。具体是,一个微服务包括多个实例,每个实例包括一个网关中间件。若服务A提供对外服务,服务A会通过每个实例的网关中间件,通过网络调用将对应的实例信息及资源信息上报到注册中心及治理平台。若服务B调用服务A,服务B的每个实例的网关中间件首先需要通过网络调用,从注册中心拉取服务A的实例信息用于最终调用,以及从治理平台拉取服务A的资源信息(实例cpu占用、内存占用、IO吞吐、响应时间等)用于智能路由。
当前注册中心及治理平台服务端采用的是高中心化或者弱中心化的方案设计,例如Zookeeper和Eureka。在实际使用过程中发现,当注册中心和/或治理平台发生故障时,使得微服务之间无法调度。
发明内容
本申请实施例提供一种微服务的调用方法与电子设备,用于提高微服务之间的调度可靠性。
第一方面,本申请实施例提供一种微服务的调用方法,一个微服务包括多个微服务实例,每个所述微服务实例与区块链网络中的至少一个区块链节点连接,所述方法应用于第一微服务的一个第一微服务实例,所述方法包括:
从与所述第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点;
向所述目标区块链节点发送服务发现请求,所述服务发现请求用于发现第二微服务;
从所述目标区块链节点处获得所述第二微服务的目标服务实例的参数信息;
根据所述目标服务实例的参数信息,调用所述第二微服务。
在第一方面的一种可能的实现方式中,所述第一微服务实例连接的至少一个第一区块链节点包括一个主区块链节点和至少一个备选区块链节点,所述从与所述第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点,包括:
在检测到所述第一微服务实例与所述主区块链节点保持连接时,则将所述主区块节点作为所述目标区块链节点;
在检测待所述第一微服务实例与所述主区块链节点断开连接时,从所述至少一个备选区块链节点中确定一个与所述第一微服务实例保持连接的备选区块链节点作为所述目标区块链节点。
在第一方面的一种可能的实现方式中,所述方法还包括:
向所述目标区块链发送所述第一微服务实例的参数信息。
在第一方面的一种可能的实现方式中,在将所述第一微服务实例的参数信息发送给所述目标区块链节点后,所述方法还包括:
根据预设的时间周期,向所述目标区块链节点发送心跳信息。
第二方面,本申请实施例提供一种微服务的调用方法,一个微服务包括多个微服务实例,每个所述微服务实例与区块链网络中的至少一个区块链节点连接,所述方法应用于目标区块链节点,包括:
接收来自第一微服务实例的服务发现请求,所述服务发现请求用于发现第二微服务;
响应于所述服务发现请求,向所述第一微服务实例发送所述第二微服务的目标服务实例的参数信息。
在第二方面的一种可能的实现方式中,所述目标区域连接节点上保存有智能合约,所述智能合约包括如下至少一个功能:服务注册、服务发现、服务心跳、服务屏蔽、复杂资源上报、服务资源获取、服务智能路由、权限配置和权限校验。
在第二方面的一种可能的实现方式中,所述响应于所述服务发现请求,向所述第一微服务实例发送所述第二微服务的目标服务实例的参数信息,包括:
响应于所述服务发现请求,调用所述智能合约中的权限校验功能,在校验所述第一微服务实例具有服务发现权限时,根据所述智能合约功能中的服务智能路由功能,获得所述第二微服务的目标服务实例的参数信息;
将所述第二微服务的目标服务实例的参数信息发送给所述第一微服务实例。
在第二方面的一种可能的实现方式中,所述方法还包括:
接收来自所述第一微服务实例的参数信息;
对所述第一微服务实例的参数信息进行处理;
将处理后的所述第一微服务实例的参数信息发送至所述区块链网络中。
在第二方面的一种可能的实现方式中,所述参数信息包括注册信息,所述智能合约包括服务注册功能,所述对所述第一微服务实例的参数信息进行处理,包括:
调用所述智能合约中的权限校验功能,校验所述第一微服务实例是否具有服务注册权限;
在校验所述第一微服务实例具有服务注册权限时,调用所述智能合约中的服务注册功能,对所述第一微服务实例的注册信息进行格式化保存。
在第二方面的一种可能的实现方式中,所述参数信息包括资源信息,所述对所述第一微服务实例的参数信息进行处理,包括:
从所述区块链网络中获得所述第一微服务的其他微服务实例的资源信息,所述其他微服务实例为所述第一微服务的各微服务实例中除所述第一微服务实例外的其他微服务实例;
根据所述第一微服务的各微服务实例的资源信息,对所述第一微服务的各微服务实例进行排序。
在第二方面的一种可能的实现方式中,在接收到所述第一微服务实例的参数信息后,所述方法还包括:
接收所述第一微服务实例发送心跳信息。
在第二方面的一种可能的实现方式中,所述方法还包括:
在预设时间内未接收到所述第一微服务实例发送的心跳信息时,删除所述第一微服务实例的参数信息。
在第二方面的一种可能的实现方式中,所述方法还包括:
向所述区块链网络中发送所述第一微服务实例下线的通知信息,使得所述区块链网络中其他区块链节点删除所述第一微服务实例的参数信息。
在第二方面的一种可能的实现方式中,所述方法还包括:
从所述区块链网络中获取第三微服务的微服务实例的屏蔽信息,所述屏蔽信息是服务信息展示平台发送的,所述服务信息平台与所述区块链网络中的至少一个区块链节点连接,用于获取并展示所述区块链网络中各微服务的注册信息和资源信息;
根据所述第三微服务的微服务实例的屏蔽信息,删除所述第三微服务的微服务实例的参数信息。
第三方面,本申请实施例提供一种微服务的调用装置,应用于第一微服务实例,包括:
处理单元,用于从与所述第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点;
发送单元,用于向所述目标区块链节点发送服务发现请求,所述服务发现请求用于发现第二微服务;
接收单元,用于从所述目标区块链节点处获得所述第二微服务的目标服务实例的参数信息;
处理单元,还用于根据所述目标服务实例的参数信息,调用所述第二微服务。
在一些实施例中,所述第一微服务实例连接的至少一个第一区块链节点包括一个主区块链节点和至少一个备选区块链节点,上述处理单元,具体用于在检测到所述第一微服务实例与所述主区块链节点保持连接时,则将所述主区块节点作为所述目标区块链节点;在检测待所述第一微服务实例与所述主区块链节点断开连接时,从所述至少一个备选区块链节点中确定一个与所述第一微服务实例保持连接的备选区块链节点作为所述目标区块链节点。
在一些实施例中,发送单元,还用于向所述目标区块链发送所述第一微服务实例的参数信息。
在一些实施例中,发送单元,还用于在将所述第一微服务实例的参数信息发送给所述目标区块链节点后,根据预设的时间周期,向所述目标区块链节点发送心跳信息。
第四方面,本申请实施例提供一种微服务的调用装置,应用于目标区块链节点,包括:
接收单元,用于接收来自第一微服务实例的服务发现请求,所述服务发现请求用于发现第二微服务;
发送单元,用于响应于所述服务发现请求,向所述第一微服务实例发送所述第二微服务的目标服务实例的参数信息。
在一些实施例中,所述目标区域连接节点上保存有智能合约,所述智能合约包括如下至少一个功能:服务注册、服务发现、服务心跳、服务屏蔽、复杂资源上报、服务资源获取、服务智能路由、权限配置和权限校验。
在一些实施例中,该装置还包括处理单元,处理单元用于响应于所述服务发现请求,调用所述智能合约中的权限校验功能,在校验所述第一微服务实例具有服务发现权限时,根据所述智能合约功能中的服务智能路由功能,获得所述第二微服务的目标服务实例的参数信息;发送单元,具体用于将所述第二微服务的目标服务实例的参数信息发送给所述第一微服务实例。
在一些实施例中,接收单元,还用于接收来自所述第一微服务实例的参数信息;处理单元,还用于对所述第一微服务实例的参数信息进行处理;发送单元,还用于将处理后的所述第一微服务实例的参数信息发送至所述区块链网络中。
在一些实施例中,所述参数信息包括注册信息,所述智能合约包括服务注册功能,处理单元,具体用于调用所述智能合约中的权限校验功能,校验所述第一微服务实例是否具有服务注册权限;在校验所述第一微服务实例具有服务注册权限时,调用所述智能合约中的服务注册功能,对所述第一微服务实例的注册信息进行格式化保存。
在一些实施例中,所述参数信息包括资源信息,处理单元,具体用于从所述区块链网络中获得所述第一微服务的其他微服务实例的资源信息,所述其他微服务实例为所述第一微服务的各微服务实例中除所述第一微服务实例外的其他微服务实例;根据所述第一微服务的各微服务实例的资源信息,对所述第一微服务的各微服务实例进行排序。
在一些实施例中,接收单元还用于在接收到所述第一微服务实例的参数信息后,接收所述第一微服务实例发送心跳信息。
在一些实施例中,处理单元还用于在预设时间内未接收到所述第一微服务实例发送的心跳信息时,删除所述第一微服务实例的参数信息。
在一些实施例中,发送单元,还用于向所述区块链网络中发送所述第一微服务实例下线的通知信息,使得所述区块链网络中其他区块链节点删除所述第一微服务实例的参数信息。
在一些实施例中,接收单元还用于从所述区块链网络中获取第三微服务的微服务实例的屏蔽信息,所述屏蔽信息是服务信息展示平台发送的,所述服务信息平台与所述区块链网络中的至少一个区块链节点连接,用于获取并展示所述区块链网络中各微服务的注册信息和资源信息;处理单元还用于根据所述第三微服务的微服务实例的屏蔽信息,删除所述第三微服务的微服务实例的参数信息。
第五方面,本申请实施例还提供一种第一微服务实例,所述第一微服务实例包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,以实现上述第一方面任一项所述的方法。
第六方面,本申请实施例还提供一种目标区块链节点,所述目标区块链节点包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,以实现上述第二方面任一项所述的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如第一方面或第二方面任一项所述的方法。
第八方面,本申请实施例提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得计算机实施第一方面或第二方面任一项所述的方法。
本申请实施例提供的微服务的调用方法与电子设备,第一微服务实例需要调用第二微服务时,从与第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点,并向目标区块链节点发送服务发现请求,该服务发现请求用于发现第二微服务。目标区块链节点响应于服务发现请求,向第一微服务实例发送第二微服务的目标服务实例的参数信息,第一微服务实例根据目标服务实例的参数信息,调用第二微服务。即本申请通过将微服务的参数信息注册至区块链网络中,去除中心化问题,当区块链网络中的一个区块链节点故障时,可以从区块链网络中的其他区块链节点处获得该微服务的参数信息,实现微服务的调用,进而提高了微服务的调用可靠性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例涉及的系统结构示意图;
图2为本申请实施例提供的微服务的调用方法的一种流程示意图;
图3为本申请实施例提供的微服务的调用方法的另一种流程示意图;
图4为本申请实施例提供的微服务的调用装置的一种结构示意图;
图5为本申请实施例提供的微服务的调用装置的一种结构示意图;
图6为本申请实施例涉及的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应理解,在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
服务网关:在微服务中,为了解决业务中微服务间调用方式不统一、微服务间流量调度困难、无法智能调优系统间访问、无统一注册服务和服务治理能力而提出的解决方案。网关提供了统一的远程过程调用协议(Remote Procedure Call,RPC)调用方式、统一的服务治理平台、策略动态更新等能力的调用方案,简称网关。
服务网关中间件:通过嵌入式方式集成在服务的服务端中,实现服务注册、服务发现、服务心跳、智能路由、服务资源信息上报等能力,简称网关中间件。
实例:微服务中,微服务部署的宿主机,一个微服务包含多个实例,是提供微服务的最小单位。
注册中心:为服务网关提供服务注册、服务发现、服务心跳等能力。
治理平台:提供服务资源信息上报、服务资源信息拉取等能力。
区块链技术是一种分布式的数据库,具有去中心化、不可篡改和可扩展等特点。在区块链系统中,所有数据保存在区块中,新写入的数据组成新的区块,添加在当前区块链末端链。每个区块在保存数据的同时,还要保存前一个区块中所有记录的数据唯一对应的一个数,这个数往往是所有数据的哈希值,如果有人试图单独修改前一块中的数据,那么后面这块中保存的这个数就会对不上,不能成链。于是,区块链系统可以认为是,由分布式网络上的互相不完全信任的计算机,通过共识规则,共同维护一套可追溯、不可篡改的链式数据的系统。由于数据和平台不被任何机构单方面控制,区块链系统可看作是高安全、高可靠、可信的去中心化的基础计算框架。本申请实施例提供的技术方案基于区块链技术建立。
智能合约(chain code)由事件驱动,具有状态(已执行或未执行),且运行在区块链网络中的各个账本之上,能够管理账本上数据的程序。智能合约表现为一段计算程序,类似于现实生活中的合约,智能合约的计算机代码规定有交易的规则和逻辑,使用者调用智能合约后智能合约在满足交易条件后会执行,并将交易结果写入账本。
共识机制,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认,对一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为全网对此也能够达成共识。也就是说,共识机制相当于投票规则,不同的共识机制相当于不同的投票规则,例如有的要求票数过半,有的要求达到三分之二的票数。所有节点均具有投票权利,每次要出结果的时候,所有的节点都会参与投票,按照不同的投票规则(共识机制)进行投票,从而选出一个节点,所有节点通过共识机制达成共识,本轮投票以选中的这个节点的结果为准,其他节点出的结果不作数。
图1为本申请实施例涉及的系统结构示意图,如图1所示,一个微服务包括至少一个微服务实例,每一个微服务实例与区块链网络中的至少一个区块链节点连接,例如微服务A包括微服务实例A1、微服务实例A2和微服务实例A3,微服务实例A1、微服务实例A2和微服务实例A3分别与区块链网络中的至少一个区块链节点连接。例如微服务B包括微服务实例B1、微服务实例B2和微服务实例B3,微服务实例B1、微服务实例B2和微服务实例B3分别与区块链网络中的至少一个区块链节点连接。
在一些实施例中,每个微服务实例上配置有网关中间件,微服务实例具体通过网关中间件与对应的区块链节点通信。
区块链节点进行信息同步,例如微服务实例A1向对应的区块链节点注册服务,即将微服务实例A1的参数信息发送至对应的区块链节点,区块链节点将微服务实例A1的参数信息发送至区块链网络中的其他区块链节点,使得区块链网络中的各区块链节点上均存储有微服务实例A1的参数信息。微服务实例B1可以从对应的区块链节点上获得微服务实例A1的参数信息,并根据微服务实例A1的参数信息调用微服务A,进而实现微服务之间的调用。
由上述可知,本申请的微服务实例通过将微服务的参数信息注册至区块链网络中,当区块链网络中的一个区块链节点故障时,可以从区块链网络中的其他区块链节点处获得该微服务的参数信息,实现微服务的调用,进而提高了微服务的调用可靠性。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的微服务的调用方法的一种流程示意图,如图2所示,本申请实施例的方法包括:
S201、第一微服务实例从与第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点。
需要说明的是,当第一微服务调用第二微服务时,第一微服务的各微服务实例执行相同的调用过程,为了便于描述,本申请以第一微服务中的一个微服务实例为例进行说明,将该微服务实例记为第一微服务实例。
本申请的第一微服务实例可以理解为实现第一微服务的宿主机,例如服务器。
本申请的第一微服务可以理解为服务调用方,第二微服务可以理解为服务提供方。也就是说,所有微服务实例账号事先在区块链网络中进行注册,管理员为所有微服务实例账号配置不同服务的角色和权限。
在一些实施例中,角色包括:管理员、服务提供方和服务调用方。
在一些实施例中,权限包括:服务注册权限、服务发现权限、服务资源上报权限和服务屏蔽权限。其中,管理员具有所有服务的发现权限、所有服务的注册权限以及实例屏蔽权限。服务提供方具有当前服务的注册权限和当前服务的资源上报权限。服务调用方具有需调用方的服务发现权限。
在一些实施例中,管理员可以为每个微服务的所有实例账号配置角色,针对一个实例可以配置多个角色,例如既是微服务A即可以是服务提供方,也可以是服务调用方,微服务B即可以是服务调用方,也可以是服务提供方。
上述S201中第一微服务实例从与第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点的方式包括但不限于如下几种:
方式一,第一微服务实例将与第一微服务实例连接的至少一个区块链节点中距离所述第一微服务实例最近的区块链节点作为目标区块链节点。
方式二,第一微服务实例将与第一微服务实例连接的至少一个区块链节点中,信号最好的区块链节点作为目标区块链节点。
方式三,第一微服务实例连接的至少一个第一区块链节点包括一个主区块链节点和至少一个备选区块链节点。如图1所示,假设第一微服务实例为微服务实例B1,主区块链节点为图1中与微服务实例B1实线连接的区块链节点,备选块链节点为图1中与微服务实例B1虚线连接的区块链节点。此时,上述S201包括:
S201-A1、第一微服务实例在检测到第一微服务实例与主区块链节点保持连接时,则将主区块节点作为目标区块链节点;
S201-A2、第一微服务实例在检测待第一微服务实例与主区块链节点断开连接时,从至少一个备选区块链节点中确定一个与第一微服务实例保持连接的备选区块链节点作为目标区块链节点。
具体的,在主区块链节点没有故障时,第一微服务实例与主区块链节点连接正常,此时第一微服务实例将主区块链节点确定为目标区块链节点。在主区块链节点故障,与第一微服务实例断开连接时,第一微服务实例从至少一个备选区块链节点中确定一个与第一微服务实例保持连接的备选区块链节点作为目标区块链节点,例如,第一微服务实例从至少一个备选区块链节点中随机挑选可用的备选区块链节点,直到挑选到能成功连接的备选区块链节点,将该备选区块链节点作为目标区块链节点。
在一些实施例中,第一微服务实例的目标区块链节点为备选区块链节点时,第一微服务实例会继续探测主区块链节点,探测成功后将主区块链节点作为目标区块链节点。
S202、第一微服务实例向目标区块链节点发送服务发现请求,其中服务发现请求用于发现第二微服务。
本申请的第二微服务作为服务提供方,向区块链网络注册。具体是第二微服务的各微服务实例将各自的参数信息发送给对应的区块链节点,使得区块链节点将接收到的微服务实例的参数信息发送至区块链网络中。
其中,参数信息包括注册信息和资源信息,所述资源信息包括cpu占用、内存占用、IO吞吐、响应时间等。
本申请中的第一微服务实例需要调用第二微服务时,首先根据上述S201的方法确定目标区块链节点,接着,执行S202向目标区块链节点发送服务发现请求,该服务发现请求用于发现第二微服务。
在一些实施例中,该服务发现请求中还可以包括第二微服务的标识信息。
S203、目标区块链节点响应于服务发现请求,向第一微服务实例发送第二微服务的目标服务实例的参数信息。
由于第二微服务的各微服务实例均注册在区块链网络中,区块链网络中的各区块链节点均可以获得第二微服务的各微服务实例的参数信息。也就是说,目标区块链节点可以获得第二微服务的各微服务实例的参数信息。
在一些实施例中,上述第二微服务的目标服务实例可以是第二微服务的各微服务实例中任意一个微服务实例的参数信息。
在一些实施例中,上述第二微服务的目标服务实例可以是第二微服务的各微服务实例中最优微服务实例的参数信息,其中,最优微服务实例可以理解为服务性能好且成功率高的实例。
在一些实施例中,目标区域连接节点上保存有智能合约,该智能合约包括如下至少一个功能:服务注册、服务发现、服务心跳、服务屏蔽、服务资源信息上报、服务资源获取、服务智能路由、权限配置和权限校验。
其中,服务注册是指将微服务作为服务提供方,将微服务的所有实例注册到区块链节点。
服务发现包括两种能力,针对微服务发起的服务发现,则该微服务具有从连接的区块链节点上拉取其他微服务的优选实例的参数信息;针对服务信息展示平台发起的服务发现,该服务信息展示平台连接的区块链节点拉去区块链网络中所有微服务的微服务实例的参数信息用于展示。
服务心跳是微服务实例在微服务注册成功后,定期向连接的区块链节点发起微服务心跳,如果区块链节点多次未接收到心跳,则该区块链节点自动下线该微服务实例。
服务屏蔽是指管理员主动下线某个微服务实例,不对外提供微服务。
服务资源信息上报是指将当前实例的资源使用情况上报到区块链节点。
服务资源获取是提供给服务信息展示平台获取服务资源信息进行展示的能力。
服务智能路由是指区块链节点在接收到服务资源信息时,通过智能合约实现根据下游服务的资源信息进行调用实例的智能优选。
权限配置是指为网关中不同实例配置不同角色和功能权限。
权限校验是指与网关中间件进行交互时,对网关中间件提出的动作进行权限校验。
基于此,在一些实施例中,上述S203包括:
S203-A1、目标区块链节点响应于服务发现请求,调用智能合约中的权限校验功能,在校验第一微服务实例具有服务发现权限时,根据智能合约功能中的服务智能路由功能,获得第二微服务的目标服务实例的参数信息;
S203-A2、目标区块链节点将第二微服务的目标服务实例的参数信息发送给第一微服务实例。
具体的,第一微服务实例向目标区块链节点发送服务发现请求,该服务发现请求中包括第一微服务实例的标识信息。目标区块链节点接收到服务发现请求后,解析该服务发现请求,例如通过公钥对服务发现请求进行解密,解密失败则证明该服务发现请求是伪造请求,不是对应账号的服务发现请求,直接拒绝该服务发现请求。若通过公钥对服务发现请求进行解密成功后,调用智能合约的权限校验功能,根据第一微服务实例的标识信息,获取该第一微服务实例的所有权限,校验该第一微服务实例是否具有服务发现权限;若校验失败,则拒绝该服务发现请求;若校验成功,则根据智能合约的智能路由功能优选后的结果,获得第二微服务的目标服务实例的参数信息。接着,目标区块链节点将获得的第二微服务的目标服务实例的参数信息发送给第一微服务实例。本步骤,设计了区块链节点的权限配置和权限校验能力,防止节点作恶,提高了微服务的安全性。
S204、第一微服务实例根据目标服务实例的参数信息,调用第二微服务。
第一微服务实例根据目标服务实例的参数信息,调用第二微服务,如果成功,则完成一次服务调用;如果调用失败,则重新进行服务发现,服务发现会根据智能路由优选结果重新分配第二微服务的目标微服务实例,直到调用成功,或者失败预设次(例如三次),则服务调用结束。
本申请实施例提供的微服务的调用方法,第一微服务实例需要调用第二微服务时,从与第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点,并向目标区块链节点发送服务发现请求,该服务发现请求用于发现第二微服务。目标区块链节点响应于服务发现请求,向第一微服务实例发送第二微服务的目标服务实例的参数信息,第一微服务实例根据目标服务实例的参数信息,调用第二微服务。即本申请通过将微服务的参数信息注册至区块链网络中,去除中心化问题,当区块链网络中的一个区块链节点故障时,可以从区块链网络中的其他区块链节点处获得该微服务的参数信息,实现微服务的调用,进而提高了微服务的调用可靠性。
在一些实施例中,若第一微服务为服务提供方时,本申请还包括注册的过程,具体如图3所示,包括:
S301、第一微服务实例向目标区块链节点发送第一微服务实例的参数信息。
其中第一微服务实例的参数信息包括第一微服务实例的注册信息和第一微服务实例的资源信息。其中,注册信息可以包括第一微服务实例的标识信息等,资源信息可以包括第一微服务实例cpu占用、内存占用、IO吞吐、响应时间等。
S302、目标区块链节点对第一微服务实例的参数信息进行处理;
S303、目标区块链节点将处理后的第一微服务实例的参数信息发送至区块链网络中。
在一些实施例中,若参数信息包括注册信息,智能合约包括服务注册功能,此时,上述S302中目标区块链节点对第一微服务实例的参数信息进行处理,可以包括:目标区块链节点调用智能合约中的权限校验功能,校验第一微服务实例是否具有服务注册权限;在校验第一微服务实例具有服务注册权限时,调用智能合约中的服务注册功能,对第一微服务实例的注册信息进行格式化保存。
在一些实施例中,若参数信息包括资源信息,此时上述S302中目标区块链节点对第一微服务实例的参数信息进行处理,包括:目标区块链节点从区块链网络中获得第一微服务的其他微服务实例的资源信息,其他微服务实例为第一微服务的各微服务实例中除第一微服务实例外的其他微服务实例;目标区块链节点根据第一微服务的各微服务实例的资源信息,对第一微服务的各微服务实例进行排序。同时,可以将服务性能好且成功率高的实例作为最优调用选项进行数据格式化保存。
在一些实施例中,若参数信息包括注册信息和资源信息时,目标区块链节点首先调用智能合约中的权限校验功能,校验第一微服务实例是否具有服务注册权限;在校验第一微服务实例具有服务注册权限时,调用智能合约中的服务注册功能,对第一微服务实例的注册信息进行格式化保存。接着,目标区块链节点对第一微服务的各微服务实例进行排序。同时,将服务性能好且成功率高的实例作为最优调用选项进行数据格式化保存。
在一些实施例中,目标区块链节点接收到第一微服务实例发送的第一微服务实例的参数信息时,首先通过公钥对第一微服务实例发送的第一微服务实例的参数信息进行解密,解密失败则证明是伪造请求,不是对应账号的请求,直接拒绝注册。若解密成功则进行上述权限校验。
本申请通过区块链网络的智能合约实现权限配置和权限校验能力,杜绝节点作恶问题,提高服务的安全性。
本申请利用区块链替代现在的注册中心和治理平台的单点服务,进而实现去中心化,通过将微服务实例的参数信息注册至区块链网络中,由于区块链网络中各区块链节点间存在共识,当某个微服务实例当掉,也不影响整个服务机制的稳定性,进而提高了微服务的可靠性和稳定性。
在一些实施例中,当第一微服务实例在区块链网络中成功注册服务后,执行如下S304的步骤。
S304、第一微服务实例根据预设的时间周期,向目标区块链节点发送心跳信息;
S305、目标区块链节点在预设时间内未接收到第一微服务实例发送的心跳信息时,删除第一微服务实例的参数信息。
具体的,当第一微服务实例在区块链网络中成功注册服务后,第一微服务实例根据预设的时间周期,定时发送心跳信息,例如每隔10秒会通过网关中间件,发送心跳到关联的目标区块链节点。
在一些实施例中,当目标区块链节点在预设时间内(例如30秒)未收到第一微服务实例发送的心跳信息时,说明第一微服务实例与目标区块链节点断开连接,例如由于第一微服务实例故障与目标区块链节点断开连接。此时,为了实现后续微服务调用的准确性,则目标区块链节点会删除自身保存的关于第一微服务实例的参数信息。
在一些实施例中,目标区块链节点确定第一微服务实例下线后,执行如下S306的步骤:
S306、目标区块链节点向区块链网络中发送第一微服务实例下线的通知信息,使得区块链网络中其他区块链节点删除第一微服务实例的参数信息。
具体的,目标区块链节点确定第一微服务实例下线后,除了删除自身保存的关于第一微服务实例的参数信息外,并向区块链网络发送一通知信息,该通知信息用于通知该第一微服务实例下线。此时,区块链网络中的其他区块链节点接收到该通知信息后,将各自保存的关于第一微服务实例的参数信息删除。
在一些实施例中,如图1所示,本申请实施例新增了服务信息展示平台,服务信息展示平台与区块链网络中的至少一个区块链节点连接,这至少一个区块链节点包括一个主区块链节点和至少一个备选区块链节点。当服务信息展示平台的主区块链节点故障时,服务信息展示平台会从备选区块链节点中随机挑选一个作为连接的节点;若该备选区块链节点同样故障,则继续挑选,直到找到运行正常的备选区块链节点为止。考虑到节点负载,当服务信息展示平台与备选区块链节点连接时,仍会定时探测主区块链节点,一旦探测成功,仍切回到主区块链节点。
服务信息展示平台具有所有微服务的发现权限,所有微服务的资源获取权限和屏蔽实例权限。也就是说,服务信息展示平台可以获取区块链网络中各微服务的注册信息和资源信息,且展示获取的区块链网络中各微服务的注册信息和资源信息。
在一些实施例中,考虑到微服务实例性能下降等需要手动屏蔽该微服务实例,使得该微服务实例不再对外提供服务时,服务信息展示平台提供主动屏蔽某个微服务实例的功能,具体实现步骤如下:
例如,当第三微服务的微服务实例1需要被屏蔽时,管理员从服务信息展示平台界面操作,屏蔽微服务实例1。同时服务信息展示平台会将该屏蔽信息发送到关联的服务信息展示平台区块链节点1,该屏蔽信息中包括微服务实例1的标识信息。首先区块链节点1通过公钥对屏蔽信息进行解密,解密失败则证明是伪造请求,不是对应账号的请求,直接拒绝实例屏蔽请求。若区块链节点1对该屏蔽信息成功解密后,调用智能合约的权限校验功能,判断发送屏蔽信息的服务信息展示平台账号是否具有屏蔽实例权限,如果校验失败则拒绝屏蔽,如果校验成功,则通过智能合约进行实例屏蔽数据格式化保存。
接着,服务信息展示平台对应的区块链节点会将屏蔽的第三微服务的微服务实例的屏蔽信息发送到区块链网络中。
目标区块链节点从区块链网络中获取第三微服务的微服务实例的屏蔽信息,并根据第三微服务的微服务实例的屏蔽信息,删除保存的第三微服务的微服务实例的参数信息。这样在候选的服务发现过程中,目标区块链节点不会返回第三微服务的微服务实例的参数信息,从而实现屏蔽第三微服务的微服务实例。
应理解,图2和图3仅为本申请的示例,不应理解为对本申请的限制。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
上文结合图2和图3,详细描述了本申请的方法实施例,下文结合图4至图6,详细描述本申请的装置实施例。
图4为本申请实施例提供的微服务的调用装置的一种结构示意图。该微服务的调用装置用于执行上述方式实施例中第一微服务实例对应的步骤。如图4所示,该微服务的调用装置100可以包括:
处理单元110,用于从与所述第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点;
发送单元120,用于向所述目标区块链节点发送服务发现请求,所述服务发现请求用于发现第二微服务;
接收单元130,用于从所述目标区块链节点处获得所述第二微服务的目标服务实例的参数信息;
处理单元110,还用于根据所述目标服务实例的参数信息,调用所述第二微服务。
在一些实施例中,所述第一微服务实例连接的至少一个第一区块链节点包括一个主区块链节点和至少一个备选区块链节点,上述处理单元110,具体用于在检测到所述第一微服务实例与所述主区块链节点保持连接时,则将所述主区块节点作为所述目标区块链节点;在检测待所述第一微服务实例与所述主区块链节点断开连接时,从所述至少一个备选区块链节点中确定一个与所述第一微服务实例保持连接的备选区块链节点作为所述目标区块链节点。
在一些实施例中,发送单元120,还用于向所述目标区块链发送所述第一微服务实例的参数信息。
在一些实施例中,发送单元120,还用于在将所述第一微服务实例的参数信息发送给所述目标区块链节点后,根据预设的时间周期,向所述目标区块链节点发送心跳信息。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图4所示的装置100可以执行本申请实施例的方法,并且装置100中的各个单元的前述和其它操作和/或功能分别为了实现各个方法中的相应流程,为了简洁,在此不再赘述。
图5为本申请实施例提供的微服务的调用装置的一种结构示意图。该微服务的调用装置用于执行上述方式实施例中目标区块链节点对应的步骤。如图5所示,该微服务的调用装置200可以包括:
接收单元210,用于接收来自第一微服务实例的服务发现请求,所述服务发现请求用于发现第二微服务;
发送单元220,用于响应于所述服务发现请求,向所述第一微服务实例发送所述第二微服务的目标服务实例的参数信息。
在一些实施例中,所述目标区域连接节点上保存有智能合约,所述智能合约包括如下至少一个功能:服务注册、服务发现、服务心跳、服务屏蔽、复杂资源上报、服务资源获取、服务智能路由、权限配置和权限校验。
在一些实施例中,该装置还包括处理单元230,处理单元用于响应于所述服务发现请求,调用所述智能合约中的权限校验功能,在校验所述第一微服务实例具有服务发现权限时,根据所述智能合约功能中的服务智能路由功能,获得所述第二微服务的目标服务实例的参数信息;发送单元220,具体用于将所述第二微服务的目标服务实例的参数信息发送给所述第一微服务实例。
在一些实施例中,接收单元210,还用于接收来自所述第一微服务实例的参数信息;处理单元230,还用于对所述第一微服务实例的参数信息进行处理;发送单元220,还用于将处理后的所述第一微服务实例的参数信息发送至所述区块链网络中。
在一些实施例中,所述参数信息包括注册信息,所述智能合约包括服务注册功能,处理单元230,具体用于调用所述智能合约中的权限校验功能,校验所述第一微服务实例是否具有服务注册权限;在校验所述第一微服务实例具有服务注册权限时,调用所述智能合约中的服务注册功能,对所述第一微服务实例的注册信息进行格式化保存。
在一些实施例中,所述参数信息包括资源信息,处理单元230,具体用于从所述区块链网络中获得所述第一微服务的其他微服务实例的资源信息,所述其他微服务实例为所述第一微服务的各微服务实例中除所述第一微服务实例外的其他微服务实例;根据所述第一微服务的各微服务实例的资源信息,对所述第一微服务的各微服务实例进行排序。
在一些实施例中,接收单元210还用于在接收到所述第一微服务实例的参数信息后,接收所述第一微服务实例发送心跳信息。
在一些实施例中,处理单元230还用于在预设时间内未接收到所述第一微服务实例发送的心跳信息时,删除所述第一微服务实例的参数信息。
在一些实施例中,发送单元220,还用于向所述区块链网络中发送所述第一微服务实例下线的通知信息,使得所述区块链网络中其他区块链节点删除所述第一微服务实例的参数信息。
在一些实施例中,接收单元210还用于从所述区块链网络中获取第三微服务的微服务实例的屏蔽信息,所述屏蔽信息是服务信息展示平台发送的,所述服务信息平台与所述区块链网络中的至少一个区块链节点连接,用于获取并展示所述区块链网络中各微服务的注册信息和资源信息;处理单元230还用于根据所述第三微服务的微服务实例的屏蔽信息,删除所述第三微服务的微服务实例的参数信息。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图5所示的装置200可以执行本申请实施例的方法,并且装置200中的各个单元的前述和其它操作和/或功能分别为了实现各个方法中的相应流程,为了简洁,在此不再赘述。
图6为本申请实施例涉及的电子设备的框图,该电子设备用于执行上述实施例所述的动作生成方法,具体参见上述方法实施例中的说明。
图6所示的电子设备400包括存储器401、处理器402、通信接口403。存储器401、处理器402、通信接口403之间彼此通信连接。例如,存储器401、处理器402、通信接口403之间可以采用网络连接的方式,实现通信连接。或者,上述电子设备400还可以包括总线404。存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接。图6是以存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接的电子设备400。
存储器401可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器401可以存储程序,当存储器401中存储的程序被处理器402执行时,处理器402和通信接口403用于执行上述方法。
处理器402可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路。
处理器402还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的方法可以通过处理器402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器402还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器401,处理器402读取存储器401中的信息,结合其硬件完成本申请实施例的方法。
通信接口403使用例如但不限于收发器一类的收发模块,来实现电子设备400与其他设备或通信网络之间的通信。例如,可以通过通信接口403获取数据集。
当上述电子设备400包括总线404时,总线404可包括在电子设备400各个部件(例如,存储器401、处理器402、通信接口403)之间传送信息的通路。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
综上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (15)

1.一种微服务的调用方法,其特征在于,一个微服务包括多个微服务实例,每个所述微服务实例与区块链网络中的至少一个区块链节点连接,所述方法应用于第一微服务的一个第一微服务实例,所述方法包括:
从与所述第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点;
向所述目标区块链节点发送服务发现请求,所述服务发现请求用于发现第二微服务;
从所述目标区块链节点处获得所述第二微服务的目标服务实例的参数信息;
根据所述目标服务实例的参数信息,调用所述第二微服务。
2.根据权利要求1所述的方法,其特征在于,所述第一微服务实例连接的至少一个第一区块链节点包括一个主区块链节点和至少一个备选区块链节点,所述从与所述第一微服务实例连接的至少一个区块链节点中确定一目标区块链节点,包括:
在检测到所述第一微服务实例与所述主区块链节点保持连接时,则将所述主区块节点作为所述目标区块链节点;
在检测待所述第一微服务实例与所述主区块链节点断开连接时,从所述至少一个备选区块链节点中确定一个与所述第一微服务实例保持连接的备选区块链节点作为所述目标区块链节点。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述目标区块链发送所述第一微服务实例的参数信息。
4.根据权利要求3所述的方法,其特征在于,在将所述第一微服务实例的参数信息发送给所述目标区块链节点后,所述方法还包括:
根据预设的时间周期,向所述目标区块链节点发送心跳信息。
5.一种微服务的调用方法,其特征在于,一个微服务包括多个微服务实例,每个所述微服务实例与区块链网络中的至少一个区块链节点连接,所述方法应用于目标区块链节点,所述方法包括:
接收来自第一微服务实例的服务发现请求,所述服务发现请求用于发现第二微服务;
响应于所述服务发现请求,向所述第一微服务实例发送所述第二微服务的目标服务实例的参数信息。
6.根据权利要求5所述的方法,其特征在于,所述目标区域连接节点上保存有智能合约,所述智能合约包括如下至少一个功能:服务注册、服务发现、服务心跳、服务屏蔽、复杂资源上报、服务资源获取、服务智能路由、权限配置和权限校验。
7.根据权利要求6所述的方法,其特征在于,所述响应于所述服务发现请求,向所述第一微服务实例发送所述第二微服务的目标服务实例的参数信息,包括:
响应于所述服务发现请求,调用所述智能合约中的权限校验功能,在校验所述第一微服务实例具有服务发现权限时,根据所述智能合约功能中的服务智能路由功能,获得所述第二微服务的目标服务实例的参数信息;
将所述第二微服务的目标服务实例的参数信息发送给所述第一微服务实例。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收来自所述第一微服务实例的参数信息;
对所述第一微服务实例的参数信息进行处理;
将处理后的所述第一微服务实例的参数信息发送至所述区块链网络中。
9.根据权利要求8所述的方法,其特征在于,所述参数信息包括注册信息,所述智能合约包括服务注册功能,所述对所述第一微服务实例的参数信息进行处理,包括:
调用所述智能合约中的权限校验功能,校验所述第一微服务实例是否具有服务注册权限;
在校验所述第一微服务实例具有服务注册权限时,调用所述智能合约中的服务注册功能,对所述第一微服务实例的注册信息进行格式化保存。
10.根据权利要求9所述的方法,其特征在于,所述参数信息包括资源信息,所述对所述第一微服务实例的参数信息进行处理,包括:
从所述区块链网络中获得所述第一微服务的其他微服务实例的资源信息,所述其他微服务实例为所述第一微服务的各微服务实例中除所述第一微服务实例外的其他微服务实例;
根据所述第一微服务的各微服务实例的资源信息,对所述第一微服务的各微服务实例进行排序。
11.根据权利要求8所述的方法,其特征在于,在接收到所述第一微服务实例的参数信息后,所述方法还包括:
接收所述第一微服务实例发送心跳信息。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在预设时间内未接收到所述第一微服务实例发送的心跳信息时,删除所述第一微服务实例的参数信息。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
向所述区块链网络中发送所述第一微服务实例下线的通知信息,使得所述区块链网络中其他区块链节点删除所述第一微服务实例的参数信息。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
从所述区块链网络中获取第三微服务的微服务实例的屏蔽信息,所述屏蔽信息是服务信息展示平台发送的,所述服务信息平台与所述区块链网络中的至少一个区块链节点连接,用于获取并展示所述区块链网络中各微服务的注册信息和资源信息;
根据所述第三微服务的微服务实例的屏蔽信息,删除所述第三微服务的微服务实例的参数信息。
15.一种电子设备,其特征在于,包括:存储器,处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至4或5至14任一项所述的方法。
CN202110349890.7A 2021-03-31 2021-03-31 微服务的调用方法与电子设备 Pending CN112905364A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110349890.7A CN112905364A (zh) 2021-03-31 2021-03-31 微服务的调用方法与电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110349890.7A CN112905364A (zh) 2021-03-31 2021-03-31 微服务的调用方法与电子设备

Publications (1)

Publication Number Publication Date
CN112905364A true CN112905364A (zh) 2021-06-04

Family

ID=76109916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110349890.7A Pending CN112905364A (zh) 2021-03-31 2021-03-31 微服务的调用方法与电子设备

Country Status (1)

Country Link
CN (1) CN112905364A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326540A (zh) * 2021-06-29 2021-08-31 平安普惠企业管理有限公司 微服务的调用权限控制方法、装置、服务器、系统及介质
CN113364885A (zh) * 2021-06-29 2021-09-07 中国电信股份有限公司 微服务调用方法、装置、电子设备和可读存储介质
CN114448694A (zh) * 2022-01-24 2022-05-06 蚂蚁区块链科技(上海)有限公司 基于区块链的服务调用方法和装置
GB2614796A (en) * 2021-11-19 2023-07-19 Jpmorgan Chase Bank Na Cloud-based hybrid service meshes in microservice architectures (systems and methods)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326540A (zh) * 2021-06-29 2021-08-31 平安普惠企业管理有限公司 微服务的调用权限控制方法、装置、服务器、系统及介质
CN113364885A (zh) * 2021-06-29 2021-09-07 中国电信股份有限公司 微服务调用方法、装置、电子设备和可读存储介质
CN113364885B (zh) * 2021-06-29 2022-11-22 天翼云科技有限公司 微服务调用方法、装置、电子设备和可读存储介质
WO2023273240A1 (zh) * 2021-06-29 2023-01-05 天翼云科技有限公司 微服务调用方法、装置、电子设备和可读存储介质
CN113326540B (zh) * 2021-06-29 2023-12-22 深圳世纪前沿量化科技有限公司 微服务的调用权限控制方法、装置、服务器、系统及介质
GB2614796A (en) * 2021-11-19 2023-07-19 Jpmorgan Chase Bank Na Cloud-based hybrid service meshes in microservice architectures (systems and methods)
CN114448694A (zh) * 2022-01-24 2022-05-06 蚂蚁区块链科技(上海)有限公司 基于区块链的服务调用方法和装置
CN114448694B (zh) * 2022-01-24 2024-04-09 蚂蚁区块链科技(上海)有限公司 基于区块链的服务调用方法和装置

Similar Documents

Publication Publication Date Title
CN112905364A (zh) 微服务的调用方法与电子设备
CN108897628B (zh) 一种分布式锁的实现方法、装置及电子设备
CN112800129B (zh) 区块状态更新方法、装置、系统和电子设备
US20240121121A1 (en) Registration and Execution Methods, Apparatuses and System of Timed Smart Contract in Blockchain
CN111478955B (zh) 微服务注册方法、系统、装置和计算机可读存储介质
CN107851159B (zh) 控制配置数据储存器
CN108616429A (zh) 一种推送服务的重连方法及设备
CN112184436B (zh) 数据同步方法、电子设备及可读存储介质
CN112199210A (zh) 基于物联网的数据处理方法、装置、计算机设备及介质
CN111212099A (zh) 一种微服务管理方法及装置
JP2022525551A (ja) データレコードのコピーの分散型台帳システムへの誤伝送の防止
CN112650812A (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
WO2023040453A1 (zh) 一种交易信息处理方法及装置
CN110647583B (zh) 一种区块链构建方法、装置、终端及介质
CN113596168B (zh) 基于区块链联盟链的验证方法及装置
KR102213460B1 (ko) 머신러닝을 이용한 소프트웨어 화이트리스트 생성 시스템 및 방법
KR20090001410A (ko) 트랩 mo의 디바이스 관리 보안 시스템 및 방법
CN114153705A (zh) 基于配置管理数据库的数据监控方法及装置
CN112200680B (zh) 区块链节点管理方法、装置、计算机以及可读存储介质
EP3011528A2 (en) Wireless network and mac address device detection system and methods
CN112181599A (zh) 模型训练方法、装置及存储介质
CN112037055A (zh) 交易处理方法、装置、电子设备及可读存储介质
CN112015563A (zh) 消息队列切换方法、装置、电子设备及存储介质
CN116389385A (zh) 一种系统资源处理方法、装置、存储介质及设备
US20040158839A1 (en) Method and system for processing event of softswitch open type system

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