一种服务请求的传输方法和装置与流程

文档序号:20488300发布日期:2020-04-21 21:50阅读:169来源:国知局
一种服务请求的传输方法和装置与流程

本申请涉及计算机领域,尤其涉及一种服务请求的传输方法和装置。



背景技术:

现有的技术方案,通过nginx配置请求url(uniformresourcelocator,统一资源定位符)和服务api(applicationprogramminginterface,应用程序接口)网关实例的映射关系,通过为每个产品的服务配置独立的api网关,支持服务接口协议转换,协议转换基于服务接口描述文件生成的静态代码文件实现。每个产品服务对应的api网关,基于服务的接口描述文件实现协议转换,协议转换层次上,api网关和服务没有解耦。如果服务的接口发生变更,需要同步修改api网关。每次服务接口的变更,要求发布更新服务和api网关,两者的发布过程很难同步,要求服务接口变更兼容旧协议,加大了产品服务的维护难度。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请提供了一种服务请求的传输方法和装置,以至少解决相关技术中服务请求的传输过程复杂度较高的技术问题。

根据本申请实施例的一个方面,提供了一种服务请求的传输方法,包括:

接收前端发送的通过第一通讯协议进行传输的第一服务请求,其中,所述第一服务请求用于请求向第一服务的目标服务接口传输第一格式的数据;

查询具有对应关系的服务和接口描述信息,得到所述第一服务对应的目标接口描述信息;

使用所述目标接口描述信息将所述第一格式的数据转换为第二格式的数据;

通过第二通讯协议将所述第二格式的数据传输至所述第一服务的所述目标服务接口。

根据本申请实施例的另一方面,还提供了一种服务请求的传输装置,包括:

接收模块,用于接收前端发送的通过第一通讯协议进行传输的第一服务请求,其中,所述第一服务请求用于请求向第一服务的目标服务接口传输第一格式的数据;

查询模块,用于查询具有对应关系的服务和接口描述信息,得到所述第一服务对应的目标接口描述信息;

转换模块,用于使用所述目标接口描述信息将所述第一格式的数据转换为第二格式的数据;

传输模块,用于通过第二通讯协议将所述第二格式的数据传输至所述第一服务的所述目标服务接口。

可选地,所述查询模块包括:

查找单元,用于从缓存的具有对应关系的服务和接口描述信息中查找所述第一服务;

查询单元,用于在未查找到所述第一服务的情况下,向所述第一服务查询所述第一服务对应的接口描述信息,并接收所述第一服务返回的所述第一服务对应的所述目标接口描述信息;

第一获取单元,用于在查找到所述第一服务的情况下,从具有对应关系的服务和接口描述信息中获取所述第一服务所对应的所述目标接口描述信息。

可选地,所述查询单元用于:

从所述第一服务对应的服务实例地址列表中获取第一服务实例地址;

向所述第一服务实例地址发送查询请求,其中,所述查询请求用于请求查询所述第一服务对应的接口描述信息;

接收所述第一服务实例地址返回的查询响应,其中,所述查询响应用于指示所述第一服务对应所述目标接口描述信息。

可选地,所述装置还包括:

缓存模块,用于在接收所述第一服务返回的所述第一服务对应的所述目标接口描述信息之后,将具有对应关系的所述第一服务和所述目标接口描述信息缓存到具有对应关系的服务和接口描述信息中。

可选地,所述传输模块包括:

第二获取单元,用于从具有对应关系的服务和服务实例地址列表中获取所述第一服务对应的第一服务实例地址列表;

第三获取单元,用于从所述第一服务实例地址列表中获取第二服务实例地址;

构造单元,用于构造基于所述第二通讯协议的第二服务请求,其中,所述第二服务请求用于请求向所述目标服务接口传输所述第二格式的数据;

传输单元,用于将所述第二服务请求传输至所述第二服务实例地址。

可选地,所述装置还包括:

