一种基于微服务架构的云平台扩展方法及系统技术方案

技术编号:19151559 阅读:28 留言:0更新日期:2018-10-13 10:37
本发明专利技术提供一种基于微服务架构的云平台扩展方法及系统。方法包括:构建服务适配器组件;构建认证缓存服务组件,对用户登录后的状态信息进行缓存;采用前后端分离的微服务模式架构构筑产品化独立的子系统服务;前端用户登录与服务器交互认证;将相关联的子系统服务构筑成完整的系统网络,所述系统还包括对每一个开放式接口的请求进行身份认证的加密模块、节点不稳定时自动化选择最优节点的负载均衡模块和节点响应超时时请求熔断并自动切换线路重试的熔断模块,本发明专利技术通过服务适配器组件的应用,将原本独立的子系统容纳到一个网络系统中,子系统服务扩展更加灵活,本地化的服务注册表机制,更加高效且安全的使用网络连接数据。

A cloud platform extension method and system based on micro service architecture

The invention provides a cloud platform extension method and system based on micro service architecture. The methods include: constructing service adapter component; constructing authentication cache service component to cache user's status information after login; constructing product-independent subsystem services using front-end and back-end separated micro-service mode architecture; front-end user login and server interactive authentication; constructing related subsystem services A complete system network includes an encryption module that authenticates the requests for each open interface, a load balancing module that automatically selects the optimal node when the node is unstable, and a fusing module that responds to a timeout request to fuse and automatically switches the line retry through a service adapter group. The application of the software can accommodate the original independent subsystem into a network system. The subsystem service expansion is more flexible, the localized service registry mechanism is more efficient and safe to use the network connection data.

