首页 / 专利库 / 变压器和转换设备 / 软开关 / 一种后端微服务架构下的高并发解决方法

一种后端微服务架构下的高并发解决方法

阅读:726发布:2020-05-11

专利汇可以提供一种后端微服务架构下的高并发解决方法专利检索,专利查询,专利分析的服务。并且本 发明 的一种后端微服务架构下的高并发解决方法,涉及后端微服务架构应用技术领域,包括步骤S1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;S2,通过引入的消息队列RabbitMQ对应用进行限流 削峰 ;S3,在 服务器 与后端 数据库 中间引入缓存层;S4,对不重要与不紧急的微服务进行服务降级;S5,对后端主数据库采用分库分表处理;S6,对后端主数据库进行读写分离设置,有效解决了在微服务架构下,当发生高并发 请求 时,web服务后端服务器同时产生大量请求,系统整体处理应对能 力 不足容易造成服务器宕机,系统整体崩溃等情况的发生,保证了企业的正常运行与生产。,下面是一种后端微服务架构下的高并发解决方法专利的具体信息内容。

1.一种后端微服务架构下的高并发解决方法,其特征在于,包括如下步骤:
S1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;
S2,通过引入的消息队列RabbitMQ对应用进行限流削峰
S3,在服务器与后端数据库中间引入缓存层;
S4,对不重要与不紧急的微服务进行服务降级;
S5,对后端主数据库采用分库分表处理;
S6,对后端主数据库进行读写分离设置。
2.根据权利要求1所述的一种后端微服务架构下的高并发解决方法,其特征在于:所述S1包括当多条并发请求需要发送短信服务,系统将发送短信消息传入RabbitMQ中,将短信发送业务独立为单独的微服务,让其查询RabbitMQ队列中的消息,将并发请求转化为串行请求进行处理。
3.根据权利要求1所述的一种后端微服务架构下的高并发解决方法,其特征在于:所述S2包括对系统并发请求设置访问阈值,当达到阈值时启动限流削峰操作,将后续访问请求全部放入消息队列RabbitMQ中,等待服务具备处理后续请求能时,进行队列消息的消费。
4.根据权利要求1所述的一种后端微服务架构下的高并发解决方法,其特征在于:所述S3中的缓存层采用redis数据库进行构建,所述步骤S3包括如下子步骤:
S301,在服务请求过程中有限查询缓存并判断缓存数据是否存在;
S302,当有限查询缓存中缓存数据存在,则直接返回结果;
S303,当有限查询缓存中缓存数据不存在,则查询后端数据库,并判断缓存数据是否存在;
S304,当查询后端数据库中缓存数据存在,则更新redis缓存并返回结果;
S305,当查询后端数据库中缓存数据不存在,则将redis该数据置空并返回结果。
5.根据权利要求4所述的一种后端微服务架构下的高并发解决方法,其特征在于:所述S3还包括子步骤S306轮询redis数据区间,所述步骤S306与所述步骤S301同时进行,完成所述步骤S306后,进行步骤S307刷新即将过时缓存区间数据,然后再次回到所述步骤S306中。
6.根据权利要求1所述的一种后端微服务架构下的高并发解决方法,其特征在于:所述S4通过分布式开关机制实现,且所述步骤S4包括如下子步骤,
S401,配置中心启动定时配置拉取和订阅;
S402,建立配置信息管理后台界面,对配置信息进行管理;
S403,对配置信息进行修改
S404,配置中心定时拉取或在被通知后,拉取配置信息,更新内存中的配置。
7.根据权利要求1所述的一种后端微服务架构下的高并发解决方法,其特征在于:
所述S5中分表采用平分表处理,所述步骤S5中分库采用垂直分库为微服务架构的内嵌属性,且所述分表和分库处理均采用带有虚拟节点的一致性hash算法
8.根据权利要求1所述的一种后端微服务架构下的高并发解决方法,其特征在于:所述S6包括设置主从数据库,进行不同的分工,将数据产生多个备份,所述备份方式包括硬件备份和软件备份。

说明书全文

一种后端微服务架构下的高并发解决方法

[0001]

技术领域

[0002] 本发明涉及后端微服务架构应用技术领域,具体涉及一种后端微服务架构下的高并发解决方法。
[0003]

背景技术

