[发明专利]一种无存根的微服务调用方法及装置在审
申请号: | 202110606449.2 | 申请日: | 2021-05-28 |
公开(公告)号: | CN113342349A | 公开(公告)日: | 2021-09-03 |
发明(设计)人: | 成诺;夏龙飞;颜高飞;张远征 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/76;H04L29/08 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 任默闻;王涛 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存根 微服 调用 方法 装置 | ||
本发明提供一种无存根的微服务调用方法及装置,涉及计算机领域以及金融领域,该方法包括:接收服务调用请求;当所述服务调用请求中的服务接口名以及对应的方法列表存在于最新的方法列表缓存中时,从注册中心获取服务提供方的实例信息;将所述服务调用请求转换为常规代理类请求;根据所述实例信息将所述常规代理类请求发送至所述服务提供方,进行服务的远程调用。本申请从根本上解决了服务调用方与服务提供方在服务存根上的强耦合问题,服务调用方无需加载服务存根即可进行服务调用,提升了调用方的性能和稳定性。
技术领域
本发明涉及计算机领域以及金融领域,具体涉及一种无存根的微服务调用方法及装置。
背景技术
由于高级编程语言的共性,现有的微服务调用模型一般需要先定义再调用,因此大部分远程调用是基于服务存根完成的。消费方加载服务存根后,显示调用服务存根中的方法。分布式RPC框架底层基于服务存根构造远程调用代理类,逐层封装服务发现、请求序列化、网络传输、异常处理等远程调用步骤,实现远程调用提供方所提供的服务中的方法。
然而,由于这种方式下微服务调用模型与服务存根之间存在强耦合关系,当调用方是第三方应用时,提供方不便提供服务存根,或者调用方与提供方编程语言互不兼容时,无法加载服务存根,再或者提供方更新服务存根后,调用方运行时不能在内存中动态同步更新存根,此时导致调用方无法进行微服务调用。因此提供方与调用方的强耦合关系对产品的微服务架构转型产生了较大阻力。
而现有的泛化调用协议与常规的存根代理类调用协议之间也存在反序列化类型不兼容的问题,因此无法通过现有的微服务调用模型直接使用泛化调用协议。
发明内容
为了解决现有技术中存在的问题,本申请提供一种无存根的微服务调用方法,涉及计算机领域以及金融领域,该方法包括:
接收服务调用请求;
当所述服务调用请求中的服务接口名以及服务方法名存在于最新的方法列表缓存中时,从注册中心获取服务提供方的实例信息;
将所述服务调用请求转换为常规代理类请求;
根据所述实例信息将所述常规代理类请求发送至所述服务提供方,进行服务的远程调用。
在一实施例中,所述无存根的微服务调用方法还包括:
接收注册中心推送的最新服务定义,其中,所述最新服务定义为服务提供方写入注册中心的服务接口定义和服务方法定义;
根据所述最新服务定义更新所述方法列表缓存。
在一实施例中,所述方法列表缓存包括:
服务提供方提供的服务接口名以及对应的方法列表;
其中,所述方法列表包括方法名、输入参数的参数类型、输出参数的结果类型以及异常类型。
在一实施例中,所述将所述服务调用请求转换为常规代理类请求,包括:
根据所述服务调用请求中的服务接口名、服务方法名以及输入参数的个数从所述最新的方法列表缓存中匹配所述服务调用请求对应的服务方法定义;
将所述服务调用请求中的输入参数的类型转换为匹配到的服务方法定义中的输入参数的参数类型;
将所述服务调用请求的协议格式转换为常规代理类协议格式,得到常规代理类请求。
在一实施例中,所述根据所述实例信息将所述常规代理类请求发送至所述服务提供方,进行服务的远程调用,包括:
对所述常规代理类请求进行请求序列化,得到网络框架传输请求;
发送所述网络框架传输请求进行服务的远程调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110606449.2/2.html,转载请声明来源钻瓜专利网。