第一获取模块,用于在从具有对应关系的服务和服务实例地址列表中获取所述第一服务对应的第一服务实例地址列表之前,获取第二服务的服务实例地址更新信息,其中,所述服务实例地址更新信息用于指示所述第二服务对应的第二服务实例地址列表更新为第三服务实例地址列表;

第一更新模块,用于将具有对应关系的服务和服务实例地址列表中具有对应关系的所述第二服务和所述第二服务实例地址列表更新为具有对应关系的所述第二服务和所述第三服务实例地址列表。

可选地,所述装置还包括:

第二获取模块,用于在查询具有对应关系的服务和接口描述信息之前,每隔目标时间间隔获取具有对应关系的服务和接口描述信息中所包括的一个或者多个服务所对应的服务实例地址列表;

访问模块,用于依次访问所述一个或者多个服务中的每个服务对应的服务实例地址列表中的每个服务实例地址;

第二更新模块,用于在获取到目标服务实例地址的服务接口描述更新信息的情况下,使用所述服务接口描述更新信息更新具有对应关系的服务和接口描述信息。

根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本申请实施例中,采用接收前端发送的通过第一通讯协议进行传输的第一服务请求,其中,第一服务请求用于请求向第一服务的目标服务接口传输第一格式的数据;查询具有对应关系的服务和接口描述信息,得到第一服务对应的目标接口描述信息;使用目标接口描述信息将第一格式的数据转换为第二格式的数据;通过第二通讯协议将第二格式的数据传输至第一服务的目标服务接口的方式,通过接口描述信息的查询动态更新第一服务对应的目标接口描述信息,使用动态获取的目标接口描述信息进行数据转换和传输,如果服务的接口发生变更,不需要更新api网关,也统一了各个产品服务的api网关,大大降低了产品服务的开发和维护成本,也能够方便新特性开发和功能优化,便于网关流量的统一管理,从而实现了降低服务请求的传输过程复杂度的技术效果,进而解决了相关技术中服务请求的传输过程复杂度较高的技术问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本申请实施例的服务请求的传输方法的硬件环境的示意图;

图2是根据本申请实施例的一种可选的服务请求的传输方法的流程图;

图3是根据本申请实施例的双向流rpc的示意图;

图4是根据本申请可选的实施方式的一种api网关处理前端的服务请求的流程的示意图;

图5是根据本可选的实施方式的一种服务发现过程的示意图;

图6是根据本可选的实施方式的一种定时同步服务接口描述信息过程的示意图;

图7是根据本申请可选实施例的基于grpc的微服务架构api网关协议转换系统的示意图;

图8是根据本申请实施例的一种可选的服务请求的传输装置的示意图;

以及

图9是根据本申请实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请实施例的一方面,提供了一种服务请求的传输的方法实施例。

可选地,在本实施例中,上述服务请求的传输方法可以应用于如图1所示的由前端101、接入层103和微服务105所构成的硬件环境中。如图1所示,前端101可以但不限于包括小程序客户端、app客户端和网页客户端等等,接入层103可以但不限于包括api网关集群服务器,微服务105可以但不限于包括产品1业务服务的服务器、产品2业务服务的服务器和产品3业务服务的服务器。本申请实施例的服务请求的传输方法可以由接入层103的api网关集群服务器来执行。前端基于http协议,json格式数据进行传输;后端的微服务之间基于gprc协议,protobuf格式数据进行传输;api网关集群作为前端访问后端访问的统一入口,支持服务接口描述信息的动态更新,实现不同协议之间的转换。同时,api网关集群还可以整合反向代理服务器(如nginx集群)的主要功能,减少前端的请求调用链长度,降低请求的响应延时。

图2是根据本申请实施例的一种可选的服务请求的传输方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,接收前端发送的通过第一通讯协议进行传输的第一服务请求,其中,所述第一服务请求用于请求向第一服务的目标服务接口传输第一格式的数据;

步骤s204,查询具有对应关系的服务和接口描述信息,得到所述第一服务对应的目标接口描述信息;

步骤s206,使用所述目标接口描述信息将所述第一格式的数据转换为第二格式的数据;

