对数据写入请求进行流量均衡的方法和系统技术方案

技术编号:23050117 阅读:21 留言:0更新日期:2020-01-07 14:46
本公开涉及一种用于对数据写入请求进行流量均衡的方法和系统。该方法包括:获取将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号;解析所述数据写入请求以得到请求参数,所述参数至少包括所述业务标识符和所述序列号;基于解析出的所述参数来计算所述数据写入请求的散列值,其中所述散列值能唯一地标识所述数据写入请求;以及基于所述散列值来将所述数据写入请求路由到相应的数据库,以将数据写入该数据库。

The method and system of traffic balance for data write request

【技术实现步骤摘要】
对数据写入请求进行流量均衡的方法和系统
本公开涉及对数据写入请求进行流量均衡的方法和系统。
技术介绍
对于需要使用大型数据库的系统(例如,金融公司的账务处理系统、购物网站的订单处理系统,等等)而言,一般都会进行数据库的分库分表操作,也就是将要写入的数据(例如,交易记录、订单,等等)按照一定规则分散到不同的数据库,达到流量均衡的目的。然而,目前的流量均衡策略一般与业务强耦合,而且需要人工配置流量均衡的规则。从而,如果漏配置或者配置错误,都可能达不到流量负载均衡的效果,导致某一些数据库流量过大影响性能和/或导致故障。
技术实现思路
本公开提出了一种将原本需要手动配置的路由功能沉入业务逻辑的方案。该方案通过使用散列算法对请求参数进行散列并根据散列值得出要路由到的数据分库,解决了负载均衡问题。本公开的这一方案利用散列函数的随机性来达成负载和/或流量均衡,不需要配置路由表,避免了手工配置错误或者遗漏以及业务请求的发起者或者业务标识的分表位集中导致的流量不均衡现象,不仅解放了生产力而且达到了负载均衡的效果。根据本公开的第一方面,提供了一种用于对数据写入请求进行流量均衡的方法,包括:获取将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号;解析所述数据写入请求以得到请求参数,所述参数至少包括所述业务标识符和所述序列号;基于解析出的所述参数来计算所述数据写入请求的散列值,其中所述散列值能唯一地标识所述数据写入请求;以及基于所述散列值来将所述数据写入请求路由到相应的数据库,以将数据写入该数据库。在一实施例中,所述散列值是至少对所述数据写入请求中包括的所述业务标识符和所述序列号应用散列函数来获得的。在另一实施例中,所述散列函数包括以下中的任一者:MD4、MD5、SHA-1。在又一实施例中,数据库分库数目是N,其中N是大于等于1的整数,并且各数据库按0到N-1来编号,并且基于所述散列值来将所述数据写入请求路由到相应的数据库包括:通过使用函数运算将所述散列值映射到相应数据库编号;以及将所述数据写入请求路由到相应编号的数据库。在又一实施例中,所述函数运算包括模运算,并且通过使用函数运算将所述散列值映射到相应数据库编号包括:根据数据库分库数目N对所述散列值进行模运算以得到余数;以及将所述数据写入请求路由到编号等于所述余数的数据库。在又一实施例中,所述方法还包括在进行模运算之前,根据预定映射将所述散列值中的字母替换成数字,以得到纯数字形式的散列值。在又一实施例中,所述模运算进一步包括:将所述散列值拆分成两段或更多段,并根据预定值对每一段进行模运算;将针对各段所得到的各个余数累加在一起以得到总和;以及根据数据库分库数目对所述总和进行模运算以得到余数。在又一实施例中,所述预定值大于等于所述数据库分库数目N。在又一实施例中,所述数据写入请求包括汇总记账请求。在又一实施例中,所述方法还包括在解析所述数据写入请求之前确定该请求是否是汇总记账请求,并且如果是则执行该方法的后续解析请求和计算散列值操作,相反如果否则按照普通方式进行记账。根据本公开的第二方面,提供了一种用于对数据写入请求进行流量均衡的系统,包括:数据写入请求源设备,其被配置成产生将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号;流量均衡服务,其被配置成:获取由所述数据写入请求源设备所产生的数据写入请求;解析所述数据写入请求以得到请求参数,所述参数至少包括所述业务标识符和所述序列号;基于解析出的所述参数来计算所述数据写入请求的散列值,其中所述散列值能唯一地标识所述数据写入请求;以及基于所述散列值来将所述数据写入请求路由到相应的数据库,以将数据写入该数据库;以及数据库,所述数据库接收由所述流量均衡服务路由的数据写入请求以写入相应数据。在一实施例中,所述散列值是至少对所述数据写入请求中包括的所述业务标识符和所述序列号应用散列函数来获得的。在另一实施例中,所述散列函数包括以下中的任一者:MD4、MD5、SHA-1。在又一实施例中,所述数据库包括N个数据库,其中N是大于等于1的整数,并且各数据库按0到N-1来编号,并且所述流量均衡服务还被配置成:通过使用函数运算将所述散列值映射到相应数据库编号;以及将所述数据写入请求路由到相应编号的数据库。在又一实施例中,所述函数运算包括模运算,并且所述流量均衡服务还被配置成:根据数据库的数目N对所述散列值进行模运算以得到余数;以及将所述数据写入请求路由到编号等于所述余数的数据库。在又一实施例中,所述流量均衡服务还被配置成在进行模运算之前,根据预定映射将所述散列值中的字母替换成数字,以得到纯数字形式的散列值。在又一实施例中,所述模运算进一步包括:将所述散列值拆分成两段或更多段,并根据预定值对每一段进行模运算;将针对各段所得到的各个余数累加在一起以得到总和;以及根据数据库分库数目对所述总和进行模运算以得到余数。在又一实施例中,所述预定值大于等于所述数据库分库数目N。在又一实施例中,所述数据写入请求包括汇总记账请求。在又一实施例中,所述流量均衡服务还被配置成在解析所述数据写入请求之前确定该请求是否是汇总记账请求,并且如果是则执行后续解析请求和计算散列值操作,相反如果否则按照普通方式进行记账。根据本公开的第三方面,提供了一种存储有计算机可执行指令的计算机可读介质,所述指令在由计算机执行时使得所述计算机执行根据本公开的第一方面所述的方法。各方面一般包括如基本上在本文参照附图所描述并且如通过附图所解说的方法、装备、系统、计算机程序产品和处理系统。前述内容已较宽泛地勾勒出根据本公开的示例的特征和技术优势以使下面的详细描述可以被更好地理解。附加的特征和优势将在此后描述。所公开的概念和具体示例可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。此类等效构造并不背离所附权利要求书的范围。本文所公开的概念的特性在其组织和操作方法两方面以及相关联的优势将因结合附图来考虑以下描述而被更好地理解。每一附图是出于解说和描述目的来提供的,且并不定义对权利要求的限定。附图说明为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。不同附图中的相同附图标记可标识相同或相似的元素。图1是现有技术中用于对数据写入请求进行流量均衡的示例方法的流程图;图2是根据本公开的一实施例的对数据写入请求进行流量均衡的示例方法的流程图;图3是根据本公开的一实施例的对数据写入请求进行流量均衡的示例系统的示意图;图4是根据本公开的一实施例的对汇总记账请求进行流量均衡的示例方法的流程图;图5是根据本公开的一实本文档来自技高网...