[0004] 随着互联网时代的到来,网民的数量不断增加,在面对访问量呈现指数级上升趋势的当代互联网条件下,高并发解决方案成为了每个互联网公司不得不面对的问题。在解决高并发问题的时候,大多数缺乏技术实的公司选择了堆砌硬件数量,提升硬件的整体配置来解决面对高并发时遇到的访问量激增、带宽不足等问题。硬件平的总体提升能够使系统的整体高并发能力得到一定的增强,但是,光靠堆砌硬件的方式无法彻底解决高并发问题,当硬件系统达到瓶颈无法解决问题,又需要增加硬件,以致达到恶性循环。因此我们有必要针对现有技术的不足而提供一种后端微服务架构下的高并发解决方法。
[0005]

发明内容

[0006] 为了克服现有技术中的不足,本发明的一种后端微服务架构下的高并发解决方法,其能够有效解决服务器宕机,系统整体崩溃等情况的发生。
[0007] 为了实现上述目的,本发明的一种后端微服务架构下的高并发解决方法,包括如下步骤:S1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;
S2,通过引入的消息队列RabbitMQ对应用进行限流削峰
S3,在服务器与后端数据库中间引入缓存层;
S4,对不重要与不紧急的微服务进行服务降级;
S5,对后端主数据库采用分库分表处理;
S6,对后端主数据库进行读写分离设置。
[0008] 优选的,步骤S1包括当多条并发请求需要发送短信服务,系统将发送短信消息传入RabbitMQ中,将短信发送业务独立为单独的微服务,让其查询RabbitMQ队列中的消息,将并发请求转化为串行请求进行处理。
[0009] 优选的,步骤S2包括对系统并发请求设置访问阈值,当达到阈值时启动限流削峰操作,将后续访问请求全部放入消息队列RabbitMQ中,等待服务具备处理后续请求能力时,进行队列消息的消费。
[0010] 优选的,步骤S3中的缓存层采用redis数据库进行构建,步骤S3包括如下子步骤:S301,在服务请求过程中有限查询缓存并判断缓存数据是否存在;
S302,当有限查询缓存中缓存数据存在,则直接返回结果;
S303,当有限查询缓存中缓存数据不存在,则查询后端数据库,并判断缓存数据是否存在;
S304,当查询后端数据库中缓存数据存在,则更新redis缓存并返回结果;
S305,当查询后端数据库中缓存数据不存在,则将redis该数据置空并返回结果。
[0011] 优选的,步骤S3还包括子步骤S306轮询redis数据区间,步骤S306与步骤S301同时进行,完成步骤S306后,进行步骤S307刷新即将过时缓存区间数据,然后再次回到步骤S306中。
[0012] 优选的,步骤S4通过分布式开关机制实现,且步骤S4包括如下子步骤,S401,配置中心启动定时配置拉取和订阅;S402,建立配置信息管理后台界面,对配置信息进行管理;
S403,对配置信息进行修改
S404,配置中心定时拉取或在被通知后,拉取配置信息,更新内存中的配置。
[0013] 优选的,步骤S5中分表采用水平分表处理,步骤S5中分库采用垂直分库为微服务架构的内嵌属性,且分表和分库处理均采用带有虚拟节点的一致性hash算法
[0014] 优选的,步骤S6包括设置主从数据库,进行不同的分工,将数据产生多个备份,备份方式包括硬件备份和软件备份。
[0015] 本发明具有以下有益效果:1.通过对系统引入消息队列RabbitMQ实现应用解耦、异步处理、限流削峰,提升了后端服务器处理速度,降低了在高并发情况发生时后端服务器的压力,提升了系统整体处理高并发的能力;
2.在服务器与后端数据库中间引入redis缓存层,将热点信息与数据进行redis缓存,分担了后端主数据库的压力,提升了系统健壮性;
3.针对高并发情况下存在的全部服务无法正常提供的情况,采用服务降级的方式保证主要服务能够正常进行,而对次要、不紧急的服务进行降级,得到一个较为良好的用户体验;
4.针对系统微服务架构,对后端主数据库采用分库分表处理,使用带虚拟节点的一致性hash算法保证库表定位准确性,同时,减少系统在变化过程中的影响,提升了系统的整体处理速度,适配整个架构体系;
5.针对微服务进行读写分离设置,对比传统单库设置,既保证了系统的读写效率,也降低了数据库面临高并发多路请求时的读写压力,提升了系统的整体稳定性,保证了服务的可靠性。
[0016]附图说明
[0017] 下面结合附图对本发明作进一步描写和阐述。
[0018] 图1是一种后端微服务架构下的高并发解决方法流程图
[0019] 图2是系统引入消息队列RabbitMQ对应用进行解耦、异步处理流程图。
[0020] 图3是通过引入的消息队列RabbitMQ对应用进行限流削峰流程图。
[0021] 图4是在服务器与后端数据库中间引入缓存层流程图。
[0022] 图5是对不重要与不紧急的微服务进行服务降级流程图。
[0023]

具体实施方式

[0024] 下面将结合附图、通过对本发明的优选实施方式的描述,更加清楚、完整地阐述本发明的技术方案。实施例
[0025] 如图1所示,一种后端微服务架构下的高并发解决方法,包括如下步骤:S1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;
S2,通过引入的消息队列RabbitMQ对应用进行限流削峰;
S3,在服务器与后端数据库中间引入缓存层;
S4,对不重要与不紧急的微服务进行服务降级;
S5,对后端主数据库采用分库分表处理;
S6,对后端主数据库进行读写分离设置。
[0026] 作为本发明的一种技术优化方案,如图2所示,步骤S1包括当多条并发请求需要发送短信服务,系统将发送短信消息传入RabbitMQ中,将短信发送业务独立为单独的微服务,让其查询RabbitMQ队列中的消息,将并发请求转化为串行请求进行处理。
[0027] 通过采用上述技术方案,当多条并发请求需要发送短信服务时,系统将发送短信消息置入消息队列中,将短信发送业务独立为单独的微服务,让其查询RabbitMQ队列,消费队列中的短信微服务消费消息将并发请求转化为串行请求进行处理,由于短信发送等此类请求对于消息的实时性要求不高,可以允许一定的延迟性,因此,适合采用消息中间件的方式将该类业务进行解耦,即使接口调用失败也不影响整个执行过程,提升了业务的整体处理速度与能力。
[0028] 作为本发明的一种技术优化方案,如图3所示,步骤S2包括对系统并发请求设置访问阈值,当达到阈值时启动限流削峰操作,将后续访问请求全部放入消息队列RabbitMQ中,等待服务具备处理后续请求能力时,进行队列消息的消费。
[0029] 通过采用上述技术方案,可以防止系统在一瞬间的访问压力过大,导致系统整体崩溃,可采用消息队列对并发请求进行限流与削峰,具体实现为对系统并发请求设置访问阈值,当并发请求进入达到阈值时启动限流削峰操作,将未处理请求放入消息队列,等待服务具备处理后续请求能力时,进行队列消息的消费,达到处理高并发需求,提升系统整体稳定性的效果。
[0030] 作为本发明的一种技术优化方案,如图4所示,步骤S3中的缓存层采用redis数据库进行构建,步骤S3包括如下子步骤:S301,在服务请求过程中有限查询缓存并判断缓存数据是否存在;
S302,当有限查询缓存中缓存数据存在,则直接返回结果;
S303,当有限查询缓存中缓存数据不存在,则查询后端数据库,并判断缓存数据是否存在;
S304,当查询后端数据库中缓存数据存在,则更新redis缓存并返回结果;
S305,当查询后端数据库中缓存数据不存在,则将redis该数据置空并返回结果。
[0031] 通过采用上述技术方案,对于后端数据库的目前企业数据库一般采用MySQL数据库,高并发情况下,大量的读写操作只有后端MySQL数据库的情况下很难保证服务的高效性,因此,需加入缓存层对数据进行缓存,提升数据的读取速度,缓解后端数据库压力,缓存层一般采用redis数据库进行构建,缓存层的主要作用是减少用户直接命中后端数据库的查询,在服务请求过程中有限查询缓存,如果缓存不存在,再进行后端数据库查询,并将查询结果进行缓存,针对具体应用场景,例如用户订单列表信息,根据用户信息进行缓存查询,若缓存查询到则返回,若未查询到则进行后端数据查询,查到后返回并将当前第一页数据进行缓存。针对使用缓存过程中存在的缓存穿透、缓存击穿、缓存崩等问题提出以下解决方法,对于缓存穿透,当查询数据库发现数据不存在时在缓存层中缓存空数据,当后续并发请求到达时也不会查询数据库层而是在缓存层直接返回。。
[0032] 作为本发明的一种技术优化方案,如图4所示,步骤S3还包括子步骤S306轮询redis数据区间,步骤S306与步骤S301同时进行,完成步骤S306后,进行步骤S307刷新即将过时缓存区间数据,然后再次回到步骤S306中。
[0033] 通过采用上述技术方案,针对缓存击穿与缓存雪崩问题,首先对数据进行区间划分,通过单独的轮询线程对缓存区间进行缓存有效时间进行刷新,该方法既解决了缓存击穿与缓存雪崩问题,又不依赖分布式,提高了系统的整体运行效率。
[0034] 作为本发明的一种技术优化方案,如图5所示,步骤S4通过分布式开关机制实现,且步骤S4包括如下子步骤,S401,配置中心启动定时配置拉取和订阅;
S402,建立配置信息管理后台界面,对配置信息进行管理;
S403,对配置信息进行修改;
S404,配置中心定时拉取或在被通知后,拉取配置信息,更新内存中的配置。
[0035] 通过采用上述技术方案,服务降级有自动降级机制,自动降级包含不同的降级策略,主要包括超时降级、故障降级、限流降级和失败多次降级等。超时降级策略是通过设置超时时间timeout和超时重试次数times,并通过异步机制询问服务恢复情况;故障降级策略是通过判断远程调用服务是否挂掉,主要判断标志是通过网络故障、DNS故障、HTTP返回状态码以及RPC服务异常,当远程服务发生故障则直接对服务进行降级;限流降级策略通过设置限流阈值,当超过所设置的阈值时采取暂时屏蔽服务调用的方式进行短暂的服务降级,当流量下降到限流阈值以下时,服务重新开放;失败多次降级策略是针对某些并不稳定的服务,当调用失败次数达到阈值将进行自动降级,与超时降级相同,也需要使用异步机制询问恢复情况。
[0036] 作为本发明的一种技术优化方案,步骤S5中分表采用水平分表处理,步骤S5中分库采用垂直分库为微服务架构的内嵌属性,且分表和分库处理均采用带有虚拟节点的一致性hash算法。
[0037] 通过采用上述技术方案,对于分库操作,当采用微服务架构时,微服务会建立一个对应的数据库,因此,分库采用垂直分库为微服务架构的内嵌属性,但是,此时的分库针为针对整体的系统架构,从单一微服务度来看,还是仅有一个数据库,当面临高并发请求时,主要微服务还是容易发生无法提供服务等问题,此时,分库分表操作就显得格外重要,在实现分库分表过程中的关键就是如何实现库表的定位,而在分布式应用的使用过程中,扩容与收缩是一个重要过程,因此,本着最小化系统影响的目标,选择一致性hash算法实现分库分表的路由,由于原始一致性hash算法的局限性,在处理高并发情况时,容易导致一台节点出现故障,发生崩溃,进而导致整个数据库节点雪崩,无法提供服务,因此需要采用带有虚拟节点的一致性hash算法,实现流量均摊,减小雪崩概率。
[0038] 作为本发明的一种技术优化方案,步骤S6包括设置主从数据库,进行不同的分工,将数据产生多个备份,备份方式包括硬件备份和软件备份。通过采用上述技术方案,由于目前多采用分布式部署方式,因此,单个微服务为了实现处理高并发需求经常采用读写分离方案部署数据库,即设置主从数据库,进行不同的分工,将数据产生多个备份,从而大大降低了传统单个数据库既承担读数据又承担写数据的巨大压力,提升了系统的运行效率,保证了服务的稳定可靠性,在软件技术与系统整体架构设计上进行了多部分的高并发能力提升,系统的整体处理并发能力大大增高,但是,如果当企业的整体发展更进一步时,并发数的数量级有了显著地升高,此时,单纯的依靠技术提升并不能够保证系统正常地运行,需要采用对系统运行硬件平台的扩容,系统扩容分为垂直扩容与水平扩容两部分,垂直扩容就是提升系统中部件的能力,如增加服务器的内存等;水平扩容为增加更多的服务器来提升系统运行硬件的整体能力,系统扩容是与软件技术、架构设计结合起来使用的,只有当两者结合起来才能达到使系统合理运行,处理高并发问题的能力不断提升,同时,又能获得最佳的企业效益,提升设备的性价比。
上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