一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于后端请求的负载均衡的实现方法及装置与流程

2022-05-21 06:50:39 来源:中国专利 TAG:


1.本发明涉及软件系统技术领域,具体提供一种用于后端请求的负载均衡的实现方法及装置。


背景技术:

2.由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。
3.针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡。
4.现有技术中传统的round robin(轮询)、least connections(最小连接)或source(根据请求源的ip的散列hash)的方式不能很好的发挥后端服务的最佳性能,使得用户的实际体验差,不能合理的实现请求的负载均衡。


技术实现要素:

5.本发明是针对上述现有技术的不足,提供一种实用性强的用于后端请求的负载均衡的实现方法。
6.本发明进一步的技术任务是提供一种设计合理,安全适用的用于后端请求的负载均衡装置。
7.本发明解决其技术问题所采用的技术方案是:
8.一种用于后端请求的负载均衡的实现方法,通过在宿主机中安装telegraf组件来进行宿主机运行情况的监控,并将监控信息数据存入负载均衡系统中telegraf数据库中;
9.负载均衡系统通过后端请求相关信息和查询预先初始化的宿主机ip端口与对应服务的映射关系的数据,筛选出对应的宿主机ip端口地址列表,并通过具体的权重算法计算出当前性能最优的宿主机服务进而向性能最优的宿主机发送请求;
10.负载均衡系统中预置记录分析模块,通过对influxdb中记录的时序性监控指标来绘制使用过程中的数据饼状图与折线图,将服务请求响应与宿主机运行的情况更直观的反馈。
11.进一步的,在宿主机中安装telegraf软件,初始化telegraf插件,配置好插件后配置对应的数据块库influxdb和推送数据间隔,用以记录对应宿主机每指定间隔后的详细信息,编写自定义插件用以记录指定请求响应速率,并在配置文件中进行配置。
12.进一步的,在所述负载均衡系统内进行数据初始化,将宿主机ip地址与对应服务关系维护到数据库表中备用,新建请求宿主机ip与对应请求频次数据库表。
13.进一步的,新建请求宿主机ip与对应请求频次数据库表,预设好相应数据,之后将进行负载的计算用来均衡请求,负载均衡系统根据调用的请求确定对应的服务,再根据数据库表中对应储存的关系数据获得所有服务的ip端口地址。
14.进一步的,influxdb数据库统计出每段时间内宿主机类型信息的使用情况绘制出饼状图反馈宿主机变化每项指标具体的占用率,根据influxdb数据库中数据的时序性绘制折线图,直观反映出指定信息指标在使用过程中的变化,并导出报表。
15.进一步的,当业务处理增加导致请求上升的时候,添加新的宿主机来分担请求的压力,当进行相同类型宿主机扩充时,在添加的新宿主机内预置telegraf组件并维护宿主机ip地址与对应服务关系到数据库表中即可直接使用;
16.新增的宿主类型不相同时就对负载均衡的算式进行适当调整。
17.进一步的,在负载均衡系统中设置告警宕机处理模块,通过判断指标信息是否超过指定值来确定是否发出告警;
18.通过定时任务分析一段时间的请求数据和请求响应插件是否有返回值来初步判断对应宿主机服务是否宕机。
19.进一步的,至多两个telegraf预置时间间隔后无数据,则发送请求至对应服务的keepalive接口判断服务的活性,确定服务宕机后可通过shell脚本实现宿主机内服务的重新拉起,从而实现负载均衡系统自循环。
20.一种用于后端请求的负载均衡装置,包括:至少一个存储器和至少一个处理器;
21.所述至少一个存储器,用于存储机器可读程序;
22.所述至少一个处理器,用于调用所述机器可读程序,执行一种用于后端请求的负载均衡的实现方法。
23.本发明的一种用于后端请求的负载均衡的实现方法及装置和现有技术相比,具有以下突出的有益效果:
24.(1)本发明根据宿主机具体运行情况结合相应算法实现了对于后端请求的负载均衡,采用本发明这种方法更为客观与真实的宿主机参数信息来进行负载均衡,能够更好的发挥后端服务的最佳性能,间接提升我用户的实际体验。
25.(2)增加了服务状态监控与宕机服务拉起功能,并且通过记录分析模块可以使宿主机中的服务自主进行扩充,使得负载均衡具有一定的容灾能力,适当降低了后期维护的成本。
26.(3)记录分析模块可以更直观的反应宿主机的运行情况,通过监控指标数据生成饼状图、折线图使得运维人员可以更加详细地分析服务的使用情况,从而选择是否提前进行宿主机的扩容升级,防患于未然。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.附图1是一种用于后端请求的负载均衡的实现方法的流程示意图;
29.附图2是一种用于后端请求的负载均衡的实现方法的框架示意图。
具体实施方式
30.为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
31.下面给出一个最佳实施例:
32.如图1、2所示,本实施例中的一种用于后端请求的负载均衡的实现方法,通过在宿主机中安装telegraf组件来进行宿主机运行情况的监控,并将监控信息数据存入负载均衡系统中telegraf数据库中。
33.负载均衡系统通过后端请求相关信息和查询预先初始化的宿主机ip端口与对应服务的映射关系的数据,筛选出对应的宿主机ip端口地址列表,并通过具体的权重算法计算出当前性能最优的宿主机服务进而向性能最优的宿主机发送请求。
34.负载均衡系统中预置记录分析模块,通过对influxdb中记录的时序性监控指标来绘制使用过程中的数据饼状图与折线图,将服务请求响应与宿主机运行的情况更直观的反馈给系统的运维与管理人员。方便其分析服务使用特性从而扩充或删减对应服务。
35.首先需要在宿主机中安装telegraf软件,并配置好配置文件,初始化telegraf插件:cpu(系统cpu信息)、mem(系统内存信息)、diskio(磁盘io性能)。配置好插件后配置对应的数据库influxdb和推送数据间隔,用以记录对应宿主机每指定间隔后的详细信息。编写自定义插件用以记录指定请求响应速率,并在配置文件中进行配置。之后,在负载均衡系统内进行数据初始化,将宿主机ip地址与对应服务关系维护到数据库表中已备用。新建请求宿主机ip与对应请求频次数据库表。
36.当初始化完成之后,系统也已经预置好了相应数据,之后将进行负载的计算用来均衡请求。系统根据调用的请求确定对应的服务,再根据数据库表中对应储存的关系数据获得所有服务的ip端口地址,比如:某服务对应n台虚机的集群分别为:l1、l2