【技术保护点】
1.一种用于对数据写入请求进行流量均衡的方法,包括:/n获取将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号;/n解析所述数据写入请求以得到请求参数,所述参数至少包括所述业务标识符和所述序列号;/n基于解析出的所述参数来计算所述数据写入请求的散列值,其中所述散列值能唯一地标识所述数据写入请求;以及/n基于所述散列值来将所述数据写入请求路由到相应的数据库,以将数据写入该数据库。/n

【技术特征摘要】
1.一种用于对数据写入请求进行流量均衡的方法,包括:
获取将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号;
解析所述数据写入请求以得到请求参数,所述参数至少包括所述业务标识符和所述序列号;
基于解析出的所述参数来计算所述数据写入请求的散列值,其中所述散列值能唯一地标识所述数据写入请求;以及
基于所述散列值来将所述数据写入请求路由到相应的数据库,以将数据写入该数据库。


2.如权利要求1所述的方法,其特征在于,所述散列值是至少对所述数据写入请求中包括的所述业务标识符和所述序列号应用散列函数来获得的。


3.如权利要求2所述的方法,其特征在于,所述散列函数包括以下中的任一者:MD4、MD5、SHA-1。


4.如权利要求1所述的方法,其特征在于,数据库分库数目是N,其中N是大于等于1的整数,并且各数据库按0到N-1来编号,并且基于所述散列值来将所述数据写入请求路由到相应的数据库包括:
通过使用函数运算将所述散列值映射到相应数据库编号;以及
将所述数据写入请求路由到相应编号的数据库。


5.如权利要求4所述的方法,其特征在于,所述函数运算包括模运算,并且通过使用函数运算将所述散列值映射到相应数据库编号包括:
根据数据库分库数目N对所述散列值进行模运算以得到余数;以及
将所述数据写入请求路由到编号等于所述余数的数据库。


6.如权利要求5所述的方法,其特征在于,在进行模运算之前,根据预定映射将所述散列值中的字母替换成数字,以得到纯数字形式的散列值。


7.如权利要求6所述的方法,其特征在于,所述模运算进一步包括:
将所述散列值拆分成两段或更多段,并根据预定值对每一段进行模运算;
将针对各段所得到的各个余数累加在一起以得到总和;以及
根据数据库分库数目对所述总和进行模运算以得到余数。


8.如权利要求7所述的方法,其特征在于,所述预定值大于等于所述数据库分库数目N。


9.如权利要求1所述的方法,其特征在于,所述数据写入请求包括汇总记账请求。


10.如权利要求9所述的方法,其特征在于,还包括在解析所述数据写入请求之前确定该请求是否是汇总记账请求,并且如果是则执行该方法的后续解析请求和计算散列值操作,相反如果否则按照普通方式进行记账。


11.一种用于对数据写入请求进行流量均衡的系统,包括:
数据写入请求源设备,其被配置成产生将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业...

【专利技术属性】
技术研发人员:王磊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1