一种基于负载均衡的路由分发方法及系统与流程

未命名 09-11 阅读:81 评论:0


1.本发明涉及网络通信技术领域,尤其涉及一种基于负载均衡的路由分发方法及系统。


背景技术:

2.目前国内企业的it系统,大都采用了微服务、分布式的系统架构,通常需要调用或操作远程的服务或者资源,这些远程的服务或者资源由于调用者不可控的原因,如网络连接缓慢、资源被占用导致远程资源调用失败,因此,需要对流量控制进行分析,以进行负载均衡的路由分发。
3.现有的路由分发技术是通过固定或动态创建的进程池或线程池实现并发数量的控制,从而实现路由分发。但实际应用中,可以根据定制化数据内容及流量均衡分配实现流量控制,从而进行路由分发,仅通过单一的进程池进行流量控制,实现机制较为简单,从而对进行路由分发时的流量分配均衡度较低。


技术实现要素:

4.本发明提供一种基于负载均衡的路由分发方法及系统,其主要目的在于解决进行路由分发时的流量分配均衡度较低的问题。
5.为实现上述目的,本发明提供的一种基于负载均衡的路由分发方法,包括:
6.s1、获取业务报文数据内容,对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件;
7.s2、根据所述业务参数配置文件中的业务识别码调用资源调度线程组,利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据;
8.s3、通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,提取所述共享线程状态数据中的线程流量数据;
9.s4、利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,对所述业务报文数据内容进行业务分级,得到业务报文数据内容级别;
10.s5、根据所述最佳路由生成路由分发路径,按照所述路由分发路径及所述业务报文数据内容级别进行路由分发,其中所述按照所述路由分发路径及所述业务报文数据内容级别进行路由分发,包括:
11.s51、据所述业务报文数据内容级别确定业务优先级;
12.s52、按照所述业务优先级对所述业务报文数据内容级别对应的业务报文数据内容进行数据转发,得到所述路由分发路径中的数据路由分发路径;
13.s53、利用如下的数据包流量计算公式计算所述数据路由分发路径中的数据包分配流量:
[0014][0015]
其中,q为所述数据包分配流量,为所述数据路由分发路径中数据包大小,r
p
为所述数据路由分发路径p中的最小剩余带宽,t
p
为所述数据路由分发路径p中的时延,为所述数据路由分发路径p中的拥塞值,e
p
为所述数据路由分发路径p中的使用带宽,e为链路带宽阈值;
[0016]
s54、根据所述数据包分配流量按照所述数据路由分发路径进行路由分发。
[0017]
可选地,所述对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,包括:
[0018]
对所述业务报文数据内容进行标准化处理,得到标准业务报文数据内容;
[0019]
提取所述标准业务报文数据内容中的业务属性字段;
[0020]
根据预设的业务分类需求对所述业务属性字段进行业务属性分类,得到所述业务报文数据内容类型。
[0021]
可选地,所述根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件,包括:
[0022]
根据所述业务报文数据内容类型确定业务识别码;
[0023]
根据所述业务识别码及预设的业务需求生成业务参数字段;
[0024]
获取所述业务参数字段对应的业务逻辑,根据所述业务参数字段及所述业务逻辑生成业务参数映射规则;
[0025]
根据所述业务参数映射规则配置参数文件,得到所述业务参数配置文件。
[0026]
可选地,所述根据所述业务参数配置文件中的业务识别码调用资源调度线程组,包括:
[0027]
获取所述资源调度线程组中的业务服务线程标识;
[0028]
利用预设的全匹配算法计算所述业务识别码与所述业务服务线程标识之间的编辑距离,其中所述全匹配算法为:
[0029]
d(i,j)=min(d(i-1,j)+1,d(i,j-1)+1,d(i-1,j-1)+c(i,j)
[0030]
其中,d(i,j)为所述业务识别码的第i个字符与所述业务服务线程标识的第j个字符之间的编辑距离,d(i-1,j)为所述业务识别码的第i-1个字符与所述业务服务线程标识的第j个字符之间的编辑距离,d(i,j-1)为所述业务识别码的第i个字符与所述业务服务线程标识的第j-1个字符之间的编辑距离,d(i-1,j-1)为所述业务识别码的第i-1个字符与所述业务服务线程标识的第j-1个字符之间的编辑距离,c(i,j)为所述业务识别码的第i个字符与所述业务服务线程标识的第j个字符之间的一致值;
[0031]
根据所述编辑距离进行迭代计算,得到业务标识编辑距离;
[0032]
选取所述业务标识编辑距离为零的业务服务线程标识作为资源调度线程组;
[0033]
通过预设的线程接口调用所述资源调度线程组。
[0034]
可选地,所述利用预设的状态监测算法监测所述资源调度线程组中工作线程的线
程状态数据,包括:
[0035]
通过预设的资源占用接口提取所述工作线程的资源占用状态数据;
[0036]
通过预设的审计日志提取所述工作线程的服务日志状态数据;
[0037]
利用预设的网络协议监测所述工作线程的信息流状态数据;
[0038]
利用如下所述状态监测算法将所述资源占用状态数据、所述服务日志状态数据及所述信息流状态数据进行状态融合,得到线程状态数据:
[0039]
p={p1,p2,p3}
[0040]
其中,p为所述线程状态数据,p1为所述资源占用状态数据,p2为所述服务日志状态数据,p3为所述信息流状态数据。
[0041]
可选地,所述通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,包括:
[0042]
将所述线程状态数据存储至所述共享数据区;
[0043]
通过预设的指针访问所述共享数据区的线程状态数据,得到线程访问数据;
[0044]
将所述线程访问数据与所述线程状态数据进行数据同步,得到所述共享线程状态数据。
[0045]
可选地,所述提取所述共享线程状态数据中的线程流量数据,包括:
[0046]
获取所述共享线程状态数据中的数据包;
[0047]
提取所述数据包中的数据包大小和数据包数量;
[0048]
根据所述数据包大小、所述数据包数量及预设的数据协议属性计算所述线程流量数据,其中所述线程流量数据的计算公式为:
[0049]
u=a
×
s+γ+(b1×
s1)+(b2×
s2)
[0050]
其中,u为所述线程流量数据,a为所述数据协议属性中的协议开销,s为所述数据包数量,γ为数据包负载大小,b1为所述数据包大小,s1为成功传输的数据包数量,b2为重传数据包大小,s2为重传数据包数量。
[0051]
可选地,所述利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,包括:
[0052]
根据所述业务报文数据内容类型查询是否存在预设的空闲服务进程;
[0053]
当存在所述空闲服务进程时,通过所述智能路由算法在预设的工作线程池中查询是否存在预设的工作线程;
[0054]
当存在所述工作线程时,根据所述线程流量数据及预设的路由参数选取最佳路由。
[0055]
可选地,所述根据所述线程流量数据及预设的路由参数选取最佳路由,包括:
[0056]
根据所述线程流量数据及所述路由参数生成路由属性表,其中所述路由属性表中路由属性为:
[0057]
v={v1,v2,v3,v4,v5}
[0058]
其中,v为所述路由属性,v1为所述路由属性中的可靠性,v2为所述路由属性中的延迟,v3为所述路由属性中的带宽,v4为所述路由属性中的通信质量,v5为所述路由属性中的路由距离;
[0059]
根据预设的源路由的路由属性确定所述路由属性表中的目标路由;
[0060]
选取所述目标路由中的路由属性最高的路由为最佳路由。
[0061]
为了解决上述问题,本发明还提供一种基于负载均衡的路由分发系统,所述系统包括:
[0062]
业务参数配置文件生成模块,用于获取业务报文数据内容,对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件;
[0063]
线程状态数据监测模块,用于根据所述业务参数配置文件中的业务识别码调用资源调度线程组,利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据;
[0064]
线程状态数据共享模块,用于通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,提取所述共享线程状态数据中的线程流量数据;
[0065]
最佳路由选择模块,用于利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,对所述业务报文数据内容进行业务分级,得到业务报文数据内容级别;
[0066]
路由分发模块,用于根据所述最佳路由生成路由分发路径,按照所述路由分发路径及所述业务报文数据内容级别进行路由分发。
[0067]
本发明实施例通过业务报文数据内容类型进行交易级参数配置,有利于提供定制化的数据流量控制;根据业务参数配置文件可以针对不同的交易启动服务进程,从而得到工作线程的线程状态数据;通过cda共享数据区实现数据驱动及同步功能,并及时进行干预;通过智能路由算法选取业务报文数据内容进行传输的最佳路由,进而根据最佳路由生成路由分发路径,根据路由分发路径实现负载均衡的路由分发,有利于实现交易级的路由选择和流量控制,具备稳定性、高效性、热部署特点。因此本发明提出的基于负载均衡的路由分发方法及系统,可以解决进行路由分发时的流量分配均衡度较低的问题。
附图说明
[0068]
图1为本发明一实施例提供的基于负载均衡的路由分发方法的流程示意图;
[0069]
图2为本发明一实施例提供的监测线程状态数据的流程示意图;
[0070]
图3为本发明一实施例提供的共享线程状态数据的流程示意图;
[0071]
图4为本发明一实施例提供的基于负载均衡的路由分发系统的功能模块图。
[0072]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0073]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0074]
本技术实施例提供一种基于负载均衡的路由分发方法。所述基于负载均衡的路由分发方法的执行主体包括但不限于服务端、终端等能够被配置为执行本技术实施例提供的该方法的电子设备中的至少一种。换言之,所述基于负载均衡的路由分发方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云
通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0075]
参照图1所示,为本发明一实施例提供的基于负载均衡的路由分发方法的流程示意图。在本实施例中,所述基于负载均衡的路由分发方法包括:
[0076]
s1、获取业务报文数据内容,对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件。
[0077]
本发明实施例中,所述业务报文数据内容主要是指交易报文数据内容,交易报文数据内容是在计算机中进行交易时所使用的报文,包含了交易双方需要交换的各种信息,包括报文头、交易数据、交易验证信息、交易状态和附加信息,其中报文头是为接收方提供关于数据的一些元信息,以帮助接收方正确地解析报文,如交易类型、交易编号、报文长度、时间戳、加密信息等;交易数据主要用于描述交易双方的信息,如交易金额、交易时间、产品信息;交易验证信息用于验证交易的合法性;交易状态用于记录当前交易的状态;附加信息是交易报文中的其他信息,如请求批准、交易细节、订单信息等。
[0078]
详细地,可通过具有数据抓取功能的计算机语句(如java语句、python语句等)从预先存储的存储区域获取业务报文数据内容,其中所述存储区域包括但不限于数据库、区块链。
[0079]
进一步地,为了针对不同的交易启动服务进程,需要对业务报文数据内容的业务类型进行分析。
[0080]
本发明实施例中,所述业务报文数据内容类型包括金融交易、电子商务交易、实时交易、互联网广告交易、订阅交易、电信交易、物联网交易,根据每个业务报文数据内容中的关键属性字段进行业务分类。
[0081]
本发明实施例中,所述对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,包括:
[0082]
对所述业务报文数据内容进行标准化处理,得到标准业务报文数据内容;
[0083]
提取所述标准业务报文数据内容中的业务属性字段;
[0084]
根据预设的业务分类需求对所述业务属性字段进行业务属性分类,得到所述业务报文数据内容类型。
[0085]
详细地,标准化数据元素是指采用通用的标识符和定义,对不同交易报文数据内容中常用的数据元素进行标准定义和描述,可以促进交易数据的可比性和一致性,提高数据质量和准确性,因此,需要对业务报文数据内容进行标准化处理,以得到具有唯一标识符的标准业务报文数据内容,从而提取标准业务报文数据内容中的业务属性字段,如业务报文数据内容是关于金融交易的,则业务属性字段为“swt”。
[0086]
具体地,根据业务分类规则需求按照所述业务属性字段将所述业务报文数据内容所对应的业务类别进行分类,其中,业务分类规则需求是采用匹配规则,将每个业务报文数据内容中的业务属性字段与预设的业务交易识别码进行匹配,以实现每个业务报文数据内容中的业务分类,从而得到业务报文数据内容类型。
[0087]
进一步地,为了实现定制化的流量控制,需要通过交易参数定制实现交易级、高并发场景下的流量控制,因此,需要对业务参数进行配置。
[0088]
本发明实施例中,所述业务参数配置文件包括交易报文数据内容和相应的交易参数配置,以确保网络能够支持不同类型的交易。
[0089]
本发明实施例中,所述根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件,包括:
[0090]
根据所述业务报文数据内容类型确定业务识别码;
[0091]
根据所述业务识别码及预设的业务需求生成业务参数字段;
[0092]
获取所述业务参数字段对应的业务逻辑,根据所述业务参数字段及所述业务逻辑生成业务参数映射规则;
[0093]
根据所述业务参数映射规则配置参数文件,得到所述业务参数配置文件。
[0094]
详细地,所述业务识别码是唯一确定业务报文数据内容类型的标识,即每一种业务报文数据内容类型对应一个业务识别码,进而根据所述业务识别码即预设的业务需求可以生成不同的业务参数字段,以进行参数配置,其中所述业务参数字段包括交易流量控制参数配置,通讯控制参数设定,故障处理和自动恢复机制,自动应答设置,心跳检测机制,链路资源调度机制,错误码自动匹配列表,智能路由算法选择,监控机制设定等;与之配套的还包括参数检测和纠错程序,参数装载卸载程序,服务启停程序等,则交易流量控制参数配置用于限制一段时间内服务的请求数量,以确保服务能在一定时间内稳定运行;通讯控制参数设定用于设定通讯协议及其相关的参数,确保数据能够在网络上传输;故障处理和自动恢复机制检测系统故障,并对故障路径进行快速恢复以保障系统的常规使用;自动应答设置用于自动应答某些特定的请求,以减轻操作人员的工作负荷;心跳检测机制用于实时监控系统状态,当系统异常超过一定值的时间周期时,发出异常报警;链路资源调度机制用于集中管理各个业务链接的使用情况,并提供优先级的调度管理;错误码自动匹配列表用于自动判断和处理各种常见的错误码类型,以快速响应故障情况;智能路由算法选择用于根据不同的业务要求,自动实现对服务器的最优路由;监控机制设定用于实时监控各项业务的运行情况,以及不同机器的资源使用情况,以保障系统的正常运行。
[0095]
具体地,所述业务逻辑是指每个业务参数字段对应的参数内容,如交易流量控制参数配置中参数内容是交易请求数量;通讯控制参数配置中参数内容是通讯协议,进而根据业务参数字段及业务参数内容生成业务参数映射规则,则所述业务参数映射规则包括交易流量控制参数-交易请求数量;通讯控制参数-通讯协议等,根据业务参数映射规则配置业务参数文件,从而得到业务参数配置文件。
[0096]
进一步地,在高并发状态下,资源调度管理是非常关键的功能,可得到不同的业务识别码调用不同的服务进程,以实现交易级的流量控制。
[0097]
s2、根据所述业务参数配置文件中的业务识别码调用资源调度线程组,利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据。
[0098]
本发明实施例中,所述资源调度线程组包括资源初始化线程、消息队列资源管理线程、工作状态统计和数据同步线程、远程服务资源探测线程等,可根据内嵌的资源调度实时控制和收集工作线程的状态数据。
[0099]
本发明实施例中,所述根据所述业务参数配置文件中的业务识别码调用资源调度线程组,包括:
[0100]
获取所述资源调度线程组中的业务服务线程标识;
[0101]
利用预设的全匹配算法计算所述业务识别码与所述业务服务线程标识之间的编辑距离,其中所述全匹配算法为:
[0102]
d(i,j)=min(d(i-1,j)+1,d(i,j-1)+1,d(i-1,j-1)+c(i,j)
[0103]
其中,d(i,j)为所述业务识别码的第i个字符与所述业务服务线程标识的第j个字符之间的编辑距离,d(i-1,j)为所述业务识别码的第i-1个字符与所述业务服务线程标识的第j个字符之间的编辑距离,d(i,j-1)为所述业务识别码的第i个字符与所述业务服务线程标识的第j-1个字符之间的编辑距离,d(i-1,j-1)为所述业务识别码的第i-1个字符与所述业务服务线程标识的第j-1个字符之间的编辑距离,c(i,j)为所述业务识别码的第i个字符与所述业务服务线程标识的第j个字符之间的一致值;
[0104]
根据所述编辑距离进行迭代计算,得到业务标识编辑距离;
[0105]
选取所述业务标识编辑距离为零的业务服务线程标识作为资源调度线程组;
[0106]
通过预设的线程接口调用所述资源调度线程组。
[0107]
详细地,所述业务服务线程标识是指资源调度线程组中每个线程组所对应的业务交易标识,可通过从预先设置的资源调度参数中抓取所述资源调度线程组中的业务服务线程标识,进而将业务参数配置文件中的业务识别码与业务服务线程标识进行字符匹配,其中所述全匹配算法是指编辑距离算法,比较两个字符串相似度的算法,通过计算将一个字符串编程另一个字符串所需的最少编辑操作(替换、删除、插入)次数,来衡量两个字符串之间的距离。
[0108]
具体地,将业务识别码与业务服务线程标识生成二维矩阵,通过全匹配算法不断迭代二维矩阵中的元素值,直至得到二维矩阵中最后一个元素值,并当最后一个元素的业务标识编辑距离为零时,表示业务识别码与业务服务线程标识完全匹配,并将此业务服务线程标识作为资源调度线程组,并通过资源调度线程组的端口号调用所述资源调度线程组。
[0109]
进一步地,通过所述资源调度线程组中的工作状态统计和数据同步线程可以实时监测线程工作状态,以便可以及时采取相应措施。
[0110]
本发明实施例中,所述线程状态数据包括服务的运行状态、处理能力、资源使用情况、错误信息、日志信息等。
[0111]
本发明实施例中,参照图2所示,所述利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据,包括:
[0112]
s21、通过预设的资源占用接口提取所述工作线程的资源占用状态数据;
[0113]
s22、通过预设的审计日志提取所述工作线程的服务日志状态数据;
[0114]
s23、利用预设的网络协议监测所述工作线程的信息流状态数据;
[0115]
s24、利用如下所述状态监测算法将所述资源占用状态数据、所述服务日志状态数据及所述信息流状态数据进行状态融合,得到线程状态数据:
[0116]
p={p1,p2,p3}
[0117]
其中,p为所述线程状态数据,p1为所述资源占用状态数据,p2为所述服务日志状态数据,p3为所述信息流状态数据。
[0118]
详细地,所述资源占用接口包括系统命令或api接口提取工作线程的网络带宽、内存、磁盘和cpu等资源占用状态数据;所述审计日志是可以采集服务器上的系统日志、应用
程序日志和安全日志等不同类型的日志,可以提取工作线程中的各种错误日志信息和异常信息;所述网络监测协议(snmp)可以用来监视网络设备、应用程序和服务器之间的信息流,并实时生成和报告网络状况和事件信息等,如性能指标、网络流量、连接状态等信息。
[0119]
具体地,利用状态监测算法将监测到的资源占用状态数据、服务日志状态数据及信息流状态数据进行数据融合,即将资源占用状态数据、服务日志状态数据及信息流状态数据进行数据拼接,以得到线程状态数据。
[0120]
进一步的,每个服务都内嵌了独立的资源调度模块,可以主动收集到各种状态并写入cda,监控程序通过cda就可以实时的检测到服务状态,并进行干预,通过cda共享数据区,实现了实时的、非侵入式的服务及资源监控功能。
[0121]
s3、通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,提取所述共享线程状态数据中的线程流量数据。
[0122]
本发明实施例中,所述共享数据区(cad)可以实现数据驱动及同步功能,并且当配置参数发生变化后,无需重新启动,通过cda数据区可以完成热部署。通过共享数据区可以实现不同的线程之间共享数据。
[0123]
本发明实施例中,参照图3所示,所述通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,包括:
[0124]
s31、将所述线程状态数据存储至所述共享数据区;
[0125]
s32、通过预设的指针访问所述共享数据区的线程状态数据,得到线程访问数据;
[0126]
s33、将所述线程访问数据与所述线程状态数据进行数据同步,得到所述共享线程状态数据。
[0127]
详细地,通过所述共享数据区的存储接口将线程状态数据存储至共享数据区中,并对其他线程进行公开,则其他线程可以从共享数据区中读取线程状态数据,并使用共享数据区进行线程协调和调度。通过指针的方式访问共享内存区域,由于共享内存区域可以同时被多个进程访问,因此,需要对数据的访问进行同步,保证线程的读写操作不会相互干扰,从而保证程序的稳定性和正确性。则需要将线程访问数据与线程状态数据进行数据同步,以得到共享线程状态数据。
[0128]
进一步地,为了实现负载均衡的路由分发,需要针对共享数据区收集到的服务状态获取流量,以实现负载均衡。
[0129]
本发明实施例中,所述线程流量数据是指在资源调度管理中,每个资源调度线程组中的流量值,则可将流量控制服务可以嵌入到各种高并发处理的系统中,能够支持各种通讯协议,如http、tcp/ip等,能够识别各种数据格式如字节流、xml、json、8583等,并采用指定报文格式进行自动应答。流量控制服务通过智能路由算法可以完成高并发状态下的交易级数据转发和流量控制。
[0130]
本发明实施例中,所述提取所述共享线程状态数据中的线程流量数据,包括:
[0131]
获取所述共享线程状态数据中的数据包;
[0132]
提取所述数据包中的数据包大小和数据包数量;
[0133]
根据所述数据包大小、所述数据包数量及预设的数据协议属性计算所述线程流量数据,其中所述线程流量数据的计算公式为:
[0134]
u=a
×
s+γ+(b1×
s1)+(b2×
s2)
[0135]
其中,u为所述线程流量数据,a为所述数据协议属性中的协议开销,s为所述数据包数量,γ为数据包负载大小,b1为所述数据包大小,s1为成功传输的数据包数量,b2为重传数据包大小,s2为重传数据包数量。
[0136]
详细地,通过网络监测协议(snmp)统计所述共享线程状态数据中的数据包数量及数据包大小,并根据数据包大小、数据包数量及数据协议属性计算线程流量数据,在计算线程流量数据时需要考虑网络传输的协议类型及数据重传,其中协议开销是指特定协议在每个数据包中报头(header)和尾部(footer)的长度,通常由协议的数据结构定义决定;数据包数量是指在特定时间段内传输的数据包数量;负载大小是指每个数据包中实际传输的数据大小,数据包大小是指每个数据包所传输的数据量大小,成功传输的数据包数量是在没有重传的情况下成功传输的数据包数,重传的数据包数量是在数据包丢失后重新发送的数据包数量,在计算网络流量时,需要考虑多个因素的影响,才能得出准确和全面的结果。
[0137]
进一步地,为了实现负载均衡的路由分发,需要基于流量控制中的智能漏油算法选取最佳的数据传输路由。
[0138]
s4、利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,对所述业务报文数据内容进行业务分级,得到业务报文数据内容级别。
[0139]
本发明实施例中,所述智能路由算法是一种通过分析网络拓扑结构和网络性能状况,自适应地为网络中的流量选择最优路由的算法,包括但不限于dijkstra算法、bellman-ford算法、移动代理智能路由算法、扩散算法。
[0140]
本发明实施例中,所述利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,包括:
[0141]
根据所述业务报文数据内容类型查询是否存在预设的空闲服务进程;
[0142]
当存在所述空闲服务进程时,通过所述智能路由算法在预设的工作线程池中查询是否存在预设的工作线程;
[0143]
当存在所述工作线程时,根据所述线程流量数据及预设的路由参数选取最佳路由。
[0144]
详细地,根据所述业务报文数据内容类型寻找空闲的服务进程进行处理,若不存在空闲的服务进程,则需立刻返回错误;若存在空闲的服务进程,在将业务数据传输至服务进程,服务进程收到业务数据后,需要采用智能路由算法找到一个工作线程处理业务数据,若无法找到工作线程,则需要响应业务报文数据,返回请求方;若存在工作线程,则将业务数据传输至工作线程,工作线程收到业务数据后,需要根据预先配置的业务参数将业务数据转发至最合适的接收方,如果存在通讯故障,则必须立即返回错误给请求方。
[0145]
进一步地,根据所述线程流量数据选取最优的下一条路由,以实现负载均衡的路由分发,以达到提高网络服务能力和处理效率的目的。
[0146]
本发明实施例中,所述根据所述线程流量数据及预设的路由参数选取最佳路由,包括:
[0147]
根据所述线程流量数据及所述路由参数生成路由属性表,其中所述路由属性表中路由属性为:
[0148]
v={v1,v2,v3,v4,v5}
[0149]
其中,v为所述路由属性,v1为所述路由属性中的可靠性,v2为所述路由属性中的延
迟,v3为所述路由属性中的带宽,v4为所述路由属性中的通信质量,v5为所述路由属性中的路由距离;
[0150]
根据预设的源路由的路由属性确定所述路由属性表中的目标路由;
[0151]
选取所述目标路由中的路由属性最高的路由为最佳路由。
[0152]
详细地,所述路由属性表是指每个路由属性及路由标号所组成的,其中路由属性包括可靠性、延迟、带宽、通信质量、路由距离,则可靠性是指网络通信的可靠性,某些路由器有可能会比其他的路由器更加可靠;延迟是指数据包从出发点到目标点所需要的时间;带宽是指该路由器能够提供的最大带宽大小、通信质量以测量链路的通信质量,包括丢包率、冲突次数等;路由距离是通过计算到达目标网络的跳数或者距离来确定的;路由器可以根据负载均衡算法将线程流量数据均衡地分发到多个路径上,以增加吞吐量、降低延迟,并降低网络拥塞的可能性。
[0153]
具体地,根据所述源路由的路由属性中的下一跳路由的地址选择目标路由,并将目标路由中路由属性最高的路由确定为下一跳最佳路由。如源路由

的地址为a,下一跳路由地址为b,而在路由表中查询下一跳路由地址为b的路由有两个,即



,则需要将



中的路由属性逐一进行比较,若

路由属性为{v
21
,v
22
,v
23
,v
24
,v
25
},

路由属性为{v
31
,v
32
,v
33
,v
34
,v
35
},则v
21
》v
31
,v
22
》v
32
,v
23
《v
33
,v
24
《v
34
,v
25
》v
35
,则选取属性值中较大值较多的路由,即选择路由

为最佳路由。
[0154]
进一步地,通过对交易的分级,可以在系统资源出现瓶颈时,确保重要交易能够得到优先处理,提升整个系统的用户体验,因此,需要针对业务数据的重要性对所述业务报文数据内容进行业务分级,得到业务报文数据内容级别,则业务交易数据重要性越高,则业务报文数据内容级别就高,其中业务交易数据重要性通过业务交易的业务流程关联性及数据应用价值进行确定。
[0155]
s5、根据所述最佳路由生成路由分发路径,按照所述路由分发路径及所述业务报文数据内容级别进行路由分发。
[0156]
本发明实施例中,根据路由属性表可以确定源路由至终止路由之间的路由跳数,以及选取中间最佳路由,由选择的路由连接可得到路由分发路径,若中间层的路由可能有多个相同的,还会具有多条路由分发路径。
[0157]
进一步地,根据所述路由分发路径进行路由分发,可以实现精确的负载均衡和数据安全。
[0158]
本发明实施例中,所述按照所述路由分发路径及所述业务报文数据内容级别进行路由分发,包括:
[0159]
根据所述业务报文数据内容级别确定业务优先级;
[0160]
按照所述业务优先级对所述业务报文数据内容级别对应的业务报文数据内容进行数据转发,得到所述路由分发路径中的数据路由分发路径;
[0161]
利用如下的数据包流量计算公式计算所述数据路由分发路径中的数据包分配流量:
[0162][0163]
其中,q为所述数据包分配流量,为所述数据路由分发路径中数据包大小,r
p
为所述数据路由分发路径p中的最小剩余带宽,t
p
为所述数据路由分发路径p中的时延,为所述数据路由分发路径p中的拥塞值,e
p
为所述数据路由分发路径p中的使用带宽,e为链路带宽阈值;
[0164]
根据所述数据包分配流量按照所述数据路由分发路径进行路由分发。
[0165]
详细地,所述业务报文数据内容级别越高,其业务优先级就高,若业务报文数据内容级别为高级,其业务优先级为高级;若业务报文数据内容级别为低级,其业务优先级为低级。因此,可按照所述业务优先级可确定优先将哪个业务报文数据内容先进行数据传输,即先分配路由分发路径,可得到进行数据传输的数据路由分发路径。
[0166]
具体地,为了实现负载均衡,需要将链路上的流量进行合理分配,因此,需要根据数据包流量公式计算链路上的数据包分配流量,基于路由分发路径的拓扑结构可能会具有多条路径,则需要对多条路径分配数据包流量,其中所述数据包流量计算公式中当任意一条路由分发路径中的链路带宽小于链路带宽阈值时,则需要根据带宽和时延计算数据路由分发路径的数据最大传输速率,即吞吐量,进而根据数据包大小得到数据路由分发路径的数据包分配流量;而当存在一条路由分发路径中的链路带宽大于链路带宽阈值时,根据拥塞值、带宽和时延计算链路利用率,进而根据数据包大小计算出可以传输的数据包数量,即可得到数据包分配流量。此外,当数据路由分发路径中只有一条路径时,则计算链路的利用率,进而根据数据包大小计算数据包分配流量,其中如果网络的带宽和时延保持不变,但是拥塞情况变得更加严重,拥塞值增加到1,那么这个网络连接的利用率将会降为0。因为完全拥塞意味着没有数据包能够被传输。
[0167]
进一步地,按照所述数据包分配流量将流量分配到不同的数据流上,并根据数据路由分发路径在数据流上的数据包到达路由器时,使用路由控制协议和路由表,将数据包转发到最佳的下一个路由器,直到数据流上的数据包到达目的地,可以动态地调整网络中数据包的传输路径,以有效利用网络资源,避免拥塞和路由失败等问题。
[0168]
本发明实施例通过业务报文数据内容类型进行交易级参数配置,有利于提供定制化的数据流量控制;根据业务参数配置文件可以针对不同的交易启动服务进程,从而得到工作线程的线程状态数据;通过cda共享数据区实现数据驱动及同步功能,并及时进行干预;通过智能路由算法选取业务报文数据内容进行传输的最佳路由,进而根据最佳路由生成路由分发路径,根据路由分发路径实现负载均衡的路由分发,有利于实现交易级的路由选择和流量控制,具备稳定性、高效性、热部署特点。因此本发明提出的基于负载均衡的路由分发方法及系统,可以解决进行路由分发时的流量分配均衡度较低的问题。
[0169]
如图4所示,是本发明一实施例提供的基于负载均衡的路由分发系统的功能模块图。
[0170]
本发明所述基于负载均衡的路由分发系统100可以安装于电子设备中。根据实现
的功能,所述基于负载均衡的路由分发系统100可以包括业务参数配置文件生成模块101、线程状态数据监测模块102、线程状态数据共享模块103、最佳路由选择模块104及路由分发模块105。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0171]
在本实施例中,关于各模块/单元的功能如下:
[0172]
所述业务参数配置文件生成模块101,用于获取业务报文数据内容,对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件;
[0173]
所述线程状态数据监测模块102,用于根据所述业务参数配置文件中的业务识别码调用资源调度线程组,利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据;
[0174]
所述线程状态数据共享模块103,用于通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,提取所述共享线程状态数据中的线程流量数据;
[0175]
所述最佳路由选择模块104,用于利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,对所述业务报文数据内容进行业务分级,得到业务报文数据内容级别;
[0176]
所述路由分发模块105,用于根据所述最佳路由生成路由分发路径,按照所述路由分发路径及所述业务报文数据内容级别进行路由分发。
[0177]
详细地,本发明实施例中所述基于负载均衡的路由分发系统100中所述的各模块在使用时采用与上述图1至图3中所述的基于负载均衡的路由分发方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
[0178]
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其他的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0179]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0180]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0181]
对于本领域技术人员而言,本发明不限于上述示范性实施例的细节,在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0182]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0183]
本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、
延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
[0184]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或系统也可以由一个单元或系统通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
[0185]
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