步骤s208,通过第二通讯协议将所述第二格式的数据传输至所述第一服务的所述目标服务接口。

可选地,在本实施例中,上述服务可以但不限于指提供给调用者进行调用的功能,比如:游戏功能,购物功能,直播功能,音视频播放功能,图片存储和浏览功能,理财功能,网页浏览功能等等。

可选地,在本实施例中,目标接口描述信息包括:目标接口的接口名称,目标接口的请求参数字段列表(包括请求参数的字段名称和类型等),目标接口的响应参数字段列表(包括响应参数的字段名称和类型等)。

通过上述步骤s202至步骤s208,通过接口描述信息的查询动态更新第一服务对应的目标接口描述信息,使用动态获取的目标接口描述信息进行数据转换和传输,如果服务的接口发生变更,不需要更新api网关,也统一了各个产品服务的api网关,大大降低了产品服务的开发和维护成本,也能够方便新特性开发和功能优化,便于网关流量的统一管理,从而实现了降低服务请求的传输过程复杂度的技术效果,进而解决了相关技术中服务请求的传输过程复杂度较高的技术问题。

可选地,在本实施例中,上述服务请求的传输方法可以但不限于应用于前端访问与后端访问采用不同协议传输不同格式的数据的场景中。前端访问时发送的第一服务请求通过第一通讯协议传输第一格式的数据。传输到后端访问时通过第二通讯协议传输第二格式的数据。

可选地,在本实施例中,上述服务请求的传输方法可以但不限于应用于介入层中的api网关集群服务器。

在步骤s202提供的技术方案中,第一通讯协议可以但不限于包括http协议(hypertexttransferprotocol,超文本传输协议)。第一格式可以但不限于包括json格式(javascriptobjectnotation,js对象简谱)。

在步骤s204提供的技术方案中,查询目标接口描述信息的方式可以但不限于包括向第一服务查询,或者查询本地缓存,或者也可以首先在本地缓存中进行查找,如果没有查找到则向第一服务进行请求。

在步骤s206提供的技术方案中,第二格式可以但不限于包括protobuf格式(protocolbuffers)。

在步骤s208提供的技术方案中,第二通讯协议可以但不限于包括grpc协议。rpc是远程过程调用(remoteprocedurecall)的缩写形式。grpc协议是一个基于http/2协议标准而设计,基于protobuf序列化协议开发的数据传输协议。

可选地,在本实施例中,grpc协议可以但不限于为双向流rpc(bidirectionalstreamingrpc),图3是根据本申请实施例的双向流rpc的示意图,如图3所示,客户端和服务端可以相互独立地向对方发送或接收流。客户端和服务端发送或接收的顺序是任意。

作为一种可选的实施例,查询具有对应关系的服务和接口描述信息,得到所述第一服务对应的目标接口描述信息包括:

s11,从缓存的具有对应关系的服务和接口描述信息中查找所述第一服务;

s12,在未查找到所述第一服务的情况下,向所述第一服务查询所述第一服务对应的接口描述信息,并接收所述第一服务返回的所述第一服务对应的所述目标接口描述信息;

s13,在查找到所述第一服务的情况下,从具有对应关系的服务和接口描述信息中获取所述第一服务所对应的所述目标接口描述信息。

可选地,在本实施例中,api网关集群可以对具有对应关系的服务和接口描述信息进行缓存来提高查询的效率,api网关集群接收到第一服务请求后可以首先在本地缓存中进行查找,如果没有查找到则向第一服务进行查询。

可选地,在本实施例中,每个服务可以但不限于进行serverreflectioninfo接口注册来提供服务接口描述信息的查询功能,所有微服务开启监听端口,启动服务的过程,可以注册serverreflectioninfo接口是一个基于grpc协议的双向流接口,提供给api网关查询服务接口描述信息。serverreflectioninfo接口可以但不限于如下定义:

serviceserverreflection{rpcserverreflectioninfo(streamserverreflectionrequest)%服务接口元数据请求接口信息(服务接口元数据请求接口请求数据流)

returns(streamserverreflectionresponse);%返回服务接口元数据请求接口响应数据流

}

