一种轻量级的微服务架构实现方法技术

技术编号:18292421 阅读:97 留言:0更新日期:2018-06-24 08:26
本发明专利技术提供了一种轻量级的微服务架构实现方法,能够有效保障架构安全性与稳定性,该轻量级的微服务架构实现方法包括:服务中心模块包括服务信息保存子模块和服务信息提供子模块,用于微服务信息的保存与提供;流量接入模块包括分析处理子模块和差错控制子模块,接入外部流量并按策略对流量做处理;智能路由模块包括负载控制子模块、安全认证子模块和路由分配子模块,将请求按策略分发到业务服务模块;业务服务模块向数据服务模块发送业务请求;数据服务模块用于处理业务请求,并对请求的内容执行具体的数据库操作。通过该轻量级的微服务架构实现方法大大提高保证微服务系统的安全性和稳定性的能力,减轻微服务系统的开发负担。

【技术实现步骤摘要】
一种轻量级的微服务架构实现方法
本专利技术涉及微服务
,具体涉及一种轻量级的微服务架构实现方法。
技术介绍
微服务架构是在传统软件应用架构基础之上,按照业务能力将系统拆分成多个服务,每个服务都是一个独立应用的方案,一个服务对应多个实例,达到模块化、解耦合、高可用的能力的效果。微服务架构使服务更加稳定可靠,产品迭代更加方便和快速,同时极大程度上方便了运维。每个微服务的部署都不影响其他服务,都是独立的,区别于传统应用,非常利于持续集成和持续交付。面向服务的架构使得前后台分离得更加彻底,后台提供的服务都是Rest服务,与平台语言无关,前台框架只要通过HTTP请求就可以获取服务,将返回的JSON结果显示在H5页面上,因为没有耦合,前台框架可以自由更换。微服务中服务间调用安全性是微服务架构中存在的问题,如何让服务做到内部服务调用互相信任,对所有请求实行统一的流量接入时保证服务安全性,是目前我们所要解决的问题。微服务中服务调用稳定性也是我们所要解决的问题,由于所有业务拆分成各个服务,每个服务间都会存在互相调用,一个服务的奔溃往往导致整个系统的奔溃,系统需要有容错机制。一个微服务系统往往非常庞大,针对非常复杂的业务,拆分的微服务成千上万,在这个数量级,每个微服务用不同的数据库,每个微服务都需要写一套自己数据调用代码,代码的重复量非常大,我们的工作也需要将这部分抽离出一个公共的模块,使原本非常重量级的系统轻量化。对于使用微服务架构的业务系统,数据访问量也非常庞大,数据访问负载往往成为系统的瓶颈,如何使系统架构能灵活的应变不同的数据访问量也是我们所做的工作。专利技术内容本专利技术提供了一种轻量级的微服务架构实现方法,解决现有技术中如何保障系统中内部服务调用互相信任、如何保障系统中的服务安全性、如何保障系统中的服务能够稳定的工作、如何保障系统解决数据访问瓶颈问题,同时也针对微服务设计思想中设计数据访问部分作出了修改,抽离出大量公共代码,使系统架构整体更加轻量级。为实现上述目的,本专利技术采用了如下的技术方案:一种轻量级的微服务架构实现方法,包括如下步骤:(1)开发者将所有业务服务信息都保存到服务中心模块上,服务中心模块接收且保存服务注册信息,为其他模块提供服务的基本信息;(2)当用户通过浏览器或者移动端访问数据服务系统时,请求被封装成流量进入流量接入模块;(3)流量接入模块接收流量,先根据检查策略对流量差错控制,再根据处理策略对流量分析处理后传送到智能路由模块;(4)当流量到达智能路由模块时,先根据保障策略对流量负载控制,接着根据判断策略对流量安全认证,最后根据路由策略将流量拆包分发到业务服务模块;(5)根据不同的请求,业务服务模块向数据服务模块直接发送不同的操作命令;(6)数据服务模块将数据库的读写操作服务化,按照不同的操作命令执行具体的数据库操作。在步骤(2)中的流量接入模块包括分析处理子模块和差错控制子模块;其中,分析处理子模块执行处理策略的具体操作步骤为:首先,通过开放的API网关拦截流量中的HTTP请求;然后,根据HTTP请求对应的HTTP结构参数进行对应处理;差错控制子模块执行检查策略的具体步骤为:S11,检查HTTP请求的报文结构是否缺失,若缺失则丢掉该HTTP请求,若未缺失则执行S12;S12,判断HTTP的报文结构是否存在错误,若错误则返回失败,若未出现错误则传送到分析处理子模块。在步骤(3)中的智能路由模块包括负载控制子模块、安全认证子模块和路由分配子模块;其中,负载控制模块用于保障系统稳定性以防止系统崩溃,负载控制模块执行的保障策略具体为以下情况:S21、判断短时间内是否有超出系统负荷的并发请求,若有则只处理负荷量以内的请求,同时负荷量以外的请求返回失败,若无则响应全部请求,其中若有则只处理负荷量以内的请求时以及若无则响应全部请求时均先进行步骤22;S22、判断短时间内响应的请求中是否有两个以上的针对同一服务的请求,若有则步骤S23,若否则传送到安全认证子模块;S23、判断针对同一服务的请求数量是否超出该服务负荷量,若是则直接返回失败,若否则传送到安全认证子模块;安全认证子模块执行的判断策略具体为:S31、判断请求IP段是否为系统可信IP段,若是则进行步骤S32,若否则返回失败;S32、判断请求IP段是否携带系统安全认证参数,若是则传送至路由分配子模块,若否则返回失败;路由分配子模块执行路由策略的具体步骤为:S41、通过服务名称从服务中心模块获取服务所在的IP地址和端口号,端口号即为服务地址;S42、根据IP地址和端口号将流量拆包分发给业务服务模块。所述业务服务模块包括有若干个不同的业务服务层,在步骤(5)中的业务服务模块具体操作为:根据接收到的IP地址、接收到的端口号以及业务服务模块内存储的可执行业务列表判断是否有对应的业务服务层处理IP地址和端口号对应的服务,若有则将操作命令发给数据服务模块;其中,可执行业务列表内记录有业务服务名、业务服务实例数量、业务服务实例IP地址、业务服务实例端口号以及业务服务实例健康状态。在步骤(4)中的路由策略具体为:当响应每个请求时需要为每个请求进行服务,而该轻量级的微服务架构中对于一个服务有至少一个实例,响应时首先判断实例的数量是否大于1个,若实例的数量大于1个,则选择所有实例中平均响应时间最短的实例响应服务;若实例的数量等于1个,则选择该实例响应服务。在步骤(6)中的读写操作服务化的具体做法是:第一、准备工作:将数据服务模块分为数据库读写层和数据处理层,数据库读写层由数据库读写操作功能封装形成,数据处理层将数据库读写层返回的结果封装成业务系统需要的数据格式并返回;第二、响应步骤:当操作命令送达到将数据服务模块时,操作命令首先到达数据库读写层,数据库读写层读写底层数据库并返回初步结果,然后数据处理层将初步结果封装成具体的数据格式并返回。所述系统安全认证参数为HTTP请求头中一个或者多个字段,验证时则通过验证单个字段值来进行安全认证,或通过验证多个字段值来进行安全认证。相比于现有技术,本专利技术具有如下有益效果:1、通过安全认证子模块保证系统安全性,防止系统遭受恶意攻击;通过负载控制子模块丢弃无效请求,防止系统遭受高并发攻击;通过差错控制子模块避免错误请求,提高系统的吞吐量,防止系统资源不必要的浪费;3、智能路由模块根据策略选择最优的业务服务实例以改善用户体验;4、本专利技术具有显著的解耦合和高可用的特点,针对微服务中每一个服务对应设计,所有微服务共享一套数据服务,数据服务模块将数据库读写操作服务化,使得数据服务模块也具有微服务的性质,可以生成多个实例来做到数据读写高可用,同时也能够选择出响应最优的实例来执行具体的操作;5、将公共的数据读写部分抽离成一个独立的数据服务模块,极大的节省了不必要的重复代码,同时数据服务模块本质上也是微服务,可以存在多个实例,可以根据业务量灵活调整实例量来解决代码层面数据访问瓶颈问题,同时由于微服务部署的灵活性,在数据访问量超过系统数据库服务器硬件负荷时,可以将数据服务模块部署到更高配置的硬件设施上,从而解决硬件层面的数据访问瓶颈问题。本专利技术的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本专利技术的研究和实践而为本领域的技术人本文档来自技高网...
一种轻量级的微服务架构实现方法

