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

技术编号:23982904 阅读:10 留言:0更新日期:2020-04-29 12:10
本发明专利技术的一种后端微服务架构下的高并发解决方法,涉及后端微服务架构应用技术领域,包括步骤S1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;S2,通过引入的消息队列RabbitMQ对应用进行限流削峰;S3,在服务器与后端数据库中间引入缓存层;S4,对不重要与不紧急的微服务进行服务降级;S5,对后端主数据库采用分库分表处理;S6,对后端主数据库进行读写分离设置,有效解决了在微服务架构下,当发生高并发请求时,web服务后端服务器同时产生大量请求,系统整体处理应对能力不足容易造成服务器宕机,系统整体崩溃等情况的发生,保证了企业的正常运行与生产。

A high concurrency solution based on back-end microservice architecture

【技术实现步骤摘要】
一种后端微服务架构下的高并发解决方法
本专利技术涉及后端微服务架构应用
,具体涉及一种后端微服务架构下的高并发解决方法。
技术介绍
随着互联网时代的到来,网民的数量不断增加,在面对访问量呈现指数级上升趋势的当代互联网条件下,高并发解决方案成为了每个互联网公司不得不面对的问题。在解决高并发问题的时候,大多数缺乏技术实力的公司选择了堆砌硬件数量,提升硬件的整体配置来解决面对高并发时遇到的访问量激增、带宽不足等问题。硬件水平的总体提升能够使系统的整体高并发能力得到一定的增强,但是,光靠堆砌硬件的方式无法彻底解决高并发问题,当硬件系统达到瓶颈无法解决问题,又需要增加硬件,以致达到恶性循环。因此我们有必要针对现有技术的不足而提供一种后端微服务架构下的高并发解决方法。
技术实现思路
为了克服现有技术中的不足,本专利技术的一种后端微服务架构下的高并发解决方法,其能够有效解决服务器宕机,系统整体崩溃等情况的发生。为了实现上述目的,本专利技术的一种后端微服务架构下的高并发解决方法,包括如下步骤:S1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;S2,通过引入的消息队列RabbitMQ对应用进行限流削峰;S3,在服务器与后端数据库中间引入缓存层;S4,对不重要与不紧急的微服务进行服务降级;S5,对后端主数据库采用分库分表处理;S6,对后端主数据库进行读写分离设置。优选的,步骤S1包括当多条并发请求需要发送短信服务,系统将发送短信消息传入RabbitMQ中,将短信发送业务独立为单独的微服务,让其查询RabbitMQ队列中的消息,将并发请求转化为串行请求进行处理。优选的,步骤S2包括对系统并发请求设置访问阈值,当达到阈值时启动限流削峰操作,将后续访问请求全部放入消息队列RabbitMQ中,等待服务具备处理后续请求能力时,进行队列消息的消费。优选的,步骤S3中的缓存层采用redis数据库进行构建,步骤S3包括如下子步骤:S301,在服务请求过程中有限查询缓存并判断缓存数据是否存在;S302,当有限查询缓存中缓存数据存在,则直接返回结果;S303,当有限查询缓存中缓存数据不存在,则查询后端数据库,并判断缓存数据是否存在;S304,当查询后端数据库中缓存数据存在,则更新redis缓存并返回结果;S305,当查询后端数据库中缓存数据不存在,则将redis该数据置空并返回结果。优选的,步骤S3还包括子步骤S306轮询redis数据区间,步骤S306与步骤S301同时进行,完成步骤S306后,进行步骤S307刷新即将过时缓存区间数据,然后再次回到步骤S306中。优选的,步骤S4通过分布式开关机制实现,且步骤S4包括如下子步骤,S401,配置中心启动定时配置拉取和订阅;S402,建立配置信息管理后台界面,对配置信息进行管理;S403,对配置信息进行修改;S404,配置中心定时拉取或在被通知后,拉取配置信息,更新内存中的配置。优选的,步骤S5中分表采用水平分表处理,步骤S5中分库采用垂直分库为微服务架构的内嵌属性,且分表和分库处理均采用带有虚拟节点的一致性hash算法。优选的,步骤S6包括设置主从数据库,进行不同的分工,将数据产生多个备份,备份方式包括硬件备份和软件备份。本专利技术具有以下有益效果:1.通过对系统引入消息队列RabbitMQ实现应用解耦、异步处理、限流削峰,提升了后端服务器处理速度,降低了在高并发情况发生时后端服务器的压力,提升了系统整体处理高并发的能力;2.在服务器与后端数据库中间引入redis缓存层,将热点信息与数据进行redis缓存,分担了后端主数据库的压力,提升了系统健壮性;3.针对高并发情况下存在的全部服务无法正常提供的情况,采用服务降级的方式保证主要服务能够正常进行,而对次要、不紧急的服务进行降级,得到一个较为良好的用户体验;4.针对系统微服务架构,对后端主数据库采用分库分表处理,使用带虚拟节点的一致性hash算法保证库表定位准确性,同时,减少系统在变化过程中的影响,提升了系统的整体处理速度,适配整个架构体系;5.针对微服务进行读写分离设置,对比传统单库设置,既保证了系统的读写效率,也降低了数据库面临高并发多路请求时的读写压力,提升了系统的整体稳定性,保证了服务的可靠性。附图说明下面结合附图对本专利技术作进一步描写和阐述。图1是一种后端微服务架构下的高并发解决方法流程图。图2是系统引入消息队列RabbitMQ对应用进行解耦、异步处理流程图。图3是通过引入的消息队列RabbitMQ对应用进行限流削峰流程图。图4是在服务器与后端数据库中间引入缓存层流程图。图5是对不重要与不紧急的微服务进行服务降级流程图。具体实施方式下面将结合附图、通过对本专利技术的优选实施方式的描述,更加清楚、完整地阐述本专利技术的技术方案。实施例如图1所示,一种后端微服务架构下的高并发解决方法,包括如下步骤:S1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;S2,通过引入的消息队列RabbitMQ对应用进行限流削峰;S3,在服务器与后端数据库中间引入缓存层;S4,对不重要与不紧急的微服务进行服务降级;S5,对后端主数据库采用分库分表处理;S6,对后端主数据库进行读写分离设置。作为本专利技术的一种技术优化方案,如图2所示,步骤S1包括当多条并发请求需要发送短信服务,系统将发送短信消息传入RabbitMQ中,将短信发送业务独立为单独的微服务,让其查询RabbitMQ队列中的消息,将并发请求转化为串行请求进行处理。通过采用上述技术方案,当多条并发请求需要发送短信服务时,系统将发送短信消息置入消息队列中,将短信发送业务独立为单独的微服务,让其查询RabbitMQ队列,消费队列中的短信微服务消费消息将并发请求转化为串行请求进行处理,由于短信发送等此类请求对于消息的实时性要求不高,可以允许一定的延迟性,因此,适合采用消息中间件的方式将该类业务进行解耦,即使接口调用失败也不影响整个执行过程,提升了业务的整体处理速度与能力。作为本专利技术的一种技术优化方案,如图3所示,步骤S2包括对系统并发请求设置访问阈值,当达到阈值时启动限流削峰操作,将后续访问请求全部放入消息队列RabbitMQ中,等待服务具备处理后续请求能力时,进行队列消息的消费。通过采用上述技术方案,可以防止系统在一瞬间的访问压力过大,导致系统整体崩溃,可采用消息队列对并发请求进行限流与削峰,具体实现为对系统并发请求设置访问阈值,当并发请求进入达到阈值时启动限流削峰操作,将未处理请求放入消息队列,等待服务具备处理后续请求能力时,进行队列消息的消费,达到处理高并发需求,提升系统整体稳定性的效果。作为本专利技术的一种本文档来自技高网...

【技术保护点】
1.一种后端微服务架构下的高并发解决方法,其特征在于,包括如下步骤:/nS1,系统引入消息队列RabbitMQ对应用进行解耦、异步处理;/nS2,通过引入的消息队列RabbitMQ对应用进行限流削峰;/nS3,在服务器与后端数据库中间引入缓存层;/nS4,对不重要与不紧急的微服务进行服务降级;/nS5,对后端主数据库采用分库分表处理;/nS6,对后端主数据库进行读写分离设置。/n

【技术特征摘要】
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,当有限查询缓存中缓存数据不存在,则查询后端数...

【专利技术属性】
技术研发人员:王鹏程
申请(专利权)人:紫光云南京数字技术有限公司
类型:发明
国别省市:江苏;32

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

1