作为一种可选的实施例,向所述第一服务查询所述第一服务对应的接口描述信息,并接收所述第一服务返回的所述第一服务对应的所述目标接口描述信息包括:

s21,从所述第一服务对应的服务实例地址列表中获取第一服务实例地址;

s22,向所述第一服务实例地址发送查询请求,其中,所述查询请求用于请求查询所述第一服务对应的接口描述信息;

s23,接收所述第一服务实例地址返回的查询响应,其中,所述查询响应用于指示所述第一服务对应所述目标接口描述信息。

可选地,在本实施例中,api网关集群可以但不限于通过向服务的某个服务实例地址发送查询请求来获取服务对应的接口描述信息。在上述步骤s21中,可以但不限于采用负载均衡轮询算法获取可用的第一服务实例地址。

作为一种可选的实施例,在接收所述第一服务返回的所述第一服务对应的所述目标接口描述信息之后,所述方法还包括:

s31,将具有对应关系的所述第一服务和所述目标接口描述信息缓存到具有对应关系的服务和接口描述信息中。

可选地,在本实施例中,api网关集群可以但不限于将获取到的具有对应关系的第一服务和目标接口描述信息缓存在本地,那么在下一次接收到访问第一服务的请求时即可以直接从本地缓存获取到第一服务对应的目标接口描述信息,从而节省时间,提高效率。

通过上述过程,api网关集群对服务的接口描述信息进行缓存,从而能够提高api网关集群处理服务请求的响应速度。

作为一种可选的实施例,通过第二通讯协议将所述第二格式的数据传输至所述第一服务的所述目标服务接口包括:

s41,从具有对应关系的服务和服务实例地址列表中获取所述第一服务对应的第一服务实例地址列表;

s42,从所述第一服务实例地址列表中获取第二服务实例地址;

s43,构造基于所述第二通讯协议的第二服务请求,其中,所述第二服务请求用于请求向所述目标服务接口传输所述第二格式的数据;

s44,将所述第二服务请求传输至所述第二服务实例地址。

可选地,在本实施例中,协议转换完成之后,api网关集群可以但不限于基于负载均衡算法选择服务一个可用的第二服务实例地址,构造基于grpc协议并携带有protobuf格式的请求数据的第二服务请求,将第二服务请求转发至该第二服务实例地址。

可选地,在本实施例中,第一服务实例地址列表中记录了第一服务提供的一系列服务实例地址,第二服务实例地址是从第一服务提供的一系列服务实例地址中选出的一个用于转发第二服务请求的服务实例地址。

通过上述过程,采用统一的网关接入层进行服务请求的调度、请求数据的转换以及服务请求的转发,在网关接入层中整合了反向代理服务器的主要功能,能够减少请求调用链长度,降低请求响应时间。

在一个可选的实施方式中,提供了一种api网关处理前端的服务请求的流程,图4是根据本申请可选的实施方式的一种api网关处理前端的服务请求的流程的示意图,如图4所示,该流程包括以下步骤:

步骤s402,接收http+json格式的请求数据。

步骤s404,解析获取服务名和服务接口名。

步骤s406,查询本地缓存获取服务接口描述信息。

步骤s408,判断缓存是否存在,如果否则执行步骤s410,如果是则执行步骤s416。

步骤s410,查询本地缓存获取服务实例地址列表。

步骤s412,访问服务实例地址查询接口描述信息。

步骤s414,更新本地缓存。

步骤s416,获取接口描述信息。

步骤s418,通过数据的序列化处理进行数据格式转换,将json格式转换为protobuf格式。

步骤s420,获取服务的一个可用的实例地址。

步骤s422,基于protobuf格式数据调用服务接口。

步骤s424,反序列化响应数据得到格式为json的响应数据。

步骤s426,发送格式为json的响应数据给前端。

作为一种可选的实施例,在从具有对应关系的服务和服务实例地址列表中获取所述第一服务对应的第一服务实例地址列表之前,所述方法还包括:

s51,获取第二服务的服务实例地址更新信息,其中,所述服务实例地址更新信息用于指示所述第二服务对应的第二服务实例地址列表更新为第三服务实例地址列表;

s52,将具有对应关系的服务和服务实例地址列表中具有对应关系的所述第二服务和所述第二服务实例地址列表更新为具有对应关系的所述第二服务和所述第三服务实例地址列表。

可选地,在本实施例中,api网关集群中缓存的服务对应的服务实例地址列表可以进行实时地更新。

可选地,在本实施例中,可以构建服务注册表,服务注册表是用于联系服务提供者和服务消费者的桥梁,维护服务提供者实例的最新网络位置,可以使用分布式的、一致性的键值存储系统维护服务注册信息,比如etcd、consul、zookeeper等。

通过上述过程,能够动态更新服务接口描述信息,如果服务的接口发生变更,不需要更新api网关集群。大大降低了产品服务的开发和维护成本,也节省了服务的更新时间,从而提高了服务开发和维护的效率。

在一个可选的实施方式中,提供了一种服务发现的过程,图5是根据本可选的实施方式的一种服务发现过程的示意图,如图5所示,该过程可以包括以下步骤:

步骤s502,获取依赖服务列表。

步骤s504,依次访问服务注册表订阅服务的变更事件。

步骤s506,获取服务的更新信息判断服务是否上线或下线。

步骤s508,更新本地缓存中的服务实例地址列表。

作为一种可选的实施例,在查询具有对应关系的服务和接口描述信息之前,所述方法还包括:

s61,每隔目标时间间隔获取具有对应关系的服务和接口描述信息中所包括的一个或者多个服务所对应的服务实例地址列表;

s62,依次访问所述一个或者多个服务中的每个服务对应的服务实例地址列表中的每个服务实例地址;

s63,在获取到目标服务实例地址的服务接口描述更新信息的情况下,使用所述服务接口描述更新信息更新具有对应关系的服务和接口描述信息。

可选地,在本实施例中,api网关集群中缓存的服务对应的接口描述信息可以进行定时地同步更新。

通过上述过程,在api网关集群中能够对服务的接口描述信息进行缓存,提高了请求响应的速度,并且对缓存进行定时的更新能够提高缓存的有效性,从而提高api网关的运行性能。

在一个可选的实施方式中,提供了一种定时同步服务接口描述信息的过程,图6是根据本可选的实施方式的一种定时同步服务接口描述信息过程的示意图,如图6所示,该过程可以包括以下步骤:

步骤s602,获取依赖服务列表。

步骤s604,获取某个服务的实例地址列表。

步骤s606,依次访问服务实例获取服务接口描述信息。

步骤s608,更新本地缓存中的服务接口描述信息,并返回步骤s604直至遍历所有的依赖服务。

步骤s610,休眠30秒重新执行步骤s602进行定时同步。

本申请还提供了一种可选实施例,该可选实施例提供了一个基于grpc的微服务架构api网关协议转换系统,图7是根据本申请可选实施例的基于grpc的微服务架构api网关协议转换系统的示意图,如图7所示,该系统包括:服务注册表、服务注册、服务发现、serverreflectioninfo接口注册、服务接口描述信息定时同步更新、维护本地缓存、协议转换、协议转发等功能模块,该api网关协议转换系统采用双向流rpc的微服务架构,客户端和服务端可以相互独立地向对方发送或接收流,并且客户端和服务端发送或接收的顺序是任意。该系统中各个模块的实现方式如下:

服务注册表是联系服务提供者和服务消费者的桥梁,用于维护服务提供者实例的最新网络位置,可以使用一个分布式的、一致性的键值存储系统维护服务注册信息,比如etcd、consul、zookeeper等。

服务注册功能包括服务实例调用服务注册表的注册接口进行实例地址注册,服务实例还可以定期调用服务注册表的“心跳”接口,以防止服务实例注册信息过期。

