一种支持异步模式的分布式微服务框架系统及其实现方法技术方案

技术编号:14701345 阅读:83 留言:0更新日期:2017-02-24 19:13
本发明专利技术公开了一种单点异构数据存储的高可用框架系统,包括:客户端类库ti‑a59‑client,异构数据转换和存储服务模块ti‑a59‑builder,数据写操作日志服务模块ti‑a59‑log‑srv,数据队列框架ti‑queue,消息队列服务模块MQ Server,单点部署的异构数据存储服务器Single Server DataStore,写请求日志服务数据存储模块Write Log DataStore,写请求控制日志数据存储模块Ctrl Log DataStore。此外,本发明专利技术还公开了该系统的实现方法。本发明专利技术除了包含现有框架的单点部署存储的高可用性支持的特性之外,还有具备了更强的跨平台部署能力,可支持更多数据存储类型,支持异构数据之间的数据同步,还可支持节点故障时的数据备份和数据恢复功能的重要特性。

【技术实现步骤摘要】

本专利技术属于计算机领域,涉及一种微服务框架,具体涉及跨协议调用和异步分布式服务回调模式,尤其涉及一种支持异步模式的分布式微服务框架系统;为此,本专利技术还涉及该支持异步模式的分布式微服务框架系统的实现方法。
技术介绍
随着互联网的发展,应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构势在必行,微服务架构就是其中一种实践。微服务架构把单一应用拆解到更细粒度的微服务,每个服务都是可独立部署、独立运行、有完整的服务契约,达到系统高度解耦的目的。现有微服务框架(参阅图1)实现了服务发布和调用等核心基础功能,但在面对长时间处理的服务,高频次服务调用,跨平台的服务调用等场景时,还存在较多问题,主要体现在以下几方面:1)不支持异步分布式服务回调:同步处理可以应对常见的“请求-响应”模式,但长时间的任务处理服务必须需要回调模式来支撑,避免长时间锁定服务线程资源,造成调用端和服务提供者的堵塞情况。现有框架实现了参数回调模式,也就是只支持本地处理程序回调,一旦在服务调用后本地容器崩溃,服务提供者回调后将会出现找不到回调程序,丢失服务数据或出现服务数据不一致的情况。这主要是因为现有框架在调用服务时只保存了本地程序回调的对象引用,对于多节点分布式服务的情况根本没有考虑,这样无法满足需要高稳定性的分布式服务系统需求。2)不支持跨协议的微服务调用:微服务的调用者会涉及到多平台、多通信渠道的情况,如开发移动互联网应用时,移动APP端需要调用微服务,考虑到移动网络的延迟和不稳定等特性,需要使用WEBSOCKET传输数据,而后台微服务提供者是基于队列服务器传输数据。这就需要框架能支持协议和传输器之间的代理转换和报文转换,而现有框架要求所有调用和服务提供者使用统一的协议和传输器,无法满足互联网应用跨平台跨协议模式的开发。3)缺乏对服务的缓存处理机制:现有框架缓存机制实现较简单,只考虑了调用端的本地缓存处理,在面对高频次服务调用时消耗较大,降低服务处理的效率。4)缺乏服务的统一管理:现行框架缺失服务管理,只在服务调用端维护一份本地服务列表文件,难以保证服务的一致性,有效性,无法对服务进行统一调度和管理,整体服务框架维护的复杂度急剧上升。5)服务调用不支持主编程模型的注解模式:现行框架的所有服务调用和暴露都需要在配置文件中详细定义,包括调用服务的接口,方法,回调说明等,无法实现在编程过程中的自述隐喻,和主编程模型无缝嵌入,等于需要在配置文件中重新描述一遍服务接口的调用逻辑,增加了调用实现的工作量和维护的复杂度。
技术实现思路
本专利技术要解决的技术问题在于提供一种支持异步模式的分布式微服务框架系统,通过分解巨大的单体式应用为多个独立服务的方法解决复杂性问题,在功能不变的情况下,应用被分解为多个可管理的服务,每个服务都用RPC(RemoteProcedureCallProtocol——远程过程调用协议)定义出清晰的边界,增加了服务的可管理性和调用的简易高效,解决了如下几方面问题:1)支持异步分布式服务回调,解决回调中出现响应处理单点故障问题;2)支持不同协议和传输层之间的转换,打通全过程微服务调用;3)实现服务发布、调用的主编程模型注解模式,提高实现效率,降低维护复杂度;4)实现调用端和服务提供端的双缓存机制,提高服务调用效率;5)实现统一服务注册中心,集中化管理所有发布服务。为解决上述技术问题,本专利技术提供一种支持异步模式的分布式微服务框架系统,包括服务网关代理层、服务提供端、服务注册中心和服务调用端;所述服务网关代理层包括协议转换器和传输器,所述协议转换器负责外部请求的数据和内部服务支撑的协议格式数据相互转换,所述传输器负责请求数据和响应数据的传输;所述服务提供端负责发布服务到服务注册中心,收到服务请求后进行业务处理;所述服务注册中心负责发布服务登记,服务的查找处理;所述服务调用端根据指定的服务调用信息通过服务注册中心查找服务目的地,发起远程服务的请求并获取服务响应数据;所述传输器在接收到远程调用端的请求数据后,通过协议转换器转换成协议格式数据,然后通过服务调用端程序发送组装好的服务请求给服务提供端,服务提供端发布服务到服务注册中心,服务调用端通过服务注册中心查找服务目的地并获取服务响应数据,所述传输器在收到该服务响应数据后再转发给远程调用端。作为本专利技术优选的技术方案,所述协议转换器主要包括协议处理器和序列化处理器两部分,负责所有服务请求数据和响应数据的组装、序列化和反序列化,翻译成主编程模型可直接处理的数据;所述协议转换器中的协议处理器、序列化处理器都能自由插拔;所述传输器包括WEBSOCKET传输器和HTTP传输器;所述远程调用端包括IOS远程调用端、Android远程调用端和WEB远程调用端。作为本专利技术优选的技术方案,所述服务提供端,包括分布式缓存模块,注解模型,Ti-Lnk协议,回调Stub处理模块以及RabbitMq处理器;所述分布式缓存模块负责根据服务提供接口的参数缓存配置,使用分布式缓存存储中间件,提供数据缓存处理;所述注解模型负责使用主编程语言实现服务注册,服务调用注入,服务参数,缓存配置的注解功能;所述回调Stub处理模块负责存储异步回调服务的描述信息,包括服务名称,使用的协议,服务的接口描述,方法签名,使得服务提供端在异步回调时可以查找到目标服务接收地址;所述RabbitMq处理器负责RabbitMq消息队列的操作,包括在调用服务时把组装好的协议数据发送到服务提供端的监听队列和服务调用端等待响应和异步回调的监听队列;所述Ti-Lnk协议负责服务请求和响应数据的协议组装和拆包处理;所述本地缓存模块负责服务调用过程中的本地缓存处理,主要实现了线程级别的缓存处理;所述服务提供端在业务处理前,服务注册中心会根据配置的缓存服务查找命中的缓存数据,如果命中,则直接返回,否则继续后续业务处理;在服务调用端需要异步服务回调时,将回调Stub信息存储到缓存服务中,当服务请求处理完成后,查找对应的回调信息,并通过服务注册中心查找对应的回调服务目的地,完成回调处理;所有服务提供端启动后会把需要对外发布的服务登记到服务注册中心,包括服务名称,服务目的地寻址信息,服务可调用的接口名称,服务请求的参数类型和内容,服务的回调信息;当服务调用端需要请求时,会使用服务名称查找对应的寻址信息,再进行远程调用。作为本专利技术优选的技术方案,所述服务调用端包括本地缓存模块,注解模型,Ti-Lnk协议以及RabbitMq传输器;所述本地缓存模块负责服务调用过程中的本地缓存处理,主要实现了线程级别的缓存处理;所述注解模型负责使用主编程语言实现服务注册,服务调用注入,服务参数,缓存配置的注解功能;所述RabbitMq处理器负责RabbitMq消息队列的操作,包括在调用服务时把组装好的协议数据发送到服务提供端的监听队列和服务调用端等待响应和异步回调的监听队列;所述Ti-Lnk协议负责服务请求和响应数据的协议组装和拆包处理;所述本地缓存模块负责服务调用过程中的本地缓存处理,主要实现了线程级别的缓存处理;所述服务调用端在发起远程服务的请求前,会根据调用请求信息先查找本地缓存是否存在命中的缓存数据,如果命中,直接返回缓存数据,否则继续后续的远程服务请求。作为本本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/62/201610865152.html" title="一种支持异步模式的分布式微服务框架系统及其实现方法原文来自X技术">支持异步模式的分布式微服务框架系统及其实现方法</a>

【技术保护点】
一种支持异步模式的分布式微服务框架系统,其特征在于,包括服务网关代理层、服务提供端、服务注册中心和服务调用端;所述服务网关代理层包括协议转换器和传输器,所述协议转换器负责外部请求的数据和内部服务支撑的协议格式数据相互转换,所述传输器负责请求数据和响应数据的传输;所述服务提供端负责发布服务到服务注册中心,收到服务请求后进行业务处理;所述服务注册中心负责发布服务登记,服务的查找处理;所述服务调用端根据指定的服务调用信息通过服务注册中心查找服务目的地,发起远程服务的请求并获取服务响应数据;所述传输器在接收到远程调用端的请求数据后,通过协议转换器转换成协议格式数据,然后通过服务调用端程序发送组装好的服务请求给服务提供端,服务提供端发布服务到服务注册中心,服务调用端通过服务注册中心查找服务目的地并获取服务响应数据,所述传输器在收到该服务响应数据后再转发给远程调用端。

【技术特征摘要】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1