ln。
37.根据telegraf存储到influxdb中的监控数据进行计算:
38.根据cpu(系统cpu信息)计算l1、l2

ln对应的cpu占用率(cv)。
39.根据mem(系统内存信息)计算l1、l2

ln对应的内存可用率(ap)。
40.根据diskio(磁盘io性能)计算l1、l2

ln对应60秒内磁盘的读次数与写次数(rc、wc)。
41.根据自定义插件计算l1、l2

ln对应相同请求的响应时间(rr)。
42.根据宿主机ip与对应请求频次数据库表获取l1、l2

ln对应3分钟内的被请求次数(if)。
43.将上述信息:cv、ap、rc、wc、rr分以权重占比,权重占比可动态调配,根据提供的相应配置项即可变更,默认为20%、20%、5%、5%、40%、10%;后根据权重进行计算取得结果,计算公式如下:
44.45.通过比较l1、l2

ln的结果lr选出最大值为最优解宿主机,根据对应的ip地址将请求发送至对应服务所在的宿主机,并将请求频次数据库表对应ip的请求数数据加1。
46.根据telegraf插件记录汇总到influxdb的数据可制定分析系统。influxdb是一个开源分布式时序、事件和指标数据库,它反映了一段时间内宿主机的使用情况,根据cpu(系统cpu信息)、mem(系统内存信息)、diskio(磁盘io性能)、指定请求响应速率,分别统计出每一段时间内宿主机该类型信息的使用情况,就可绘制出饼状图反馈宿主机变化每项指标具体的占用率。根据influxdb中数据的时序性可绘制折线图,更直观的反应出指定信息指标在使用过程中的变化,并导出报表。从中可以分析出对应服务的使用高峰期以及使用情况,方便运维人员对相关的服务进行定向维护。
47.当业务处理增加导致请求上升的时候,可能要考虑服务的扩充,也就是添加新的宿主机来分担请求的压力,当进行相同类型宿主机(即cpu、内存大小、磁盘空间等要素均相同)扩充时,只需在宿主机中预置telegraf等组件并维护宿主机ip地址与对应服务关系维护到数据库表中即可直接使用;但是当新增的宿主机类型不相同时就需要对负载均衡的算式进行适当的调整,来达到更好的宿主机将分配处理更多的请求目的。例如,当扩充了cpu与内存大小为原来2倍的宿主机时计算公式可调整如下:
[0048][0049]
根据分析系统判断当前是否处于服务使用高峰期,从而通过预置程序自行判断是否需要进行服务扩充,然后通过编写好的shell脚本实现服务集群的自动扩充。
[0050]
在负载均衡系统中设置告警宕机处理模块,通过判断指标信息是否超过指定值来确定是否发出告警,如cpu占用率超过70%。通过定时任务分析近一段时间的请求数数据和请求响应插件是否有返回值来初步判断对应宿主机服务是否宕机。在至多两个telegraf预置时间间隔后无数据,则发送请求至对应服务的keepalive接口判断服务的活性,确定服务宕机后可通过shell脚本实现宿主机内服务的重新拉起,从而实现系统自循环。
[0051]
基于上述方法,一种用于后端请求的负载均衡装置,包括:至少一个存储器和至少一个处理器;
[0052]
所述至少一个存储器,用于存储机器可读程序;
[0053]
所述至少一个处理器,用于调用所述机器可读程序,执行一种用于后端请求的负载均衡的实现方法。
[0054]
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种用于后端请求的负载均衡的实现方法及装置权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
[0055]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献