服务发现功能包括当前端访问目标服务时,api网关根据服务名称访问服务注册表以获取服务实例地址列表。为了提高性能,api网关会缓存服务实例地址列表,并且实时监控和同步服务注册表的服务实例地址列表。

serverreflectioninfo接口注册功能包括所有微服务开启监听端口,启动服务的过程,可以注册serverreflectioninfo接口,提供给api网关查询服务接口描述信息的功能。

服务接口描述信息定时同步更新、维护本地缓存功能包括api网关解析前端请求url获取目标服务名称,查询本地缓存获取服务实例地址列表,构造serverreflectioninfo接口请求,查询获取目标服务的接口描述信息,更新本地缓存。为了保证服务更新过程接口的新旧兼容,服务返回的接口描述信息可以维护一个版本号,同时,api网关可以针对服务不同的实例维护对应的接口描述信息。为了兼容服务异常上下线导致api网关缓存的服务实例地址列表和实际不一致的情况,api网关可以定时同步服务的接口描述信息。

协议转换过程包括api网关本地缓存维护服务最新的接口描述信息,当接收到前端基于http协议,json格式数据的请求,api网关基于服务的接口描述信息,将json格式数据转换成protobuf格式数据。

协议转发过程包括协议转换完成之后,api网关基于负载均衡算法选择服务一个可用的实例地址,构造基于grpc协议,protobuf格式的请求数据,转发至目标服务实例。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

根据本申请实施例的另一个方面,还提供了一种用于实施上述服务请求的传输方法的服务请求的传输装置。图8是根据本申请实施例的一种可选的服务请求的传输装置的示意图,如图8所示,该装置可以包括:

接收模块82,用于接收前端发送的通过第一通讯协议进行传输的第一服务请求,其中,所述第一服务请求用于请求向第一服务的目标服务接口传输第一格式的数据;

查询模块84,用于查询具有对应关系的服务和接口描述信息,得到所述第一服务对应的目标接口描述信息;

转换模块86,用于使用所述目标接口描述信息将所述第一格式的数据转换为第二格式的数据;

传输模块88,用于通过第二通讯协议将所述第二格式的数据传输至所述第一服务的所述目标服务接口。

需要说明的是,该实施例中的接收模块82可以用于执行本申请实施例中的步骤s202,该实施例中的查询模块84可以用于执行本申请实施例中的步骤s204,该实施例中的转换模块86可以用于执行本申请实施例中的步骤s206,该实施例中的传输模块88可以用于执行本申请实施例中的步骤s208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,通过接口描述信息的查询动态更新第一服务对应的目标接口描述信息,使用动态获取的目标接口描述信息进行数据转换和传输,如果服务的接口发生变更,不需要更新api网关,也统一了各个产品服务的api网关,大大降低了产品服务的开发和维护成本,也能够方便新特性开发和功能优化,便于网关流量的统一管理,从而实现了降低服务请求的传输过程复杂度的技术效果,进而解决了相关技术中服务请求的传输过程复杂度较高的技术问题。

可选地,所述查询模块包括:

查找单元,用于从缓存的具有对应关系的服务和接口描述信息中查找所述第一服务;

查询单元,用于在未查找到所述第一服务的情况下,向所述第一服务查询所述第一服务对应的接口描述信息,并接收所述第一服务返回的所述第一服务对应的所述目标接口描述信息;

第一获取单元,用于在查找到所述第一服务的情况下,从具有对应关系的服务和接口描述信息中获取所述第一服务所对应的所述目标接口描述信息。

可选地,所述查询单元用于:

从所述第一服务对应的服务实例地址列表中获取第一服务实例地址;

向所述第一服务实例地址发送查询请求,其中,所述查询请求用于请求查询所述第一服务对应的接口描述信息;

接收所述第一服务实例地址返回的查询响应,其中,所述查询响应用于指示所述第一服务对应所述目标接口描述信息。

可选地,所述装置还包括:

缓存模块,用于在接收所述第一服务返回的所述第一服务对应的所述目标接口描述信息之后,将具有对应关系的所述第一服务和所述目标接口描述信息缓存到具有对应关系的服务和接口描述信息中。

