【技术实现步骤摘要】
本专利技术属于计算机领域,涉及一种微服务框架,具体涉及跨协议调用和异步分布式服务回调模式,尤其涉及一种支持异步模式的分布式微服务框架系统;为此,本专利技术还涉及该支持异步模式的分布式微服务框架系统的实现方法。
技术介绍
随着互联网的发展,应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构势在必行,微服务架构就是其中一种实践。微服务架构把单一应用拆解到更细粒度的微服务,每个服务都是可独立部署、独立运行、有完整的服务契约,达到系统高度解耦的目的。现有微服务框架(参阅图1)实现了服务发布和调用等核心基础功能,但在面对长时间处理的服务,高频次服务调用,跨平台的服务调用等场景时,还存在较多问题,主要体现在以下几方面:1)不支持异步分布式服务回调:同步处理可以应对常见的“请求-响应”模式,但长时间的任务处理服务必须需要回调模式来支撑,避免长时间锁定服务线程资源,造成调用端和服务提供者的堵塞情况。现有框架实现了参数回调模式,也就是只支持本地处理程序回调,一旦在服务调用后本地容器崩溃,服务提供者回调后将会出现找不到回调程序,丢失服务数据或出现服务数据不一致的情况。这主要是因为现有框架在调用服务时只保存了本地程序回调的对象引用,对于多节点分布式服务的情况根本没有考虑,这样无法满足需要高稳定性的分布式服务系统需求。2)不支持跨协议的微服务调用:微服务的调用者会涉及到多平台、多通信渠道的情况,如开发移动互联网应用时,移动APP端需要调用微服务,考虑到移动网络的延迟和不稳定等特性,需要使用WEBSOCKET传输数据,而后台微服务提供者是基于队列服务器传输数据。这就 ...
【技术保护点】
一种支持异步模式的分布式微服务框架系统,其特征在于,包括服务网关代理层、服务提供端、服务注册中心和服务调用端;所述服务网关代理层包括协议转换器和传输器,所述协议转换器负责外部请求的数据和内部服务支撑的协议格式数据相互转换,所述传输器负责请求数据和响应数据的传输;所述服务提供端负责发布服务到服务注册中心,收到服务请求后进行业务处理;所述服务注册中心负责发布服务登记,服务的查找处理;所述服务调用端根据指定的服务调用信息通过服务注册中心查找服务目的地,发起远程服务的请求并获取服务响应数据;所述传输器在接收到远程调用端的请求数据后,通过协议转换器转换成协议格式数据,然后通过服务调用端程序发送组装好的服务请求给服务提供端,服务提供端发布服务到服务注册中心,服务调用端通过服务注册中心查找服务目的地并获取服务响应数据,所述传输器在收到该服务响应数据后再转发给远程调用端。
【技术特征摘要】
1.一种支持异步模式的分布式微服务框架系统,其特征在于,包括服务网关代理层、服务提供端、服务注册中心和服务调用端;所述服务网关代理层包括协议转换器和传输器,所述协议转换器负责外部请求的数据和内部服务支撑的协议格式数据相互转换,所述传输器负责请求数据和响应数据的传输;所述服务提供端负责发布服务到服务注册中心,收到服务请求后进行业务处理;所述服务注册中心负责发布服务登记,服务的查找处理;所述服务调用端根据指定的服务调用信息通过服务注册中心查找服务目的地,发起远程服务的请求并获取服务响应数据;所述传输器在接收到远程调用端的请求数据后,通过协议转换器转换成协议格式数据,然后通过服务调用端程序发送组装好的服务请求给服务提供端,服务提供端发布服务到服务注册中心,服务调用端通过服务注册中心查找服务目的地并获取服务响应数据,所述传输器在收到该服务响应数据后再转发给远程调用端。2.如权利要求1所述的系统,其特征在于,所述协议转换器主要包括协议处理器和序列化处理器两部分,负责所有服务请求数据和响应数据的组装、序列化和反序列化,翻译成主编程模型可直接处理的数据;所述协议转换器中的协议处理器、序列化处理器都能自由插拔;所述传输器包括WEBSOCKET传输器和HTTP传输器;所述远程调用端包括IOS远程调用端、Android远程调用端和WEB远程调用端。3.如权利要求1所述的系统,其特征在于,所述服务提供端,包括分布式缓存模块,注解模型,Ti-Lnk协议,回调Stub处理模块以及RabbitMq处理器;所述分布式缓存模块负责根据服务提供接口的参数缓存配置,使用分布式缓存存储中间件,提供数据缓存处理;所述注解模型负责使用主编程语言实现服务注册,服务调用注入,服务参数,缓存配置的注解功能;所述回调Stub处理模块负责存储异步回调服务的描述信息,包括服务名称,使用的协议,服务的接口描述,方法签名,使得服务提供端在异步回调时可以查找到目标服务接收地址;所述RabbitMq处理器负责RabbitMq消息队列的操作,包括在调用服务时把组装好的协议数据发送到服务提供端的监听队列和服务调用端等待响应和异步回调的监听队列;所述Ti-Lnk协议负责服务请求和响应数据的协议组装和拆包处理;所述本地缓存模块负责服务调用过程中的本地缓存处理,主要实现了线程级别的缓存处理;所述服务提供端在业务处理前,服务注册中心会根据配置的缓存服务查找命中的缓存数据,如果命中,则直接返回,否则继续后续业务处理;在服务调用端需要异步服务回调时,将回调Stub信息存储到缓存服务中,当服务请求处理完成后,查找对应的回调信息,并通过服务注册中心查找对应的回调服务目的地,完成回调处理;所有服务提供端启动后会把需要对外发布的服务登记到服务注册中心,包括服务名称,服务目的地寻址信息,服务可调用的接口名称,服务请求的参数类型和内容,服务的回调信息;当服务调用端需要请求时,会使用服务名称查找对应的寻址信息,再进行远程调用。4.如权利要求1所述的系统,其特征在于,所述服务调用端包括本地缓存模块,注解模型,Ti-Lnk协议以及RabbitMq传输器;所述本地缓存模块负责服务调用过程中的本地缓存处理,主要实现了线程级别的缓存处理;所述注解模型负责使用主编程语言实现服务注册,服务调用注入,服务参数,缓存配置的注解功能;所述RabbitMq处理器负责RabbitMq消息队列的操作,包括在调用服务时把组装好的协议数据发送到服务提供端的监听队列和服务调用端等待响应和异步回调的监听队列;所述Ti-Lnk协议负责服务请求和响应数据的协议组装和拆包处理;所述本地缓存模块负责服务调用过程中的本地缓存处理,主要实现了线程级别的缓存处理;所述服务调用端在发起远程服务的请求前,会根据调用请求信息先查找本地缓存是否存在命中的缓存数据,如果命中,直接返回缓存数据...
【专利技术属性】
技术研发人员:岑谱洲,肖齐,
申请(专利权)人:上海和付信息技术有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。