【技术保护点】
1.一种轻量级的微服务架构实现方法,其特征在于,包括如下步骤:(1)开发者将所有业务服务信息都保存到服务中心模块上,服务中心模块接收且保存服务注册信息,为其他模块提供服务的基本信息;(2)当用户通过浏览器或者移动端访问数据服务系统时,请求被封装成流量进入流量接入模块;(3)流量接入模块接收流量,先根据检查策略对流量差错控制,再根据处理策略对流量分析处理后传送到智能路由模块;(4)当流量到达智能路由模块时,先根据保障策略对流量负载控制,接着根据判断策略对流量安全认证,最后根据路由策略将流量拆包分发到业务服务模块;(5)根据不同的请求,业务服务模块向数据服务模块直接发送不同的操作命令;(6)数据服务模块将数据库的读写操作服务化,按照不同的操作命令执行具体的数据库操作。

【技术特征摘要】
1.一种轻量级的微服务架构实现方法,其特征在于,包括如下步骤:(1)开发者将所有业务服务信息都保存到服务中心模块上,服务中心模块接收且保存服务注册信息,为其他模块提供服务的基本信息;(2)当用户通过浏览器或者移动端访问数据服务系统时,请求被封装成流量进入流量接入模块;(3)流量接入模块接收流量,先根据检查策略对流量差错控制,再根据处理策略对流量分析处理后传送到智能路由模块;(4)当流量到达智能路由模块时,先根据保障策略对流量负载控制,接着根据判断策略对流量安全认证,最后根据路由策略将流量拆包分发到业务服务模块;(5)根据不同的请求,业务服务模块向数据服务模块直接发送不同的操作命令;(6)数据服务模块将数据库的读写操作服务化,按照不同的操作命令执行具体的数据库操作。2.根据权利要求1所述的一种轻量级的微服务架构实现方法,其特征在于,步骤(2)中的流量接入模块包括分析处理子模块和差错控制子模块;其中,分析处理子模块执行处理策略的具体操作步骤为:首先,通过开放的API网关拦截流量中的HTTP请求;然后,根据HTTP请求对应的HTTP结构参数进行对应处理;差错控制子模块执行检查策略的具体步骤为:S11,检查HTTP请求的报文结构是否缺失,若缺失则丢掉该HTTP请求,若未缺失则执行S12;S12,判断HTTP的报文结构是否存在错误,若错误则返回失败,若未出现错误则传送到分析处理子模块。3.根据权利要求1所述的一种轻量级的微服务架构实现方法,其特征在于,步骤(3)中的智能路由模块包括负载控制子模块、安全认证子模块和路由分配子模块;其中,负载控制模块用于保障系统稳定性以防止系统崩溃,负载控制模块执行的保障策略具体为以下情况:S21、判断短时间内是否有超出系统负荷的并发请求,若有则只处理负荷量以内的请求,同时负荷量以外的请求返回失败,若无则响应全部请求,其中若有则只处理负荷量以内的请求时以及若无则响应全部请求时均先进行步骤22;S22、判断短时间内响应的请求中是否有两个以上的针对同一服务的请求,若有则步骤S23,若否则传送到安全认证子模块;S23、判断针对同一服务的请求数量是否超出该服务负荷量,若是则直接返回失败,若否则传送到...

【专利技术属性】
技术研发人员:高英成昱霖
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

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

1