技术特征:
1.一种基于负载均衡的路由分发方法,其特征在于,所述方法包括:s1、获取业务报文数据内容,对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件;s2、根据所述业务参数配置文件中的业务识别码调用资源调度线程组,利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据;s3、通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,提取所述共享线程状态数据中的线程流量数据;s4、利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,对所述业务报文数据内容进行业务分级,得到业务报文数据内容级别;s5、根据所述最佳路由生成路由分发路径,按照所述路由分发路径及所述业务报文数据内容级别进行路由分发,其中所述按照所述路由分发路径及所述业务报文数据内容级别进行路由分发,包括:s51、据所述业务报文数据内容级别确定业务优先级;s52、按照所述业务优先级对所述业务报文数据内容级别对应的业务报文数据内容进行数据转发,得到所述路由分发路径中的数据路由分发路径;s53、利用如下的数据包流量计算公式计算所述数据路由分发路径中的数据包分配流量:其中,q为所述数据包分配流量,为所述数据路由分发路径中数据包大小,r
p
为所述数据路由分发路径p中的最小剩余带宽,t
p
为所述数据路由分发路径p中的时延,为所述数据路由分发路径p中的拥塞值,e
p
为所述数据路由分发路径p中的使用带宽,e为链路带宽阈值;s54、根据所述数据包分配流量按照所述数据路由分发路径进行路由分发。2.如权利要求1所述的基于负载均衡的路由分发方法,其特征在于,所述对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,包括:对所述业务报文数据内容进行标准化处理,得到标准业务报文数据内容;提取所述标准业务报文数据内容中的业务属性字段;根据预设的业务分类需求对所述业务属性字段进行业务属性分类,得到所述业务报文数据内容类型。3.如权利要求1所述的基于负载均衡的路由分发方法,其特征在于,所述根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件,包括:根据所述业务报文数据内容类型确定业务识别码;根据所述业务识别码及预设的业务需求生成业务参数字段;获取所述业务参数字段对应的业务逻辑,根据所述业务参数字段及所述业务逻辑生成业务参数映射规则;
根据所述业务参数映射规则配置参数文件,得到所述业务参数配置文件。4.如权利要求1所述的基于负载均衡的路由分发方法,其特征在于,所述根据所述业务参数配置文件中的业务识别码调用资源调度线程组,包括:获取所述资源调度线程组中的业务服务线程标识;利用预设的全匹配算法计算所述业务识别码与所述业务服务线程标识之间的编辑距离,其中所述全匹配算法为:d(i,j)=min(d(i-1,j)+1,d(i,j-1)+1,d(i-1,j-1)+c(i,j)其中,d(i,j)为所述业务识别码的第i个字符与所述业务服务线程标识的第j个字符之间的编辑距离,d(i-1,j)为所述业务识别码的第i-1个字符与所述业务服务线程标识的第j个字符之间的编辑距离,d(i,j-1)为所述业务识别码的第i个字符与所述业务服务线程标识的第j-1个字符之间的编辑距离,d(i-1,j-1)为所述业务识别码的第i-1个字符与所述业务服务线程标识的第j-1个字符之间的编辑距离,c(i,j)为所述业务识别码的第i个字符与所述业务服务线程标识的第j个字符之间的一致值;根据所述编辑距离进行迭代计算,得到业务标识编辑距离;选取所述业务标识编辑距离为零的业务服务线程标识作为资源调度线程组;通过预设的线程接口调用所述资源调度线程组。5.如权利要求1所述的基于负载均衡的路由分发方法,其特征在于,所述利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据,包括:通过预设的资源占用接口提取所述工作线程的资源占用状态数据;通过预设的审计日志提取所述工作线程的服务日志状态数据;利用预设的网络协议监测所述工作线程的信息流状态数据;利用如下所述状态监测算法将所述资源占用状态数据、所述服务日志状态数据及所述信息流状态数据进行状态融合,得到线程状态数据:p={p1,p2,p3}其中,p为所述线程状态数据,p1为所述资源占用状态数据,p2为所述服务日志状态数据,p3为所述信息流状态数据。6.如权利要求1所述的基于负载均衡的路由分发方法,其特征在于,所述通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,包括:将所述线程状态数据存储至所述共享数据区;通过预设的指针访问所述共享数据区的线程状态数据,得到线程访问数据;将所述线程访问数据与所述线程状态数据进行数据同步,得到所述共享线程状态数据。7.如权利要求1所述的基于负载均衡的路由分发方法,其特征在于,所述提取所述共享线程状态数据中的线程流量数据,包括:获取所述共享线程状态数据中的数据包;提取所述数据包中的数据包大小和数据包数量;根据所述数据包大小、所述数据包数量及预设的数据协议属性计算所述线程流量数据,其中所述线程流量数据的计算公式为:u=a
×
s+γ+(b1×
s1)+(b2×
s2)
其中,u为所述线程流量数据,a为所述数据协议属性中的协议开销,s为所述数据包数量,γ为数据包负载大小,b1为所述数据包大小,s1为成功传输的数据包数量,b2为重传数据包大小,s2为重传数据包数量。8.如权利要求1所述的基于负载均衡的路由分发方法,其特征在于,所述利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,包括:根据所述业务报文数据内容类型查询是否存在预设的空闲服务进程;当存在所述空闲服务进程时,通过所述智能路由算法在预设的工作线程池中查询是否存在预设的工作线程;当存在所述工作线程时,根据所述线程流量数据及预设的路由参数选取最佳路由。9.如权利要求8所述的基于负载均衡的路由分发方法,其特征在于,所述根据所述线程流量数据及预设的路由参数选取最佳路由,包括:根据所述线程流量数据及所述路由参数生成路由属性表,其中所述路由属性表中路由属性为:v={v1,v2,v3,v4,v5}其中,v为所述路由属性,v1为所述路由属性中的可靠性,v2为所述路由属性中的延迟,v3为所述路由属性中的带宽,v4为所述路由属性中的通信质量,v5为所述路由属性中的路由距离;根据预设的源路由的路由属性确定所述路由属性表中的目标路由;选取所述目标路由中的路由属性最高的路由为最佳路由。10.一种基于负载均衡的路由分发系统,其特征在于,所述系统包括:业务参数配置文件生成模块,用于获取业务报文数据内容,对所述业务报文数据内容进行业务分类,得到业务报文数据内容类型,根据所述业务报文数据内容类型进行业务参数配置,得到业务参数配置文件;线程状态数据监测模块,用于根据所述业务参数配置文件中的业务识别码调用资源调度线程组,利用预设的状态监测算法监测所述资源调度线程组中工作线程的线程状态数据;线程状态数据共享模块,用于通过预设的共享数据区将所述线程状态数据进行数据共享,得到共享线程状态数据,提取所述共享线程状态数据中的线程流量数据;最佳路由选择模块,用于利用预设的智能路由算法根据所述业务报文数据内容类型及所述线程流量数据选择最佳路由,对所述业务报文数据内容进行业务分级,得到业务报文数据内容级别;路由分发模块,用于根据所述最佳路由生成路由分发路径,按照所述路由分发路径及所述业务报文数据内容级别进行路由分发。

技术总结
本发明涉及网络通信技术领域,揭露了一种基于负载均衡的路由分发方法及系统,包括:对业务报文数据内容进行业务分类,根据业务报文数据内容类型进行业务参数配置,得到业务参数配置文件;根据业务参数配置文件中的业务识别码调用资源调度线程组,监测资源调度线程组中工作线程的线程状态数据;将线程状态数据进行数据共享,得到共享线程状态数据,提取共享线程状态数据中的线程流量数据;根据业务报文数据内容类型及线程流量数据选择最佳路由,对业务报文数据内容进行业务分级,得到业务报文数据内容级别;根据最佳路由生成路由分发路径,按照路由分发路径及业务报文数据内容级别进行路由分发。本发明可以提高路由分发时的流量分配均衡度。分配均衡度。分配均衡度。


技术研发人员:刘冬青
受保护的技术使用者:乘乘智数科技(深圳)有限公司
技术研发日:2023.07.03
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