CN108810130B - 一种分配请求规划的方法和装置 - Google Patents
一种分配请求规划的方法和装置 Download PDFInfo
- Publication number
- CN108810130B CN108810130B CN201810576988.4A CN201810576988A CN108810130B CN 108810130 B CN108810130 B CN 108810130B CN 201810576988 A CN201810576988 A CN 201810576988A CN 108810130 B CN108810130 B CN 108810130B
- Authority
- CN
- China
- Prior art keywords
- index
- bucket
- request
- plan
- access request
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种分配请求规划的方法和装置,涉及计算机技术领域。该方法的一个具体实施方式包括:接收索引桶与请求规划的映射关系;根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引;或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引;其中,所述桶索引包括所述索引桶及其对应的请求规划。该实施方式灵活调整访问流量与业务逻辑流程。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分配请求规划的方法、装置、电子设备和计算机可读介质。
背景技术
在新业务逻辑流程建立和发布之前,往往需要进行各种测试来验证业务逻辑流程的正确性和稳定性,比如有多种业务逻辑流程的话,可能需要多个发布版本来实现;或者在业务流程发布之后,对业务逻辑流程进行更新时,也需要对更新后的业务流程进行验证。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的业务流程测试技术往往是全局测试技术,即发布不同的版本用来测试,业务逻辑流程频繁上线,工作量大,不能根据访问请求的流量和业务逻辑流程灵活配置。
发明内容
有鉴于此,本发明实施例提供一种分配请求规划的方法和装置,能够根据需求使不同的访问请求流量导入不同的业务逻辑流程,可以在不影响现有业务逻辑流程的情况下,灵活调整访问流量与业务逻辑流程。
为实现上述目的,根据本发明实施例的一个方面,提供了一种分配请求规划的方法,包括:接收索引桶与请求规划的映射关系;根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引;或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引;其中,所述桶索引包括所述索引桶及其对应的请求规划。
可选地,新建所述请求规划的桶索引或者以新建版本的桶索引替换现有版本的桶索引之后,所述方法还包括:接收并解析用户的访问请求,以获得用户信息;根据所述用户信息和索引桶信息,确定所述访问请求对应的索引桶;根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
可选地,新建所述请求规划的桶索引或者以新建版本的桶索引替换现有版本的桶索引之后,所述方法还包括:接收并解析用户的访问请求,以获得用户标识,采用哈希算法和所述用户标识确定用户的索引值;根据所述索引值,遍历各个索引桶的索引值范围,以确定所述访问请求对应的索引桶;根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
可选地,接收索引桶与请求规划的映射关系之前,所述方法还包括:创建注解器,其中所述请求规划中至少包括一个注解器,所述注解器之间是线性结构或拓扑结构,其中,所述注解器关联对应的业务逻辑。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种分配请求规划的装置,包括:接收模块,用于接收索引桶与请求规划的映射关系;索引模块,用于根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引;或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引;其中,所述桶索引包括所述索引桶及其对应的请求规划。
可选地,所述装置还包括:访问模块,用于接收并解析用户的访问请求,以获得用户信息;查询模块,用于根据所述用户信息和索引桶信息,确定所述访问请求对应的索引桶;规划模块,用于根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
可选地,所述访问模块还用于接收并解析用户的访问请求,以获得用户标识,采用哈希算法和所述用户标识确定用户的索引值;所述查询模块还用于根据所述索引值,遍历各个索引桶的索引值范围,以确定所述访问请求对应的索引桶;所述规划模块还用于根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
可选地,所述装置还包括:注解模块,用于创建注解器,其中所述请求规划中至少包括一个注解器,所述注解器之间是线性结构或拓扑结构,其中,所述注解器关联对应的业务逻辑。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现一种分配请求规划的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被一个或多个处理器执行时实现一种分配请求规划的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用根据接收到的索引桶与请求规划的映射关系,新建所述请求规划的桶索引技术手段,所以克服了业务流程频繁上线、工作量大的技术问题,进而达到灵活调整访问流量与业务逻辑流程技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种分配请求规划的方法的主要步骤的示意图;
图2是根据本发明实施例的一种分配请求规划的装置的主要部分的示意图;
图3是本发明实施例可以应用于其中的示例性系统架构图;
图4是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的一种分配请求规划的方法的主要步骤的示意图,如图1所示:
步骤S101接收索引桶与请求规划的映射关系;此步骤的目的是可以动态接收索引桶与请求规划的映射关系,实现配置参数的灵活组合。
其中索引桶与请求规划的映射关系中还包括索引桶的划分规则、请求规划的配置信息,所述映射关系用于指示索引桶与请求规划之间的关联关系。索引桶(Bucket)用于划分访问请求的流量,将访问请求的流量按照划分规则划分为若干份,每一份为一个桶;请求规划配置信息用于配置请求规划(Query Plan),每一个请求规划对应一条业务逻辑流程。其中,所述桶索引包括所述索引桶及其对应的请求规划。
例如,索引桶的划分规则为将所有的访问请求流量按照用户ID划分为1000份,从中挑选若干份作为与某个请求规划形成映射关系;一个请求规划中可以包括多个业务逻辑,例如由业务逻辑A、业务逻辑B和业务逻辑C组成一个请求规划可以为A→B→C。
可以设置可视化前端管理界面来接收管理员输入索引桶与请求规划的映射关系,实现交互。
接收索引桶与请求规划的映射关系之前,所述方法还包括:创建注解器,其中所述请求规划中至少包括一个注解器,其中,所述注解器之间是线性结构或拓扑结构,其中,所述注解器关联对应的业务逻辑。每个注解器用来标记和执行对应的业务逻辑,所以在业务逻辑被执行之前,要创建对应的注解器,注解器是可以根据用户自定义的。线性结构是由若干个的注解器串行组成,每个注解器只有一个输入和一个输出,业务逻辑流程执行的时候,先转发给第一个注解器,执行相应的业务逻辑,之后由当前注解器决定是否要进一步传递给下游的注解器处理,如果不需要,直接原路返回响应结果。拓扑结构是由若干个注解器组成一个拓扑结构,每个注解器就是拓扑结构中的一个节点,每个注解器可以有多个输入和多个输出,各个注解器之间靠输入和输出连接起来,也就是拓扑结构的边,每一个拓扑结构都一个根节点,业务逻辑流程执行时开始于根节点,根节点会获取对应的输入变量,如果输入变量的值存在了,直接返回,否则查找这个输入是哪个注解器的输出,递归执行对应的注解器的业务逻辑,保存结果后返回,通过扫描和递归的方法,最终遍历所有的节点,得到最后的业务逻辑结果,将处理结果返回。
例如,现有注解器a、注解器b、注解器c和注解器d,可以根据请求规划配置,将请求规划设置为线性结构的a→b→c→d,或者为拓扑结构的:
表示执行c时需要a和b两个注解器的执行结果。
步骤S102表示根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引。或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引。一个完整的桶索引包括索引桶及其对应的请求规划。桶索引建立之后,就可以将接收到的访问请求分配给对应的请求规划了。
其中,不同的业务逻辑流程可以部署在不同的子服务器中,子服务器获取所述映射关系建立所述请求规划的桶索引;或者根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引,防止业务流程发生错乱。
例如,现有的桶索引是0-9号桶的访问请求对应请求规划A→B→C,新建立的桶索引是0-1号桶的访问请求对应请求规划A→B1→C,则当前的桶索引可以替换为新建立的桶索引,也可以是新建立的桶索引与桶索引——2-9号桶的访问请求对应请求规划A→B→C——共同执行。进一步地,可以比较上述实施例中业务逻辑B与B1的返回结果,进行AB测试,验证业务逻辑流程的健壮性和稳定性。
新建所述请求规划的桶索引或者以新建版本的桶索引替换现有版本的桶索引之后,所述方法还包括:接收并解析用户的访问请求,以获得用户信息(例如用户标识);根据所述用户信息和索引桶信息,确定所述访问请求对应的索引桶;根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
进一步地,新建所述请求规划的桶索引或者以新建版本的桶索引替换现有版本的桶索引之后,所述方法还包括:接收并解析用户的访问请求,以获得用户标识(例如用户ID),采用哈希算法和所述用户标识确定用户的索引值;根据所述索引值,遍历各个索引桶的索引值范围,以确定所述访问请求对应的索引桶;根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
更进一步地,可以设置访问请求流量与请求规划之间的默认映射关系,即除索引桶的部分流量之外,依然可以根据默认的联系执行业务逻辑流程,可以对索引桶部分的流量进行新业务逻辑流程的测试,而不影响现有业务逻辑流程的执行。
例如,索引桶与请求规划的映射关系是选取1/10的访问请求执行请求规划1,再选取1/10的访问请求执行请求规划2,则可以将访问请求流量分为100个索引桶,将前1-10个索引桶访问请求关联至请求规划1,将第11-20索引桶访问请求关联至请求规划2,第一个索引桶的索引值范围为1-10,最后一个索引桶的索引值范围为991-1000;当接收到用户的访问请求后,获取用户的ID,根据哈希算法计算用户ID的哈希值(哈希值的范围为1-1000),使用该哈希值作为索引值,如果得到的索引值落在1-100以内,则对应的访问请求被分配至请求规划1,如果索引值落在101-200以内,则对应的访问请求被分配至请求规划2,如果索引值落在201-1000以内,则可以对应默认的请求规划。
划分规则是根据业务逻辑需要人为定制的划分规则,除上述实施例之外的划分规则,还可以根据用户的物理地址、用户的访问记录、用户的习惯偏好、访问请求的路径等内容制定桶索引规则;相应地,用户信息也可包括为用户的物理地址、用户的访问记录等可用于划分用户的信息。
本发明实施例特别适用于当待测试的业务逻辑不涉及客户端功能时的灰度测试,例如在待测试的业务逻辑为用于服务器内部的中间处理业务的情况下,验证其不会影响现有业务逻辑和/或系统性能。
图2是根据本发明实施例的一种分配请求规划的装置200的主要部分的示意图,如图2所示:
接收模块201,用于接收索引桶与请求规划的映射关系;目的是可以动态接收索引桶与请求规划的映射关系,实现配置参数的灵活组合。
其中索引桶与请求规划的映射关系中还包括索引桶的划分规则、请求规划的配置信息,所述映射关系用于指示索引桶与请求规划之间的关联关系。索引桶(Bucket)用于划分访问请求的流量,将访问请求的流量按照划分规则划分为若干份,每一份为一个桶;请求规划配置信息用于配置请求规划(Query Plan),每一个请求规划对应一条业务逻辑流程。其中,所述桶索引包括所述索引桶及其对应的请求规划。
例如,索引桶的划分规则为将所有的访问请求流量按照用户ID划分为1000份,从中挑选若干份作为与某个请求规划形成映射关系;一个请求规划中可以包括多个业务逻辑,例如由业务逻辑A、业务逻辑B和业务逻辑C组成一个请求规划可以为A→B→C。
可以设置可视化前端管理界面来接收管理员输入索引桶与请求规划的映射关系,实现交互。
索引模块202,用于根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引;或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引。一个完整的桶索引包括索引桶及其对应的请求规划。桶索引建立之后,就可以将接收到的访问请求分配给对应的请求规划了。
其中,不同的业务逻辑流程可以部署在不同的子服务器中,子服务器获取所述映射关系建立所述请求规划的桶索引;或者根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引,防止业务流程发生错乱。
例如,现有的桶索引是0-9号桶的访问请求对应请求规划A→B→C,新建立的桶索引是0-1号桶的访问请求对应请求规划A→B1→C,则当前的桶索引可以替换为新建立的桶索引,也可以是新建立的桶索引与桶索引——2-9号桶的访问请求对应请求规划A→B→C——共同执行。进一步地,可以比较上述实施例中业务逻辑B与B1的返回结果,进行AB测试,验证业务逻辑流程的健壮性和稳定性。
装置200还可包括:访问模块,用于接收并解析用户的访问请求,以获得用户信息(例如用户标识);查询模块,用于根据所述用户信息和索引桶信息,确定所述访问请求对应的索引桶;规划模块,用于根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
所述访问模块还用于接收并解析用户的访问请求,以获得用户标识(例如用户ID),采用哈希算法和所述用户标识确定用户的索引值;所述查询模块还用于根据所述索引值,遍历各个索引桶的索引值范围,以确定所述访问请求对应的索引桶;所述规划模块还用于根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
更进一步地,可以设置访问请求流量与请求规划之间的默认映射关系,即除索引桶的部分流量之外,依然可以根据默认的联系执行业务逻辑流程,可以对索引桶部分的流量进行新业务逻辑流程的测试,而不影响现有业务逻辑流程的执行。
例如,索引桶与请求规划的映射关系是选取1/10的访问请求执行请求规划1,再选取1/10的访问请求执行请求规划2,则可以将访问请求流量分为100个索引桶,将前1-10个索引桶访问请求关联至请求规划1,将第11-20索引桶访问请求关联至请求规划2,第一个索引桶的索引值范围为1-10,最后一个索引桶的索引值范围为991-1000;当接收到用户的访问请求后,获取用户的ID,根据哈希算法计算用户ID的哈希值(哈希值的范围为1-1000),使用该哈希值作为索引值,如果得到的索引值落在1-100以内,则对应的访问请求被分配至请求规划1,如果索引值落在101-200以内,则对应的访问请求被分配至请求规划2,如果索引值落在201-1000以内,则可以对应默认的请求规划。
划分规则是根据业务逻辑需要人为定制的划分规则,除上述实施例之外的划分规则,还可以根据用户的物理地址、用户的访问记录、用户的习惯偏好、访问请求的路径等内容制定桶索引规则;相应地,用户信息也可包括为用户的物理地址、用户的访问记录等可用于划分用户的信息。
本发明实施例特别适用于当待测试的业务逻辑不涉及客户端功能时的灰度测试,例如在待测试的业务逻辑为用于服务器内部的中间处理业务的情况下,验证其不会影响现有业务逻辑和/或系统性能。
装置200还可包括:注解模块,用于创建注解器,其中所述请求规划中至少包括一个注解器,所述注解器之间是线性结构或拓扑结构,其中,所述注解器关联对应的业务逻辑。每个注解器用来标记和执行对应的业务逻辑,所以在业务逻辑被执行之前,要创建对应的注解器,注解器是可以根据用户自定义的。线性结构是由若干个的注解器串行组成,每个注解器只有一个输入和一个输出,业务逻辑流程执行的时候,先转发给第一个注解器,执行相应的业务逻辑,之后由当前注解器决定是否要进一步传递给下游的注解器处理,如果不需要,直接原路返回响应结果。拓扑结构是由若干个注解器组成一个拓扑结构,每个注解器就是拓扑结构中的一个节点,每个注解器可以有多个输入和多个输出,各个注解器之间靠输入和输出连接起来,也就是拓扑结构的边,每一个拓扑结构都一个根节点,业务逻辑流程执行时开始于根节点,根节点会获取对应的输入变量,如果输入变量的值存在了,直接返回,否则查找这个输入是哪个注解器的输出,递归执行对应的注解器的业务逻辑,保存结果后返回,通过扫描和递归的方法,最终遍历所有的节点,得到最后的业务逻辑结果,将处理结果返回。
例如,现有注解器a、注解器b、注解器c和注解器d,可以根据请求规划配置,将请求规划设置为线性结构的a→b→c→d,或者为拓扑结构的:
表示执行c时需要a和b两个注解器的执行结果。
图3示出了可以应用本发明实施例的一种分配请求规划的方法或装置的示例性系统架构300。
如图3所示,系统架构300可以包括终端设备301、302、303,网络304和服务器305。网络304用以在终端设备301、302、303和服务器305之间提供通信链路的介质。网络304可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备301、302、303通过网络304与服务器305交互,以接收或发送消息等。终端设备301、302、303上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备301、302、303可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器305可以是提供各种服务的服务器,例如对用户利用终端设备301、302、303所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的一种分配请求规划的方法一般由服务器305执行,相应地,一种分配请求规划的装置一般设置于服务器305中。
应该理解,图3中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图4所示为适于用来实现本发明实施例的终端设备的计算机系统400的结构示意图。图4所示的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本发明公开的实施例,上文步骤图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质包括计算机可读信号介质或计算机可读存储介质,或者是上述两者的任意组合。计算机可读存储介质包括但不限于电、磁、光、电磁、红外线、半导体的系统、装置或器件,或者上述内容的任意组合。计算机可读存储介质具体包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述内容的任意组合。在本发明中,计算机可读存储介质包括任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用;计算机可读的信号介质包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述信号的任意组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF(射频)等,或者上述介质的任意组合。
附图中的步骤图或框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作,步骤图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以并行地执行,有时也可以按相反的顺序执行,其执行顺序依所涉及的功能而定。也要注意的是,框图或步骤图中的每个方框以及其组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块和索引模块。其中,这些模块或单元的名称在某种情况下并不构成对该模块或单元本身的限定,例如,接收模块还可以被描述为“用于接收索引桶与请求规划的映射关系的模块”。
另一方面,本发明实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收索引桶与请求规划的映射关系;根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引;或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引;其中,所述桶索引包括所述索引桶及其对应的请求规划。
根据本发明实施例的技术方案,能够根据需求使不同的访问请求流量导入不同的业务逻辑流程,可以在不影响现有业务逻辑流程的情况下,灵活调整访问流量与业务逻辑流程。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种分配请求规划的方法,其特征在于,包括:
接收索引桶与请求规划的映射关系,其中,索引桶与请求规划的映射关系中包括索引桶的划分规则、请求规划的配置信息;
根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引;或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引;
其中,所述桶索引包括所述索引桶及其对应的请求规划。
2.根据权利要求1所述的方法,其特征在于,新建所述请求规划的桶索引或者以新建版本的桶索引替换现有版本的桶索引之后,所述方法还包括:
接收并解析用户的访问请求,以获得用户信息;
根据所述用户信息和索引桶信息,确定所述访问请求对应的索引桶;
根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
3.根据权利要求1所述的方法,其特征在于,新建所述请求规划的桶索引或者以新建版本的桶索引替换现有版本的桶索引之后,所述方法还包括:
接收并解析用户的访问请求,以获得用户标识,采用哈希算法和所述用户标识确定用户的索引值;
根据所述索引值,遍历各个索引桶的索引值范围,以确定所述访问请求对应的索引桶;
根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
4.根据权利要求1所述的方法,其特征在于,接收索引桶与请求规划的映射关系之前,所述方法还包括:
创建注解器,其中所述请求规划中至少包括一个注解器,所述注解器之间是线性结构或拓扑结构,其中,所述注解器关联对应的业务逻辑。
5.一种分配请求规划的装置,其特征在于,包括:
接收模块,用于接收索引桶与请求规划的映射关系,其中,索引桶与请求规划的映射关系中包括索引桶的划分规则、请求规划的配置信息;
索引模块,用于根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引;或者,根据所述索引桶与请求规划的映射关系,新建所述请求规划的桶索引,以新建版本的桶索引替换现有版本的桶索引;其中,所述桶索引包括所述索引桶及其对应的请求规划。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
访问模块,用于接收并解析用户的访问请求,以获得用户信息;
查询模块,用于根据所述用户信息和索引桶信息,确定所述访问请求对应的索引桶;
规划模块,用于根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
7.根据权利要求6所述的装置,其特征在于,所述访问模块还用于接收并解析用户的访问请求,以获得用户标识,采用哈希算法和所述用户标识确定用户的索引值;
所述查询模块还用于根据所述索引值,遍历各个索引桶的索引值范围,以确定所述访问请求对应的索引桶;
所述规划模块还用于根据所述索引桶和所述桶索引,确定所述访问请求对应的请求规划,以将所述访问请求分配至所述请求规划。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
注解模块,用于创建注解器,其中所述请求规划中至少包括一个注解器,所述注解器之间是线性结构或拓扑结构,其中,所述注解器关联对应的业务逻辑。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被一个或多个处理器执行时实现如权利要求1-4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810576988.4A CN108810130B (zh) | 2018-06-01 | 2018-06-01 | 一种分配请求规划的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810576988.4A CN108810130B (zh) | 2018-06-01 | 2018-06-01 | 一种分配请求规划的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108810130A CN108810130A (zh) | 2018-11-13 |
CN108810130B true CN108810130B (zh) | 2022-03-11 |
Family
ID=64087313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810576988.4A Active CN108810130B (zh) | 2018-06-01 | 2018-06-01 | 一种分配请求规划的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108810130B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710603B (zh) * | 2018-12-28 | 2020-11-24 | 江苏满运软件科技有限公司 | 数据清洗方法、系统、存储介质及电子设备 |
CN111884949B (zh) * | 2020-08-05 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | Ab实验的分流方案确定、分流实现方法、装置及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104348679B (zh) * | 2013-08-08 | 2017-12-05 | 阿里巴巴集团控股有限公司 | 一种分桶测试的方法、装置和系统 |
US20160103758A1 (en) * | 2014-10-08 | 2016-04-14 | Yahoo! Inc. | Online product testing using bucket tests |
CN107704322B (zh) * | 2017-09-30 | 2020-08-25 | 上海大象金泰科技有限公司 | 请求分配方法及装置 |
-
2018
- 2018-06-01 CN CN201810576988.4A patent/CN108810130B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108810130A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10044837B2 (en) | Generation and distribution of named, definable, serialized tokens | |
CN111460129B (zh) | 标识生成的方法、装置、电子设备和存储介质 | |
CN108011949B (zh) | 用于获取数据的方法和装置 | |
CN107016115B (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
CN108810130B (zh) | 一种分配请求规划的方法和装置 | |
CN114924751A (zh) | 一种业务访问请求流量分配的方法和装置 | |
US20140129598A1 (en) | Dynamic management of log persistence | |
CN111258988A (zh) | 资产管理方法、装置、电子设备以及介质 | |
CN110928594A (zh) | 服务开发方法和平台 | |
CN115442129A (zh) | 一种管理集群访问权限的方法、装置和系统 | |
CN114070889A (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN108683608B (zh) | 分配流量的方法和装置 | |
CN112507676A (zh) | 能源报表生成方法、装置、电子设备和计算机可读介质 | |
CN113050890A (zh) | 一种数据迁移方法和装置 | |
CN112711572A (zh) | 适用于分库分表的在线扩容方法和装置 | |
CN113760695A (zh) | 一种定位问题代码的方法和装置 | |
CN113779048A (zh) | 一种数据处理方法和装置 | |
CN111694670A (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
CN111161067A (zh) | 一种交易路由的确定方法和装置 | |
CN113778657B (zh) | 一种数据处理方法和装置 | |
CN116820354B (zh) | 数据存储方法、数据存储装置和数据存储系统 | |
CN113362097B (zh) | 一种用户确定方法和装置 | |
CN113505297B (zh) | 数据查询方法、装置、电子设备和计算机可读介质 | |
CN112307032A (zh) | 应用指标确定方法、装置、电子设备和计算机可读介质 | |
CN115269645A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |