本申请涉及计算机,特别是涉及一种自适应负载均衡方法及系统。
背景技术:
1、目前市面上已经存在的微服务注册中心种类很多,如zookeeper、eureka、consul、nocos等,但这些微服务注册中心都存在着集成度高、内部复杂、功能组件丰富多等特点,也正因为这些特点,导致这些微服务注册中心在使用过程中功能组件过于丰富,从而使系统过于臃肿,当执行系统任务时,会发生任务拥塞,无法及时把控以及无法迅速解决拥塞问题,从而导致维护成本高。
2、鉴于此,提供一种可满足高并发的自适应负载均衡是本领域技术人员亟待解决的技术问题。
技术实现思路
1、为解决上述技术问题,本发明的目的为提供一种自适应负载均衡方法及系统;通过使用redis作为注册中心,celery作为监控,可以快速处理同一时间内多个告警异步任务,避免发生任务拥塞,从而实现任务高并发,并保证任务的可靠性。
2、本发明的第一个目的为提供一种自适应负载均衡方法;
3、本发明提供的技术方案如下:
4、一种自适应负载均衡方法,包括如下步骤:
5、利用redis集群的发布订阅机制建立微服务注册中心;
6、通过所述微服务注册中心将应用的服务信息保存至所述redis集群中;
7、通过celery服务发布定时任务监控所有服务器,以获取所述服务器的资源空闲情况;
8、根据所述资源空闲情况和所述服务信息获取服务吞吐量;
9、通过查询本地的所述服务信息调用吞吐量高的服务,以获取目标服务。
10、优选地,所述通过所述微服务注册中心将应用的服务信息保存至所述redis中,具体包括步骤:
11、通过所述微服务注册中心将应用的服务信息以hash数据结构格式保存至所述redis中。
12、优选地,所述通过celery服务发布定时任务监控所有服务器,以获取所述服务器的资源空闲情况之前,还包括步骤:
13、通过zabbix将一段时间间隔内的调用成功与调用总数之间的比例推送给所述celey服务;
14、所述celery服务根据所述比例与预设比例阈值进行判断。
15、优选地,所述celery服务根据所述比例与预设比例阈值进行判断,具体包括步骤:
16、当所述比例小于等于所述预设比例阈值时,所述celery服务更新所述服务信息中的可用性为false,则该服务不能被调用;
17、当所述比例大于所述预设比例阈值时,所述celery服务更新所述服务信息中的可用性为true,则该服务能被调用;
18、其中,所述服务信息包括:所述可用性。
19、优选地,所述根据所述资源空闲情况和所述服务信息获取服务吞吐量,具体包括步骤:
20、将所述资源空闲情况和所述服务信息通过最小二乘法计算服务吞吐量,其中,所述服务吞吐量的具体计算公式为:
21、tpsθ(x1,x2,x3,x4)=θ0+θ1x1+θ2x2+θ3x3+θ4x4
22、其中,x1表示服务器此时此刻的空闲内存;x2表示服务器此时此刻的空闲cpu;x3表示服务器此时此刻的空闲带宽;x4表示服务器此时此刻的i/o空闲情况。
23、优选地,所述通过celery服务发布定时任务监控所有服务器,以获取所述服务器的资源空闲情况之后,还包括步骤:
24、通过所述celery服务的celery生产者将监控情况推送给celery服务中的redis;
25、当celery执行者检测到有任务时,执行脚本,以更新所述redis集群中的所述服务信息。
26、优选地,所述通过查询本地的所述服务信息调用吞吐量高的服务,以获取目标服务之前,还包括步骤:
27、定时将保存在redis集群中的所述服务信息拉取到本地,,以更新本地的服务信息。
28、本发明的第二个目的为提供一种自适应负载均衡系统;
29、本发明提供的技术方案如下:
30、一种自适应负载均衡系统,包括:建立模块、保存模块、监控模块、获取模块和调用模块;
31、所述建立模块,用于利用redis集群的发布订阅机制建立微服务注册中心;
32、所述保存模块,用于通过所述微服务注册中心将应用的服务信息保存至所述redis集群中;
33、所述监控模块,用于通过celery服务发布定时任务监控所有服务器,以获取所述服务器的资源空闲情况;
34、所述获取模块,用于根据所述资源空闲情况和所述服务信息获取服务吞吐量;
35、所述调用模块,用于通过查询本地的所述服务信息调用吞吐量高的服务,以获取目标服务。
36、本发明的第三个目的为提供一种电子设备;
37、本发明提供的技术方案如下:
38、一种电子设备,包括:
39、至少一个处理器;以及
40、与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行自适应负载均衡方法任意一项所述的方法步骤。
41、本发明的第四个目的为提供一种计算机可读存储介质;
42、本发明提供的技术方案如下:
43、一种计算机可读存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于使计算机执行自适应负载均衡方法任意一项所述的方法步骤。
44、本发明提供了一种自适应负载均衡方法,包括如下步骤:利用redis集群的发布订阅机制建立微服务注册中心;通过所述微服务注册中心将应用的服务信息保存至所述redis集群中;通过celery服务发布定时任务监控所有服务器,以获取所述服务器的资源空闲情况;根据所述资源空闲情况和所述服务信息获取服务吞吐量;通过查询本地的所述服务信息调用吞吐量高的服务,以获取目标服务;本方法使用redis作为注册中心,celery作为监控,可以快速处理同一时间内多个告警异步任务,避免发生任务拥塞,从而实现任务高并发,并保证任务的可靠性。
45、本发明还提供了一种自适应负载均衡系统,由于该系统与该自适应负载均衡方法解决相同的技术问题,属于相同的技术构思,理应具有相同的有益效果,在此不再赘述。
1.一种自适应负载均衡方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的自适应负载均衡方法,其特征在于,所述通过所述微服务注册中心将应用的服务信息保存至所述redis中,具体包括步骤:
3.根据权利要求1所述的自适应负载均衡方法,其特征在于,所述通过celery服务发布定时任务监控所有服务器,以获取所述服务器的资源空闲情况之前,还包括步骤:
4.根据权利要求3所述的自适应负载均衡方法,其特征在于,所述celery服务根据所述比例与预设比例阈值进行判断,具体包括步骤:
5.根据权利要求1所述的自适应负载均衡方法,其特征在于,所述根据所述资源空闲情况和所述服务信息获取服务吞吐量,具体包括步骤:
6.根据权利要求1所述的自适应负载均衡方法,其特征在于,所述通过celery服务发布定时任务监控所有服务器,以获取所述服务器的资源空闲情况之后,还包括步骤:
7.根据权利要求1所述的自适应负载均衡方法,其特征在于,所述通过查询本地的所述服务信息调用吞吐量高的服务,以获取目标服务之前,还包括步骤:
8.一种自适应负载均衡系统,其特征在于,包括:建立模块、保存模块、监控模块、获取模块和调用模块;
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述存储介质用于存储计算机程序,所述计算机程序用于使计算机执行权利要求1-7任意一项所述的方法。