可选地,所述传输模块包括:

第二获取单元,用于从具有对应关系的服务和服务实例地址列表中获取所述第一服务对应的第一服务实例地址列表;

第三获取单元,用于从所述第一服务实例地址列表中获取第二服务实例地址;

构造单元,用于构造基于所述第二通讯协议的第二服务请求,其中,所述第二服务请求用于请求向所述目标服务接口传输所述第二格式的数据;

传输单元,用于将所述第二服务请求传输至所述第二服务实例地址。

可选地,所述装置还包括:

第一获取模块,用于在从具有对应关系的服务和服务实例地址列表中获取所述第一服务对应的第一服务实例地址列表之前,获取第二服务的服务实例地址更新信息,其中,所述服务实例地址更新信息用于指示所述第二服务对应的第二服务实例地址列表更新为第三服务实例地址列表;

第一更新模块,用于将具有对应关系的服务和服务实例地址列表中具有对应关系的所述第二服务和所述第二服务实例地址列表更新为具有对应关系的所述第二服务和所述第三服务实例地址列表。

可选地,所述装置还包括:

第二获取模块,用于在查询具有对应关系的服务和接口描述信息之前,每隔目标时间间隔获取具有对应关系的服务和接口描述信息中所包括的一个或者多个服务所对应的服务实例地址列表;

访问模块,用于依次访问所述一个或者多个服务中的每个服务对应的服务实例地址列表中的每个服务实例地址;

第二更新模块,用于在获取到目标服务实例地址的服务接口描述更新信息的情况下,使用所述服务接口描述更新信息更新具有对应关系的服务和接口描述信息。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本申请实施例的另一个方面,还提供了一种用于实施上述服务请求的传输方法的服务器或终端。

图9是根据本申请实施例的一种终端的结构框图,如图9所示,该终端可以包括:一个或多个(图中仅示出一个)处理器901、存储器903、以及传输装置905,如图9所示,该终端还可以包括输入输出设备907。

其中,存储器903可用于存储软件程序以及模块,如本申请实施例中的服务请求的传输方法和装置对应的程序指令/模块,处理器901通过运行存储在存储器903内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的服务请求的传输方法。存储器903可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器903可进一步包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置905用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置905包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置905为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器903用于存储应用程序。

处理器901可以通过传输装置905调用存储器903存储的应用程序,以执行下述步骤:

s1,接收前端发送的通过第一通讯协议进行传输的第一服务请求,其中,所述第一服务请求用于请求向第一服务的目标服务接口传输第一格式的数据;

s2,查询具有对应关系的服务和接口描述信息,得到所述第一服务对应的目标接口描述信息;

s3,使用所述目标接口描述信息将所述第一格式的数据转换为第二格式的数据;

s4,通过第二通讯协议将所述第二格式的数据传输至所述第一服务的所述目标服务接口。

采用本申请实施例,提供了一种服务请求的传输的方案。通过接口描述信息的查询动态更新第一服务对应的目标接口描述信息,使用动态获取的目标接口描述信息进行数据转换和传输,如果服务的接口发生变更,不需要更新api网关,也统一了各个产品服务的api网关,大大降低了产品服务的开发和维护成本,也能够方便新特性开发和功能优化,便于网关流量的统一管理,从而实现了降低服务请求的传输过程复杂度的技术效果,进而解决了相关技术中服务请求的传输过程复杂度较高的技术问题。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图9所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图9其并不对上述电子装置的结构造成限定。例如,终端还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行服务请求的传输方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1,接收前端发送的通过第一通讯协议进行传输的第一服务请求,其中,所述第一服务请求用于请求向第一服务的目标服务接口传输第一格式的数据;

s2,查询具有对应关系的服务和接口描述信息,得到所述第一服务对应的目标接口描述信息;

s3,使用所述目标接口描述信息将所述第一格式的数据转换为第二格式的数据;

s4,通过第二通讯协议将所述第二格式的数据传输至所述第一服务的所述目标服务接口。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1