【技术实现步骤摘要】
一种基于微服务架构的云平台扩展方法及系统
本专利技术涉及互联网应用领域,尤其涉及一种基于微服务架构的云平台扩展方法及系统。
技术介绍
在传统互联应用产品模式下,通常软件由一组开放系统相连,然后借由单点登录或负载均衡等策略,对系统进行串联与性能扩展。现有的系统软件架构多是围绕着单体系统架构,借助单点登录与负载均衡等手段。从需求角度描述,将产品的功能划分为多个子系统,每个模块都是一个完整且独立的系统;从技术角度描述,每个子系统间或是由单点登录进行统一认证进行快速跳转,或是由其它通讯协议促成两个系统间互相通讯;从性能优化的角度描述,子系统大多是整体项目的水平拆分,而每个子系统的性能扩展,都是通过软件或硬件负载均衡的策略实现。随着行业多角度发展,一个行业的系统平台需要越来越多的业务相结合。对于两个独立的业务系统,当彼此间沟通越发紧密时,传统的解决方案就变得灵活不足。尤其是,当业务系统变得模糊时,拆分与合并就变得很难取舍。从子系统交互的角度出发,现有的常规方案,子系统过于独立,当出现必要的通讯或请求关联时,或是忽略通讯安全直接访问,增大了通讯难度和降低了安全性;又或是采用单点登录等共享认证的策略,这就将两个子系统的关系变得过于紧密,与子系统的独立性相背离。传统方式下两个子系统间的数据通信,需要客户端明确知道被请求的服务器网络地址,需要明确声明一组通讯的地址与请求接口,既增加了开发成本,也容易出现配置错误影响访问。而且对于一般互联网产品应用来说,客户端与服务端交互不同于服务端与服务端的交互,传统的负载均衡手段,解决不同类型的两种负载均衡需求,这显然是不合理的。专利技术内容根据上述提出的技术问题,本专利技术提供一种基于微服务架构的云平台扩展方法及系统。本专利技术采用的技术手段如下:一种基于微服务架构的云平台扩展方法,包括:S101、基于服务发现技术构建服务适配器组件,其它的服务组件与工程组件通过所述服务适配器组件进行平台注册,形成一个服务的注册表,所述服务适配器组件根据其他组件的服务状态反馈实时更新注册表;S102、构建认证缓存服务组件,用于对用户登录后的状态信息进行缓存,所述服务适配器组件定时循环注册表,并对其他组件定时发送健康检查,所述服务适配器组件根据其他组件的健康结果反馈实时更新注册表;S103、采用前后端分离的微服务模式架构构筑产品化独立的子系统服务,将产品需求拆解成若干个独立的服务组件,所述服务组件散列的分布在云平台之上,达到松耦合度;不同客户端请求属于自己的服务,每个服务拥有自己的数据库;S2、前端用户登录与服务端交互认证,后端服务接口发送登录请求,登录接口执行登录验证;S3、接口服务创建接口声明组件包,进而将开放接口被其他服务发现,进而将相关联的子系统服务构筑成完整的系统网络。进一步地,所述步骤S101中,注册表更新方法如下:若适配器组件超时失效或者重新上线,适配器组件会对注册表进行一次更新调整;其它组件向适配器组件获取注册表,进而对线上的其它组件进行主动发现;若注册表中的服务状态发生变化,适配器组件向注册表中的其它服务进行广播,各服务触发注册表更新。进一步地,所述步骤S102中,所述构建认证缓存服务组件为单点登录服务,服务核心是对用户登录后的状态信息进行缓存,采用内存数据库作为临时缓存的介质,即便服务网络或系统短时间掉线,重新上线或发布其它重载节点后,可以立刻恢复状态缓存与查询,认证服务并不主动提供统一登录的功能,而是根据系统需求,由节点系统自行提供,所述用户状态缓存是指使用用户登录时随机产生的临时凭证字符串作为唯一标识,数据结构采用JSON格式字符串存储状态数据,包括{user:用户基本信息,roles:用户角色信息,permissions:用户权限信息}。进一步地,所述步骤S2通过以下步骤认证用户信息:S201:UI表现层用户执行登录动作,后端服务接口发送登录请求;S202:登录接口执行登录验证,若验证失败,则返回失败记录,客户端提示登陆失败;若验证成功,则执行步骤S203;S203:依次进行以下操作:生成用户本次登录的动态随机临时凭证;获取用户基本信息;获取用户资源权限数据;合并整理用户状态信息;S204:将状态信息发送至认证缓存服务组件进行单点缓存,若发送失败,则将状态信息缓存到本地,执行S205;若发送成功,直接执行S205;S205:返回用户状态信息结果;客户端缓存用户状态;登录认证完成。本专利技术还公开了一种基于微服务架构的云平台扩展系统,包括:服务适配器交互单元,用于形成服务注册表;认证服务缓存单元,用于缓存用户登录后的状态信息;子系统构筑单元,采用前后端分离的微服务模式构架,用于将产品化独立;交互认证单元,用于前端用户登录与服务端交互认证;系统网络构筑单元,用于整合相关子系统服务;所述交互认证单元包括验证用户信息的交互认证模块、对每一个开放式接口的请求进行身份认证的加密模块、节点不稳定时自动化选择最优节点的负载均衡模块和节点响应超时时请求熔断并自动切换线路重试的熔断模块,所述系统网络构筑单元包括微服务之间联络的接口服务模块和整合子系统服务共享数据的信息优化模块。进一步地,所述加密模块是指微服务组件提供定义RESTFUL通讯接口,服务间通讯以及UI层与服务端通讯均使用《跨平台通信加密认证算法》作为安全通讯协议。进一步地,所述负载均衡模块与熔断模块指的是基于Ribbon与Hystrix技术,配合服务的注册与发现机制获取最新注册表信息,由Hystrix管理每个负载节点的阙值。服务间通信采用Ribbon负载算法,不再由适配器服务转发,直接使用本地注册表进行服务通信请求。进一步地,所述接口服务模块指的是每个接口通过定义对外开发的接口声明类,将所有的接口声明类封装成一个接口组件包,由其它微服务工程依赖,进而将开放接口被其他服务发现。服务获取实例化接口对象,便可以在不需要明确获知被请求服务地址的前提下,由本地服务发现机制进行自动化请求封装。进一步地,所述跨平台通信加密认证算法主要分为授信服务认证标签所对应的过滤认证算法和非授信服务认证标签所对应的过滤认证算法,所述授信服务认证标签所对应的过滤认证算法包括如下步骤:(11)、获取请求参数中的认证秘钥并判断所述请求参数是否为空,是则抛出异常认证失败,否则进行下一步;(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述认证秘钥的属性信息;(13)、基于授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的客户端的服务编码;(14)、判断所述服务编码是否为空,是则抛出异常认证失败,否则进行下一步;(15)、判断所述服务编码是否存在于所设定的本地授信服务注册表中,否则抛出异常认证失败;(16)、确定请求接口所对应的注解认证标签的属性,即允许通过的服务编码数组;(17)、若服务编码数组的数组长度为0,则确定为任何授信服务都可以认证通过;(18)、循环步骤(16)中的服务编码数组,并判断是否存在与步骤(13)的客户端的服务编码相同的值,是则确认认证通过,否则抛出异常认证失败;所述非授信服务认证标签所对应的过滤认证算法包括:游客认证标签所对应的过滤认证算法、已登入认证标签所对应的过滤认证算法、角色认证标签所对应的过滤认证算法以及权限认证标签所对应本文档来自技高网...

【技术保护点】
1.一种基于微服务架构的云平台扩展方法,其特征在于,包括:S101、基于服务发现技术构建服务适配器组件,其它的服务组件与工程组件通过所述服务适配器组件进行平台注册,形成一个服务的注册表,所述服务适配器组件根据其他组件的服务状态反馈实时更新注册表;S102、构建认证缓存服务组件,用于对用户登录后的状态信息进行缓存,所述服务适配器组件定时循环注册表,并对其他组件定时发送健康检查,所述服务适配器组件根据其他组件的健康结果反馈实时更新注册表;S103、采用前后端分离的微服务模式架构构筑产品化独立的子系统服务,将产品需求拆解成若干个独立的服务组件,所述服务组件散列的分布在云平台之上,达到松耦合度;不同客户端请求属于自己的服务,每个服务拥有自己的数据库;S2、前端用户登录与服务端交互认证,后端服务接口发送登录请求,登录接口执行登录验证;S3、接口服务创建接口声明组件包,进而将开放接口被其他服务发现,进而将相关联的子系统服务构筑成完整的系统网络。

【技术特征摘要】
1.一种基于微服务架构的云平台扩展方法,其特征在于,包括:S101、基于服务发现技术构建服务适配器组件,其它的服务组件与工程组件通过所述服务适配器组件进行平台注册,形成一个服务的注册表,所述服务适配器组件根据其他组件的服务状态反馈实时更新注册表;S102、构建认证缓存服务组件,用于对用户登录后的状态信息进行缓存,所述服务适配器组件定时循环注册表,并对其他组件定时发送健康检查,所述服务适配器组件根据其他组件的健康结果反馈实时更新注册表;S103、采用前后端分离的微服务模式架构构筑产品化独立的子系统服务,将产品需求拆解成若干个独立的服务组件,所述服务组件散列的分布在云平台之上,达到松耦合度;不同客户端请求属于自己的服务,每个服务拥有自己的数据库;S2、前端用户登录与服务端交互认证,后端服务接口发送登录请求,登录接口执行登录验证;S3、接口服务创建接口声明组件包,进而将开放接口被其他服务发现,进而将相关联的子系统服务构筑成完整的系统网络。2.根据权利要求1所述的基于微服务架构的云平台扩展方法,其特征在于,所述步骤S101中,注册表更新方法如下:若适配器组件超时失效或者重新上线,适配器组件会对注册表进行一次更新调整;其它组件向适配器组件获取注册表,进而对线上的其它组件进行主动发现;若注册表中的服务状态发生变化,适配器组件向注册表中的其它服务进行广播,各服务触发注册表更新。3.根据权利要求1所述的基于微服务架构的云平台扩展方法,其特征在于,所述步骤S102中,所述构建认证缓存服务组件为单点登录服务,服务核心是对用户登录后的状态信息进行缓存,采用内存数据库作为临时缓存的介质,即便服务网络或系统短时间掉线,重新上线或发布其它重载节点后,可以立刻恢复状态缓存与查询,认证服务并不主动提供统一登录的功能,而是根据系统需求,由节点系统自行提供,所述用户状态缓存是指使用用户登录时随机产生的临时凭证字符串作为唯一标识,数据结构采用JSON格式字符串存储状态数据,包括{user:用户基本信息,roles:用户角色信息,permissions:用户权限信息}。4.根据权利要求1所述的基于微服务架构的云平台扩展方法,其特征在于,所述步骤S2通过以下步骤认证用户信息:S201:UI表现层用户执行登录动作,后端服务接口发送登录请求;S202:登录接口执行登录验证,若验证失败,则返回失败记录,客户端提示登陆失败;若验证成功,则执行步骤S203;S203:依次进行以下操作:生成用户本次登录的动态随机临时凭证;获取用户基本信息;获取用户资源权限数据;合并整理用户状态信息;S204:将状态信息发送至认证缓存服务组件进行单点缓存,若发送失败,则将状态信息缓存到本地,执行S205;若发送成功,直接执行S205;S205:返回用户状态信息结果;客户端缓存用户状态;登录认证完成。5.一种基于微服务架构的云平台扩展系统,其特征在于,包括:服务适配器交互单元,用于形成服务注册表;认证服务缓存单元,用于缓存用户登录后的状态信息;子系统构筑单元,采用前后端分离的微服务模式构架,用于将产品化独立;交互认证单元,用于前端用户登录与服务端交互认证;系统网络构筑单元,用于整合相关子系统服务;所述交互认证单元包括验证用户信息的交互认证模块、对每一个开放式接口的请求进行身份认证的加密模块、节点不稳定时自动化选择最优节点的负载均衡模块和节点响应超时时请求熔断并自动切换线路重试的熔断模块,所述系统网络构筑单元包括微服务之间联络的接口服务模块和整合子系统服务共享数据的信息优化模块。6.根据权利要求5所述的基于微服务架构的云平台扩展系统,其特征在于,所述加密模块是指微服务组件提供定义RESTFUL通讯接口,服务间通讯以及UI层与服务端通讯均使用跨平台通信加密认证算法作为安全通讯协议。7.根据权利要求5所述的基于微服务架构的云平台扩展系统,其特征在于,所述负载均衡模块与熔断模块指的是基于Ribbon与Hystrix技术,配合服务的注册与发现机制获取最新注册表信息,由Hystrix管理每个负载节点的阙值;服务间通信采用Ribbon负载算法,不再由适配器服务转发,直接使用本地注册表进行服务通信请求。8.根据权利要求5所述的基于微服务架构的云平台扩展系统,其特征在于,所述接口服务模块指的是每个接口通过定义对外开发的接口声明类,将所有的接口声明类封装成一个接口组件包,由其它微服务工程依赖,进而将开放接口被其他服务发现,服务获取实例化接口对象,便可以在不需要明确获知被请求服务地址的前提下,由本地服务发现机制进行自动化请求封装。9.根据权利要求6所述的基于微服务架构的云平台扩展系统,所述跨平台通信加密认证算法主要分为授信服务认证标签所对应的过滤认证算法和非授信服务认证标签所对应的过滤认证算法,所述授信服务认证标签所对应的过滤认证算法包括如下步骤:(11)、获取请求参数中的认证秘钥并判断所述请求参数是否为空,是则抛出异常认证失败,否则进行下一步;(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述认证秘钥的属性信息;(13)、基于授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解...

【专利技术属性】
技术研发人员:柳长庆曾明高原孙强张柳代红
申请(专利权)人:聚龙股份有限公司
类型:发明
国别省市:辽宁,21

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

1