CN115309732A - 基于配置请求分流的方法、装置、设备及存储介质 - Google Patents
基于配置请求分流的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115309732A CN115309732A CN202211009005.1A CN202211009005A CN115309732A CN 115309732 A CN115309732 A CN 115309732A CN 202211009005 A CN202211009005 A CN 202211009005A CN 115309732 A CN115309732 A CN 115309732A
- Authority
- CN
- China
- Prior art keywords
- configuration
- transaction request
- information
- configuration table
- white list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机技术领域,特别是涉及到一种基于配置请求分流的方法、装置、设备及存储介质,其中方法包括:当接收到交易请求时,获取所述交易请求的配置信息;根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,所述目标信息为分流白名单配置表中的一个或多个配置信息;若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中。通过目标信息匹配和分流计算规则控制分流,解决现有技术中少部分请求不适用新逻辑系统试运行的场景时,不能根据配置进行部分请求分流的技术问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及到一种基于配置请求分流的方法、装置、设备及存储介质。
背景技术
请求分流是将上游系统对本系统的接口调用进行转发分配的方式,以达到在上游系统不做代码改动的情况下对下游系统进行代码迁移或不同系统版本的试运行。进而进一步观察不同分流分支上代码的执行结果与数据。目前请求分流的方式主要有按上游系统id、按系统配置进行全量切换的方式,对于需要细分流量,将少部分请求进行新逻辑系统试运行的场景不太适用,不能根据配置进行部分请求分流。
发明内容
本申请的主要目的为提供一种基于配置请求分流的方法、装置、设备及存储介质,旨在解决现有技术中少部分请求不适用新逻辑系统试运行的场景时,不能根据配置进行部分请求分流的技术问题。
为了实现上述发明目的,本申请提出一种基于配置请求分流的方法,所述方法包括:
当接收到交易请求时,获取所述交易请求的配置信息;
根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息;
若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
进一步地,所述若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数,包括:
获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数;
将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数;
将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
进一步地,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表。
进一步地,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
根据新逻辑系统交易请求的处理需求,调整所述比较数的大小。
进一步地,所述根据新逻辑系统交易请求的处理需求,调整所述比较数的大小之后,包括:
将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
本申请提供一种基于配置请求分流的装置,所述装置包括:
配置信息获取模块,用于当接收到交易请求时,获取所述交易请求的配置信息;
白名单分流模块,用于根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息;
取模分流模块,用于若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
进一步地,所述基于配置请求分流的装置,所述装置还包括:
数据运算模块,用于获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数;将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数;将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
进一步地,所述基于配置请求分流的装置,所述装置还包括:
配置表储存模块,用于将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请提供的一种基于配置请求分流的方法,通过对特定的白名单进行验证,白名单验证无误后,通过分流计算规则控制分流,分流量可以按照比例与目标信息进行调整,减少系统风险。分流白名单配置表和分流计算规则配置表有特定字段可以查询业务类型,不同分流场景查询配置表时,可通过该字段约定的特地枚举值进行查询,以查询到对应业务类型的配置,满足业务验证的需求。
附图说明
图1为本申请一实施例的基于配置请求分流的方法的流程示意图;
图2为本申请一实施例的基于配置请求分流的装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例中提供一种基于配置请求分流的方法,包括步骤S1-S3,具体地:
S1、当接收到交易请求时,获取所述交易请求的配置信息。
具体地,对于步骤S1,当接收到交易请求时,根据该交易请求的配置信息,包括该交易请求对应的用户id、账户号、二类户账号、二类户卡号、业务类型等配置信息。根据配置信息判断该交易请求是否符合分流白名单配置表和分流计算规则配置表的配置信息要求,将符合配置信息要求的交易请求分流到新逻辑系统中。
S2、根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息。
具体地,对于步骤S2,分流白名单配置表包括例如用户id、账户号、二类户账号、二类户卡号、业务类型、创建人、创建时间、更新人、更新时间等预设的交易请求配置信息。可以将其中一个或多个配置信息设为目标信息,例如将二类户卡号前五位为“12345”设为目标信息,则二类户卡号前五位相同的二类户卡号的交易请求可以通过白名单验证。或设置业务类型为目标信息,将符合指定业务类型的交易请求判定通过白名单验证。通过这一步骤可以对配置信息进行一次筛选,将不符合要求的配置信息对应的交易请求筛选出来,分流到旧逻辑系统或用其他方式处理该交易请求。通过白名单验证的交易请求则进一步按照分流计算规则配置表进行信息值计算,判断所述交易请求是否可以分流到新逻辑系统中。分流白名单配置表中有业务类型字段可以查询业务类型,不同分流场景查询配置表时,可通过该字段约定的特地枚举值进行查询,以查询到对应业务类型的配置,满足业务验证的需求。
S3、若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
具体地,对于步骤S3,将目标信息的转化值与分流计算规则配置表的取模除数与比较数进行计算,将符合要求的目标信息的转化值对应的交易请求分流到新逻辑系统中进行处理,不符合要求的交易请求则分流到旧逻辑系统或用其他方式处理该交易请求。通过这一步骤可以控制通过白名单验证的部分交易请求分流到新逻辑系统中,灵活控制分流比例,实现了相同目标信息下部分请求分流的功能。
在一个实施例中,上述若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数的步骤S3,包括:
S301、获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数。
S302、将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数。
S303、将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
具体地,对于步骤S301,在分流计算规则配置表中,包含取模除数、比较数、业务类型、是否生效、创建人、创建时间、更新人、更新时间等配置数据。其中比较数是可以根据新逻辑系统交易请求的处理需求来进行相应调整的,用于与交易请求信息中的目标信息的转化值进行运算结果比较,判断所述交易请求是否可以分流到新逻辑系统中。分流计算规则配置表有业务类型字段可以查询业务类型,不同分流场景查询配置表时,可通过该字段约定的特地枚举值进行查询,以查询到对应业务类型的配置,满足业务验证的需求。
具体地,对于步骤S302和S303,hash值又称为散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。例如,hello转化的hash值可以为99162322、worldhash转化的hash值可以为113318802、a转化的hash值可以为97。好的散列函数在输入域中很少出现散列冲突。所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果,具有这种性质的散列函数称为单向散列函数。但另一方面,散列函数的输入和输出不是唯一对应关系的,如果两个散列值相同,两个输入值很可能是相同的。但也可能不同,这种情况称为“散列碰撞(collision)”,这通常是两个不同长度的输入值,刻意计算出相同的输出值。散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位。常用Hash函数有:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。用JDK8中java.lang.Math.floorMod函数进行除法运算,JDK(Java Development Kit),从字面意思翻译过来就是java开发的工具。可以这样理解JDK就是java。java是一种编程语言和计算平台。java.lang.Math.floorMod()是java中的内置数学函数,该函数接受股息值和除数的值两个参数,即交易请求信息中的目标信息的hash值和取模除数。经过该函数运算可以得到余数。余数与设定的比较数进行比较,若所述余数小于或等于所述比较数,则将该交易请求信息分流到新逻辑系统中。通过这一步骤可以控制白名单中相同目标信息的交易请求,部分分流进新逻辑系统,控制分流的交易请求量。
在一个实施例中,上述当接收到交易请求时,获取所述交易请求的配置信息的步骤S1之前,包括:
S101、通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表。
具体地,对于步骤S101,DML(Data Manipulation Language)语句:数据操纵语句。DML语句是开发人员使用最频繁的操作,用于添加、修改、删除和查询数据库记录,并检查数据完整性。DML操作的对象是库表的数据(记录),对数据库其中的对象和数据运行访问工作的编程语句,通常是数据库专用编程语言之中的一个子集,例如在信息软件产业通行标准的SQL语言中,主要包括插入(insert):将数据插入到数据库对象中的指令,可以插入数据的数据库对象有数据表以及可更新查看表两种;更新(update):指令是依给定条件,将匹配条件的数据表中的数据更新为新的数值;删除(delete):指令为自数据库对象中删除数据的指令;查询(select):查询表格内字段数据的指令,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表,有助于对分流白名单配置表中预设的交易请求信息进行管理。
在一个实施例中,上述当接收到交易请求时,获取所述交易请求的配置信息的步骤S1之前,包括:
S102、根据新逻辑系统交易请求的处理需求,调整所述比较数的大小。
具体地,对于步骤S102,在刚开始使用新逻辑系统处理交易请求时,可以将比较数调小,分流进新逻辑系统的交易请求数就会少一些。当新逻辑系统运行一段时间,且处理的数据无误后,可以逐步调大比较数,分流进新逻辑系统的交易请求数就会增加。例如,取模除数为100时,比较数先设置为10,此时只有10%的交易请求会分流进新逻辑系统;当比较数调整为30、50或100时,相应的30%、50%或100%的交易请求会分流进新逻辑系统。100%的交易请求分流进新逻辑系统时,即所有通过白名单验证的交易请求都会分流进新逻辑系统。通过调整比较数,可以控制分流的交易请求量,实现部分分流。在对新逻辑系统一步步增加交易请求量的过程中,也可以验证新逻辑系统可靠性。
在一个实施例中,上述根据新逻辑系统交易请求的处理需求,调整所述比较数的大小的步骤S102之后,包括:
S103、将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
具体地,对于步骤S103,随着业务增长,分流进新逻辑系统的交易请求量上涨后,可以将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中,每次查询分流白名单配置表和分流计算规则配置表时只需查询缓存,以此减少数据库的访问次数,减少交易耗时,提升了新逻辑系统处理交易请求的效率。redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。redis内置了复制(replication),LUA脚本(Luascripting),LRU驱动事件(LRUeviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(highavailability)。
参照图2,是本申请一实施例中基于配置请求分流的装置结构框图,装置包括:
配置信息获取模块100,用于当接收到交易请求时,获取所述交易请求的配置信息;
白名单分流模块200,用于根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息;
取模分流模块300,用于若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
具体地,对于配置信息获取模块100,当接收到交易请求时,根据该交易请求的配置信息,包括该交易请求对应的用户id、账户号、二类户账号、二类户卡号、业务类型等配置信息。根据配置信息判断该交易请求是否符合分流白名单配置表和分流计算规则配置表的配置信息要求,将符合配置信息要求的交易请求分流到新逻辑系统中。
具体地,对于白名单分流模块200,分流白名单配置表包括例如用户id、账户号、二类户账号、二类户卡号、业务类型、创建人、创建时间、更新人、更新时间等预设的交易请求配置信息。可以将其中一个或多个配置信息设为目标信息,例如将二类户卡号前五位为“12345”设为目标信息,则二类户卡号前五位相同的二类户卡号的交易请求可以通过白名单验证。或设置业务类型为目标信息,将符合指定业务类型的交易请求判定通过白名单验证。通过这一步骤可以对配置信息进行一次筛选,将不符合要求的配置信息对应的交易请求筛选出来,分流到旧逻辑系统或用其他方式处理该交易请求。通过白名单验证的交易请求则进一步按照分流计算规则配置表进行信息值计算,判断所述交易请求是否可以分流到新逻辑系统中。分流白名单配置表中有业务类型字段可以查询业务类型,不同分流场景查询配置表时,可通过该字段约定的特地枚举值进行查询,以查询到对应业务类型的配置,满足业务验证的需求。
具体地,对于取模分流模块300,将目标信息的转化值与分流计算规则配置表的取模除数与比较数进行计算,将符合要求的目标信息的转化值对应的交易请求分流到新逻辑系统中进行处理,不符合要求的交易请求则分流到旧逻辑系统或用其他方式处理该交易请求。通过这一步骤可以控制通过白名单验证的部分交易请求分流到新逻辑系统中,灵活控制分流比例,实现了相同目标信息下部分请求分流的功能。
在一个实施例中,上述基于配置请求分流的装置,还包括:
数据运算模块,用于获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数;将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数;将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
具体地,对于数据运算模块,在分流计算规则配置表中,包含取模除数、比较数、业务类型、是否生效、创建人、创建时间、更新人、更新时间等配置数据。其中比较数是可以根据新逻辑系统交易请求的处理需求来进行相应调整的,用于与交易请求信息中的目标信息的转化值进行运算结果比较,判断所述交易请求是否可以分流到新逻辑系统中。分流计算规则配置表有业务类型字段可以查询业务类型,不同分流场景查询配置表时,可通过该字段约定的特地枚举值进行查询,以查询到对应业务类型的配置,满足业务验证的需求。hash值又称为散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。例如,hello转化的hash值可以为99162322、worldhash转化的hash值可以为113318802、a转化的hash值可以为97。好的散列函数在输入域中很少出现散列冲突。所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果,具有这种性质的散列函数称为单向散列函数。但另一方面,散列函数的输入和输出不是唯一对应关系的,如果两个散列值相同,两个输入值很可能是相同的。但也可能不同,这种情况称为“散列碰撞(collision)”,这通常是两个不同长度的输入值,刻意计算出相同的输出值。散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位。常用Hash函数有:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。用JDK8中java.lang.Math.floorMod函数进行除法运算,JDK(Java Development Kit),从字面意思翻译过来就是java开发的工具。可以这样理解JDK就是java。java是一种编程语言和计算平台。java.lang.Math.floorMod()是java中的内置数学函数,该函数接受股息值和除数的值两个参数,即交易请求信息中的目标信息的hash值和取模除数。经过该函数运算可以得到余数。余数与设定的比较数进行比较,若所述余数小于或等于所述比较数,则将该交易请求信息分流到新逻辑系统中。通过这一步骤可以控制白名单中相同目标信息的交易请求,部分分流进新逻辑系统,控制分流的交易请求量。
在一个实施例中,上述基于配置请求分流的装置,还包括:
预设信息配置模块,用于通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表。
具体地,对于预设信息配置模块,DML(Data Manipulation Language)语句:数据操纵语句。DML语句是开发人员使用最频繁的操作,用于添加、修改、删除和查询数据库记录,并检查数据完整性。DML操作的对象是库表的数据(记录),对数据库其中的对象和数据运行访问工作的编程语句,通常是数据库专用编程语言之中的一个子集,例如在信息软件产业通行标准的SQL语言中,主要包括插入(insert):将数据插入到数据库对象中的指令,可以插入数据的数据库对象有数据表以及可更新查看表两种;更新(update):指令是依给定条件,将匹配条件的数据表中的数据更新为新的数值;删除(delete):指令为自数据库对象中删除数据的指令;查询(select):查询表格内字段数据的指令,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表,有助于对分流白名单配置表中预设的交易请求信息进行管理。
在一个实施例中,上述基于配置请求分流的装置,还包括:
数据调整模块,用于根据新逻辑系统交易请求的处理需求,调整所述比较数的大小。
具体地,对于数据调整模块,在刚开始使用新逻辑系统处理交易请求时,可以将比较数调小,分流进新逻辑系统的交易请求数就会少一些。当新逻辑系统运行一段时间,且处理的数据无误后,可以逐步调大比较数,分流进新逻辑系统的交易请求数就会增加。例如,取模除数为100时,比较数先设置为10,此时只有10%的交易请求会分流进新逻辑系统;当比较数调整为30、50或100时,相应的30%、50%或100%的交易请求会分流进新逻辑系统。100%的交易请求分流进新逻辑系统时,即所有通过白名单验证的交易请求都会分流进新逻辑系统。通过调整比较数,可以控制分流的交易请求量,实现部分分流。在对新逻辑系统一步步增加交易请求量的过程中,也可以验证新逻辑系统可靠性。
在一个实施例中,上述基于配置请求分流的装置,还包括:
配置表储存模块,用于将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
具体地,对于配置表储存模块,随着业务增长,分流进新逻辑系统的交易请求量上涨后,可以将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中,每次查询分流白名单配置表和分流计算规则配置表时只需查询缓存,以此减少数据库的访问次数,减少交易耗时,提升了新逻辑系统处理交易请求的效率。redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。redis内置了复制(replication),LUA脚本(Luascripting),LRU驱动事件(LRUeviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(highavailability)。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于配置请求分流的方法运行数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述任一实施例的一种基于配置请求分流的方法。
在一个实施例中,上述基于配置请求分流的方法,包括:
当接收到交易请求时,获取所述交易请求的配置信息;
根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息;
若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
在一个实施例中,所述若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数,包括:
获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数;
将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数;
将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
在一个实施例中,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表。
在一个实施例中,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
根据新逻辑系统交易请求的处理需求,调整所述比较数的大小。
在一个实施例中,所述根据新逻辑系统交易请求的处理需求,调整所述比较数的大小之后,包括:
将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种基于配置请求分流的方法。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
在一个实施例中,上述基于配置请求分流的方法,包括:
当接收到交易请求时,获取所述交易请求的配置信息;
根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息;
若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
在一个实施例中,所述若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数,包括:
获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数;
将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数;
将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
在一个实施例中,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表。
在一个实施例中,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
根据新逻辑系统交易请求的处理需求,调整所述比较数的大小。
在一个实施例中,所述根据新逻辑系统交易请求的处理需求,调整所述比较数的大小之后,包括:
将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
本申请提供的一种基于配置请求分流的方法,通过对特定的白名单进行验证,白名单验证无误后,通过分流计算规则控制分流,分流量可以按照比例与目标信息进行调整,减少系统风险。分流白名单配置表和分流计算规则配置表有特定字段可以查询业务类型,不同分流场景查询配置表时,可通过该字段约定的特地枚举值进行查询,以查询到对应业务类型的配置,满足业务验证的需求。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于配置请求分流的方法,其特征在于,所述方法包括:
当接收到交易请求时,获取所述交易请求的配置信息;
根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息;
若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
2.根据权利要求1所述的基于配置请求分流的方法,其特征在于,所述若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数,包括:
获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数;
将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数;
将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
3.根据权利要求1所述的基于配置请求分流的方法,其特征在于,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
通过插入DML语句的方式,将预设的交易请求信息配置进入分流白名单配置表。
4.根据权利要求2所述的基于配置请求分流的方法,其特征在于,所述当接收到交易请求时,获取所述交易请求的配置信息之前,包括:
根据新逻辑系统交易请求的处理需求,调整所述比较数的大小。
5.根据权利要求4所述的基于配置请求分流的方法,其特征在于,所述根据新逻辑系统交易请求的处理需求,调整所述比较数的大小之后,包括:
将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
6.一种基于配置请求分流的装置,其特征在于,所述装置包括:
配置信息获取模块,用于当接收到交易请求时,获取所述交易请求的配置信息;
白名单分流模块,用于根据所述配置信息查询分流白名单配置表,判断所述配置信息是否与所述分流白名单配置表中的目标信息匹配,其中,所述分流白名单配置表包含预设的交易请求配置信息,所述目标信息为分流白名单配置表中的一个或多个配置信息;
取模分流模块,用于若所述配置信息与所述目标信息匹配,则查询分流计算规则配置表,判断所述配置信息的转化值是否符合所述执行参数的要求,从而确定所述交易请求是否可以分流到新逻辑系统中,其中,所述分流计算规则配置表包含新逻辑系统的执行参数。
7.根据权利要求6所述的基于配置请求分流的装置,其特征在于,还包括:
数据运算模块,用于获取新逻辑系统当前设定的分流计算规则配置表中的取模除数与比较数;将所述目标信息取hash值,得到所述目标信息对应的数字,所述数字除以所述取模除数,得到余数;将所述余数与所述比较数进行比较,若所述余数小于或等于所述比较数,将所述交易请求信息分流到新逻辑系统中。
8.根据权利要求6所述的基于配置请求分流的装置,其特征在于,还包括:
配置表储存模块,用于将分流白名单配置表和分流计算规则配置表中的配置数据放入redis缓存中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211009005.1A CN115309732A (zh) | 2022-08-22 | 2022-08-22 | 基于配置请求分流的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211009005.1A CN115309732A (zh) | 2022-08-22 | 2022-08-22 | 基于配置请求分流的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115309732A true CN115309732A (zh) | 2022-11-08 |
Family
ID=83863206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211009005.1A Pending CN115309732A (zh) | 2022-08-22 | 2022-08-22 | 基于配置请求分流的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115309732A (zh) |
-
2022
- 2022-08-22 CN CN202211009005.1A patent/CN115309732A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325041B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
US6304867B1 (en) | System and method for enhanced performance of a relational database management system through the use of application-specific memory-resident data | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN103514223A (zh) | 一种数据仓库数据同步方法和系统 | |
CN111158715B (zh) | 灰度发布控制方法及系统 | |
CN108415998B (zh) | 应用依赖关系更新方法、终端、设备及存储介质 | |
CN109460252B (zh) | 基于git的配置文件处理方法、装置和计算机设备 | |
CN109408507B (zh) | 多属性数据的处理方法、装置、设备及可读存储介质 | |
CN111737227B (zh) | 数据修改方法及系统 | |
CN112380130A (zh) | 基于调用依赖关系的应用测试方法和装置 | |
CN115794839B (zh) | 基于Php+Mysql体系的数据归集方法、计算机设备及存储介质 | |
CN110727526A (zh) | 大数据计算任务的处理方法和系统 | |
CN111813744A (zh) | 文件的搜索方法、装置、设备及存储介质 | |
CN115757629A (zh) | 多源异构数据增量同步方法、系统、存储介质和电子设备 | |
CN112948504B (zh) | 数据采集方法、装置、计算机设备和存储介质 | |
CN112069223B (zh) | 数据获取需求处理方法、装置、计算机设备和存储介质 | |
CN113656098A (zh) | 配置获取方法及系统 | |
CN113268265A (zh) | 字典数据提取方法、装置、设备及存储介质 | |
CN111831687A (zh) | 数据查询的优化方法、装置、计算机设备和存储介质 | |
CN115309732A (zh) | 基于配置请求分流的方法、装置、设备及存储介质 | |
CN113535206B (zh) | 多版本代码升级方法及系统 | |
CN110866007A (zh) | 大数据应用和表的信息管理方法、系统和计算机设备 | |
CN115757172A (zh) | 测试执行方法、装置、存储介质及计算机设备 | |
CN115374083A (zh) | 数据源的切换方法、装置、电子设备及存储介质 | |
CN112817931B (zh) | 一种增量版本文件的生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |