实验分流方法、装置、电子设备和计算机可读存储介质.pdf

上传人:v**** 文档编号:11632361 上传时间:2021-10-11 格式:PDF 页数:16 大小:447.54KB
收藏 版权申诉 举报 下载
实验分流方法、装置、电子设备和计算机可读存储介质.pdf_第1页
第1页 / 共16页
实验分流方法、装置、电子设备和计算机可读存储介质.pdf_第2页
第2页 / 共16页
实验分流方法、装置、电子设备和计算机可读存储介质.pdf_第3页
第3页 / 共16页
文档描述:

《实验分流方法、装置、电子设备和计算机可读存储介质.pdf》由会员分享,可在线阅读,更多相关《实验分流方法、装置、电子设备和计算机可读存储介质.pdf(16页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910188025.1 (22)申请日 2019.03.12 (71)申请人 北京创鑫旅程网络技术有限公司 地址 100015 北京市朝阳区酒仙桥北路9号 (厂区)10幢 (72)发明人 张立虎李培彭龙虎 (74)专利代理机构 北京钲霖知识产权代理有限 公司 11722 代理人 王淑玲李志新 (51)Int.Cl. G06F 11/36(2006.01) (54)发明名称 实验分流方法、 装置、 电子设备和计算机可 读存储介质 (57)摘要 本发明提供了实验分流方法和装置。。

2、 实验分 流方法包括: 获取客户端发送的访问请求, 其中, 访问请求包括请求来源标识和待访问页面的页 面标识符; 将访问请求和预先获得的实验配置信 息进行匹配, 获得与访问请求相匹配的流量层, 其中, 实验配置信息包括流量层标识符、 流量层 关键字和流量层内实验占比信息, 并且其中, 流 量层包括一个或多个实验; 将请求来源标识和流 量层的流量层关键字进行拼接, 获得流量层拼接 字; 对流量层拼接字进行散列, 获得流量层散列 值; 根据流量层散列值和流量层内实验占比信 息, 在流量层中的一个或多个实验中确定访问请 求将要进入的实验。 本发明利于实现预期的流量 占比分布, 不同流量层的实验互相独。

3、立。 权利要求书2页 说明书11页 附图2页 CN 110046092 A 2019.07.23 CN 110046092 A 1.一种实验分流方法, 所述方法包括: 获取客户端发送的访问请求, 其中, 所述访问请求包括请求来源标识和待访问页面的 页面标识符; 将所述访问请求和预先获得的实验配置信息进行匹配, 获得与所述访问请求相匹配的 流量层, 其中, 所述实验配置信息包括流量层标识符、 流量层关键字和流量层内实验占比信 息, 并且其中, 所述流量层包括一个或多个实验; 将所述请求来源标识和所述流量层的流量层关键字进行拼接, 获得流量层拼接字; 对所述流量层拼接字进行散列, 获得流量层散列值。

4、; 根据所述流量层散列值和所述流量层内实验占比信息, 在所述流量层中的一个或多个 实验中确定所述访问请求将要进入的实验。 2.根据权利要求1所述的方法, 所述方法还包括: 将所述访问请求将要进入的实验的实验标识添加到所述访问请求中。 3.根据权利要求1所述的方法, 其中, 所述访问请求还包括历史实验标识, 所述实验配 置信息还包括与所述流量层标识符相对应的在前实验标识, 并且, 将所述访问请求和预先获得的实验配置信息进行匹配, 获得与所述访问请求相 匹配的流量层包括: 将所述访问请求中的所述页面标识符与所述实验配置信息中的所述流量层标识符进 行匹配, 并且将所述访问请求中的所述历史实验标识与所。

5、述实验配置信息中与所述流量层 标识符相对应的所述在前实验标识进行匹配, 获得与所述访问请求相匹配的所述流量层。 4.根据权利要求3所述的方法, 所述方法还包括: 将所述访问请求当前进入的实验标识发送给所述客户端, 以便所述客户端将所述访问 请求当前进入的实验标识记录为所述历史实验标识。 5.根据权利要求1所述的方法, 其中, 获取客户端发送的访问请求包括: 拦截所述访问请求。 6.根据权利要求1所述的方法, 其中, 所述方法在服务器上执行, 并且, 所述方法还包括: 从数据库中读取所述实验配置信息; 将所述实验配置信息加载到所述服务器的内存中。 7.根据权利要求6所述的方法, 所述方法还包括:。

6、 设置所述实验配置信息的加载时间; 在将所述访问请求和所述实验配置信息进行匹配之前, 判断当前时间是否超出所述加 载时间; 如果所述当前时间超出所述加载时间, 则重新从所述数据库中读取所述实验配置信 息; 如果所述当前时间没有超出所述加载时间, 则使用所述实验配置信息。 8.一种实验分流装置, 所述装置包括: 访问请求获取模块, 配置用于获取客户端发送的访问请求, 其中, 所述访问请求包括请 求来源标识和待访问页面的页面标识符; 流量层匹配模块, 配置用于将所述访问请求和预先获得的实验配置信息进行匹配, 获 权利要求书 1/2 页 2 CN 110046092 A 2 得与所述访问请求相匹配的。

7、流量层, 其中, 所述实验配置信息包括流量层标识符、 流量层关 键字和流量层内实验占比信息, 并且其中, 所述流量层包括一个或多个实验; 流量层拼接模块, 配置用于将所述请求来源标识和所述流量层的流量层关键字进行拼 接, 获得流量层拼接字; 流量层散列模块, 配置用于对所述流量层拼接字进行散列, 获得流量层散列值; 实验确定模块, 配置用于根据所述流量层散列值和所述流量层内实验占比信息, 在所 述流量层中的一个或多个实验中确定所述访问请求将要进入的实验。 9.一种电子设备, 所述电子设备包括: 存储器, 配置用于存储指令; 以及 处理器, 配置用于调用所述指令执行权利要求1-7中任一项所述的方。

8、法。 10.一种计算机可读存储介质, 所述计算机可读存储介质存储有计算机可执行指令, 所 述计算机可执行指令在由处理器执行时, 执行权利要求1-7中任一项所述的方法。 权利要求书 2/2 页 3 CN 110046092 A 3 实验分流方法、 装置、 电子设备和计算机可读存储介质 技术领域 0001 本发明一般地涉及信息技术, 更具体地, 涉及实验分流方法、 装置、 电子设备和计 算机可读存储介质。 背景技术 0002 在互联网产品的设计场景中, 经常会遇到多个设计方案的选择。 对于方案的选择, 目前经常采用ABtest(AB测试)的方式选择更符合预期涉及目标的方案。 0003 目前常见的A。

9、Btest方案是针对客户端的一些请求做信息提取, 然后根据分流实验 进行简单散列分流。 发明内容 0004 为了解决现有技术中存在的上述问题, 本发明的一个方面提供一种实验分流方 法, 该方法包括: 获取客户端发送的访问请求, 其中, 访问请求包括请求来源标识和待访问 页面的页面标识符; 将访问请求和预先获得的实验配置信息进行匹配, 获得与访问请求相 匹配的流量层, 其中, 实验配置信息包括流量层标识符、 流量层关键字和流量层内实验占比 信息, 并且其中, 流量层包括一个或多个实验; 将请求来源标识和流量层的流量层关键字进 行拼接, 获得流量层拼接字; 对流量层拼接字进行散列, 获得流量层散列。

10、值; 根据流量层散 列值和流量层内实验占比信息, 在流量层中的一个或多个实验中确定访问请求将要进入的 实验。 0005 本发明的另一方面提供一种实验分流装置, 该装置包括: 访问请求获取模块, 配置 用于获取客户端发送的访问请求, 其中, 访问请求包括请求来源标识和待访问页面的页面 标识符; 流量层匹配模块, 配置用于将访问请求和预先获得的实验配置信息进行匹配, 获得 与访问请求相匹配的流量层, 其中, 实验配置信息包括流量层标识符、 流量层关键字和流量 层内实验占比信息, 并且其中, 流量层包括一个或多个实验; 流量层拼接模块, 配置用于将 请求来源标识和流量层的流量层关键字进行拼接, 获得。

11、流量层拼接字; 流量层散列模块, 配 置用于对流量层拼接字进行散列, 获得流量层散列值; 实验确定模块, 配置用于根据流量层 散列值和流量层内实验占比信息, 在流量层中的一个或多个实验中确定访问请求将要进入 的实验。 0006 本发明的又一方面提供一种电子设备, 电子设备包括: 存储器, 配置用于存储指 令; 以及处理器, 配置用于调用指令执行上述方法。 0007 本发明的又一方面提供一种计算机可读存储介质, 计算机可读存储介质存储有计 算机可执行指令, 计算机可执行指令在由处理器执行时, 执行上述方法。 0008 本发明提出的实验分流方法、 装置、 电子设备和计算机可读存储介质利于实现预 期。

12、的流量占比分布, 不同流量层的实验互相独立。 说明书 1/11 页 4 CN 110046092 A 4 附图说明 0009 通过参考附图阅读下文的详细描述, 本发明实施方式的上述以及其他目的、 特征 和优点将变得易于理解。 在附图中, 以示例性而非限制性的方式示出了本发明的若干实施 方式, 其中: 0010 图1示出了根据本发明的实施方式的实验分流方法的流程图; 0011 图2示出了根据本发明的实施方式的实验分流装置的框图。 0012 在附图中, 相同或对应的标号表示相同或对应的部分。 具体实施方式 0013 下面将参考若干示例性实施方式来描述本发明的原理和精神。 应当理解, 给出这 些实施。

13、方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明, 而并非以任何 方式限制本发明的范围。 0014 需要注意, 虽然本文中使用 “第一” 、“第二” 等表述来描述本发明的实施方式的不 同模块、 步骤和数据等, 但是 “第一” 、“第二” 等表述仅是为了在不同的模块、 步骤和数据等 之间进行区分, 而并不表示特定的顺序或者重要程度。 实际上,“第一” 、“第二” 等表述完全 可以互换使用。 0015 如图1所示, 本发明的一个实施方式提供了一种实验分流方法100。 在一些实施方 式中, 方法100可以在服务器上实现。 备选地, 方法100也可以在具有计算能力的任何电子设 备上实现。 在。

14、本说明书中, 方法100实现的功能也可以称为分流系统。 方法100包括步骤 S101-S105。 0016 在步骤S101中, 获取客户端发送的访问请求。 其中, 访问请求可以包括请求来源标 识和待访问页面的页面标识符。 0017 在一些实施方式中, 客户端可以包括手持式智能终端、 台式计算机、 膝上型计算 机、 个人数字助理(PDA)、 智能可穿戴设备等等, 本发明在此方面不做限制。 0018 在一些实施方式中, 客户端发送的访问请求可以包括通过手机客户端上的应用程 序(APP)发送的APP访问请求、 通过计算机上的网络浏览器发送的网页请求等等。 0019 在一些实施方式中, 访问请求可以通。

15、过任何网络协议进行传输, 例如, 通过HTTP (HyperText Transfer Protocol, 超文本传输协议)或者GRPC(Google Remote Procedure Call Protocol, 谷歌远程程序调用协议)。 0020 在一些实施方式中, 请求来源标识可以包括用户设备的唯一标识。 例如, 用户设备 的udid(Unique Device Identifier, 唯一设备标识符)或者uuid(Universally Unique Identifier, 全局唯一标识符)。 例如, 当用户通过装载在智能终端上的应用程序(APP)发送 访问请求时, 请求来源标识可以是。

16、该智能终端的open_udid(Open-Unique Device Identifier, 开放唯一设备标识符), 当用户通过其他方式发送访问请求时, 请求来源标识 可以是用户设备的uuid。 0021 在另一些实施方式中, 请求来源标识可以包括用户的标识, 例如uid(User Identifier, 用户标识)。 当用户在登录状态时, 可以使用用户的uid作为请求来源标识。 0022 在一些实施方式中, 请求来源标识可以包括在访问请求的Cookie(浏览器缓存)信 息中。 说明书 2/11 页 5 CN 110046092 A 5 0023 在一些实施方式中, 页面标识符可以包括页面的U。

17、RI(Uniform Resource Identifier, 统一资源标识符)或者URL(Uniform Resource Locator, 统一资源定位符)。 当 然, 页面标识符不限于以上形式。 0024 在步骤S102中, 将访问请求和预先获得的实验配置信息进行匹配, 获得与访问请 求相匹配的流量层。 其中, 实验配置信息包括流量层标识符、 流量层关键字和流量层内实验 占比信息。 并且其中, 流量层包括一个或多个实验。 0025 在一些实施方式中, 实验配置信息是由运营后台预先设置的。 其可以预先存储在 服务器的存储器中, 或者可以从外部数据库调取。 0026 在一些实施方式中, 流量。

18、层可以是一组实验的集合, 包括一个或多个实验。 例如, 一个流量层是用户能看到的一个页面, 比如APP首页、 网站搜索页、 列表页等。 举例而言, 流 量层是列表页, 在该流量层中, 可以包括图文混排列表实验和纯图列表实验两个不同的实 验。 作为示例, 流量层标识符可以包括流量层页面的URI。 0027 在一些实施方式中, 将访问请求和预先获得的实验配置信息进行匹配可以包括将 访问请求中的待访问页面的页面标识符与实验配置信息中的流量层标识符进行匹配。 0028 在一些实施方式中, 同一流量层中的不同实验流量独立, 用户只能进入其中一个 实验。 例如, 图文混排列表实验和纯图列表实验, 同一个用。

19、户在同一时刻只能看到一个实 验, 可以称为这两个实验互斥。 0029 举例而言, 旅游网站的机票保险业务需要改版, 引入保险购买的引导功能。 后台可 以新建流量层, 流量层的名字为马蜂窝机票保险页面。 然后创建保险导购实验, 设置实验配 置信息。 例如, 设置流量层内实验占比信息, 比如设置为50, 即, 当前页面会有50的流量 进入到该实验。 0030 作为另一示例, 流量层可以是列表页, 列表页流量层上包括图文混排列表实验和 纯图列表实验, 流量层内实验占比信息可以是两个实验分别占流量的60和40。 0031 在一些实施方式中, 将页面标识符和预先获得的实验配置信息中的流量层标识符 进行匹。

20、配可以通过在实验池中的流量层标识符中进行遍历匹配, 找到与页面标识符相匹配 的实验流量层。 相匹配可以包括页面标识符与流量层标识符完全相同, 也可以包括页面标 识符与流量层标识符中的某些字段相同。 0032 在步骤S103中, 将请求来源标识和流量层的流量层关键字(key)进行拼接, 获得流 量层拼接字, 或称设备唯一流量层信息。 0033 在一些实施方式中, 拼接可以包括字符串的顺序拼接。 0034 在步骤S104中, 对流量层拼接字进行散列, 获得流量层散列值。 0035 在一些实施方式中, 散列(hash)操作可以采用MurmurHash2算法等任何适合的 hash算法。 Hash算法可。

21、以使得请求来源标识有微小变化的情况下, 流量层关键字不同会导 致散列(hash)值变化激烈。 0036 MurmurHash2是一种非加密型哈希函数, 适用于一般的哈希检索操作。 与其他流行 的哈希函数相比, 对于规律性较强的关键字, MurmurHash2的随机分布特征表现更良好。 本 发明的实施方式利用了其对于规律关键字随机分布特性表现更良好的特性。 0037 在步骤S105中, 根据流量层散列值和流量层内实验占比信息, 在流量层中的一个 或多个实验中确定访问请求将要进入的实验。 说明书 3/11 页 6 CN 110046092 A 6 0038 仅作为示例, 可以将流量层hash值对1。

22、00求余之后+1, 最终得到1到100之间的数 值。 将该数值与流量层内实验占比信息进行比较, 如果在区间内则命中实验, 继续分流操 作。 否则不进行分流操作。 对于流量层内实验占比信息, 可以按照流量分布倒叙排列。 比如 有流量层内有三个实验a、 b、 c分别占比30、 60、 10。 则排列顺序为b、 a、 c。 然后依次将hash后 的值和前面所有项的和比对, 如果小于该值, 则命中该版本。 如果hash后的值为80, 首先和b 的值60比较, 80大于等于60, 继续和下一位比较。 当进行到下一位时, 应该和前面所有项的 和比较, 即b+a60+3090, 80小于90, 则命中实验a。

23、。 如果当前区间未命中则继续匹配下一 位直到结束或者匹配上。 0039 在一些实施方式中, 当访问请求命中多个流量层时, 例如一个访问请求中包含了 多个功能模块, 这时候会命中多个实验。 此时先逐层按照单层实验进行分流, 然后获取到多 个实验的对应关系。 由于流量层标识和关键字不同, 所以每一流量层的流量层拼接字也是 不同的, 所以两个实验的分流是相互独立无干扰的。 0040 本发明实施例提出的实验分流方法100, 通过对请求来源标识和流量层关键字的 拼接字进行hash操作, 保证了在请求来源标识变化微小或者没有变化的情况下, 流量层关 键字的变化能够导致hash值的剧烈变化, 使得访问请求的。

24、散列更加均匀, 避免了因请求来 源标识不变而导致访问请求集中在流量层内的局部位置, 可以更好地实现预设的实验占比 分布。 并且, 通过这种方式, 进入一个流量层的访问请求再进行其他实验时, hash值也是均 匀分布的, 而不是集中在某一区间内, 使得没有关联关系的不同流量层内的实验可以实现 正交, 互相独立无影响。 0041 另外, 该方法接入方不必考虑现有的业务实现语言和方案, 只要约定好协议即可, 例如HTTP、 GRPC等等, 从而可以实现跨平台的实验分流。 0042 而且, 通过引入流量层内实验互斥的概念, 可以方便地表达针对同一功能的不同 设计方案的分流, 在进行实验配置时便于利用流。

25、量分层来绑定实验的策略, 可以更精细直 观的定义分流实验, 便于实验配置信息的设置、 维护和管理。 0043 作为本发明的一个实施例, 访问请求还包括历史实验标识, 实验配置信息还包括 与流量层标识符相对应的在前实验标识。 并且, 上述步骤S102可以包括: 将访问请求中的页 面标识符与实验配置信息中的流量层标识符进行匹配, 并且将访问请求中的历史实验标识 与流量层标识符相对应的在前实验标识进行匹配, 获得与访问请求相匹配的流量层。 0044 在一些实施方式中, 在串行实验中, 后续流量层的实验配置可以要求访问请求已 经命中了某个在前的实验。 为了清楚地描述, 说明书中采用 “第一流量层” 和。

26、 “第二流量层” 来表示串行实验中先后进入的两个流量层。 在进行流量层匹配时, 如果访问请求中包括的 历史实验标识与实验配置信息中第二流量层要求的在前实验标识的要求一致, 则该访问请 求可以进入第二流量层。 如果不一致, 则不能进入该第二流量层。 例如, 第一流量层是搜索 推荐页面, 该流量层有两个实验a、 b, a是有推荐词, b是没有。 第二流量层是推荐列表页面, 两个流量层的步骤是用户先通过搜索然后到达推荐列表, 有一定的先后顺序, 那么推荐列 表页面可以要求只有命中搜索推荐a实验才可以到达推荐列表页, 否则只会到达普通列表 页。 0045 作为本发明的一个实施例, 分流实验方法还可以包。

27、括: 将访问请求当前进入的实 验标识发送给客户端, 以便客户端将访问请求当前进入的实验标识记录为历史实验标识。 说明书 4/11 页 7 CN 110046092 A 7 例如, 将访问请求将要进入的实验的实验标识添加到访问请求中。 例如, 可以将实验标识添 加到HTTP请求的头部信息中。 便于后续处理根据访问请求中的实验标识信息, 也即分流信 息, 而作出差异化的响应。 0046 在一些实施方式中, 在将第一流量层的实验标识添加到访问请求中之后, 可以将 访问请求发送给分流系统, 并最终由分流系统返回给客户端, 由客户端将访问请求中携带 的实验标识记录为历史实验标识。 当客户端再次请求时, 。

28、会将已获取到的分流信息即历史 实验标识上报, 例如, 将历史实验标识添加到后续的访问请求中, 分流系统通过对客户端已 经产生的分流信息结合系统预设的实验配置信息再次分流, 从而达到多实验串行的分流功 能。 0047 通过将在前流量层的实验标识信息添加到访问请求中, 减少了服务数据的存储并 可以实现串行实验分流的功能。 并且, 在数据传输方面, 通过在访问请求中传输分流信息, 工作在业务方的上游, 业务方无需关心业务方具体的实现语言, 可以实现跨平台的分流业 务。 0048 可选地, 还可以将实验标识添加到本地日志信息中, 方便问题的定位和数据统计。 0049 作为本发明的一个实施例, 获取访问。

29、请求包括: 拦截访问请求。 0050 在常见的ABtest实验分流场景中, 往往通过提供接口, 由业务方获取用户数据然 后调用接口, 这样会将原有的流量放大一倍, 而且对业务侵入比较明显。 本发明实施方式可 以通过拦截的方式来获取访问请求, 对业务代码没有侵入, 性能没有明显影响, 并且不会产 生二次流量。 0051 在一些实施方式中, 可以通过Openresty实现访问请求的拦截, 由于Openresty自 带流量分发的特性故不会产生二次流量。 仅作为示例, 可以采用Openresty中的rewrite_ by_lua对访问请求的流量进行拦截。 其中, rewrite_by_lua是Open。

30、resty中的一个功能。 在 Openresty重定向阶段工作, rewrite_by_lua可以实现复杂的转发定向逻辑。 由于 Openresty的重定向是原有流程, 本发明实施例的分流实验方法中的流量拦截只是改变了 其分流方式。 相对于其它调用接口实现方式而言, 该实现没有二次流量产生。 0052 作为本发明的一个实施例, 实验配置信息还包括实验内版本占比信息, 并且其中, 实验包括一个或多个版本。 本发明实施例提供的实验分流方法还可以包括: 将请求来源标 识、 流量层的流量层关键字和实验标识进行拼接, 获得实验拼接字; 对实验拼接字进行散 列, 获得实验散列值; 根据实验散列值和实验内版。

31、本占比信息, 确定访问请求将要进入的实 验版本。 0053 在一些实施方式中, 将请求来源标识、 流量层的流量层关键字和实验标识进行拼 接与上文描述的将请求来源标识和流量层关键字进行拼接的方式可以相同或者不同。 并 且, 对实验拼接字进行散列的方式可以与上文描述的对流量层拼接字进行散列的方式相同 或者不同。 0054 在一些实施方式中, 一个实验可以具有一个或多个版本。 以产品展示页页面流量 层为例, 该页面可以包括两个实验, 列表展示和块状展示, 列表展示实验中可以包括两个版 本, 例如纯图列表和图文混排列表。 0055 在一些实施方式中, 与流量层内多个实验之间互斥的概念相似, 一个实验中。

32、的多 个版本可以是互斥的, 一个访问请求只能进入其中一个版本。 说明书 5/11 页 8 CN 110046092 A 8 0056 在一些实施方式中, 版本之下还可以具有更细的划分, 而分流的方式可以与上文 描述的针对流量层中的一个或多个实验进行分流以及针对一个实验中的一个或多个版本 进行分流的方式相似。 0057 在针对不同版本进行分流的过程中, 通过请求来源标识、 流量层的流量层关键字 和实验标识的拼接, 可以使得在请求来源标识和流量层关键字变化微小的情况下, 实验标 识的变化可以引起散列值的剧烈变化, 可以使得散列更加均匀, 避免了因请求来源标识不 变而导致访问请求集中在流量层内的局部。

33、位置, 有利于达到预期的版本分流占比。 并且, 通 过这种方式, 进入一个流量层的访问请求再进行其他实验版本时, hash值也是均匀分布的, 而不是集中在某一区间内, 使得没有关联关系的不同流量层内的实验版本可以实现正交, 互相独立无影响。 0058 作为本发明的一个实施例, 分流实验方法还可以包括将访问请求将要进入的实验 版本的实验版本标识添加到访问请求中。 0059 作为本发明的一个实施例, 访问请求还可以包括历史实验版本标识, 实验配置信 息还可以包括与流量层标识符相对应的在前实验版本标识。 并且, 将访问请求和预先获得 的实验配置信息进行匹配, 获得与访问请求相匹配的流量层可以包括: 。

34、将访问请求中的页 面标识符与实验配置信息中的流量层标识符进行匹配, 并且将访问请求中的历史实验版本 标识与实验配置信息中与流量层标识符相对应的在前实验版本标识进行匹配, 获得与访问 请求相匹配的流量层。 0060 作为本发明的一个实施例, 分流实验方法还可以包括: 将访问请求当前进入的实 验版本标识发送给客户端, 以便客户端将访问请求当前进入的实验版本标识记录为历史实 验版本标识。 0061 在一些实施方式中, 在将第一流量层的实验版本标识添加到访问请求中之后, 可 以将访问请求发送给分流系统, 并最终由分流系统返回给客户端, 由客户端将访问请求中 携带的实验版本标识记录为历史实验版本标识。 。

35、当客户端再次请求时, 会将已获取到的分 流信息即历史实验版本标识上报, 例如, 将历史实验版本标识添加到后续的访问请求中, 分 流系统通过对客户端已经产生的分流信息结合系统预设的实验配置信息再次分流, 从而达 到多实验串行的分流功能。 0062 通过将在前流量层的实验版本标识信息添加到访问请求中, 减少了服务数据的存 储并可以实现串行实验分流的功能。 并且, 在数据传输方面, 通过在访问请求中传输分流信 息, 工作在业务方的上游, 业务方无需关心业务方具体的实现语言, 可以实现跨平台的分流 业务。 0063 作为本发明的一个实施例, 实验分流方法可以在服务器上执行, 该方法还可以包 括: 从数。

36、据库中读取实验配置信息; 将实验配置信息加载到服务器的内存中。 0064 在一些实施方式中, 分流系统从数据库中读取提前配好的实验策略, 然后加载到 服务器内存中, 以后当再次获取策略信息时, 先从服务器内存中读取。 这样可以有效的减少 网络IO的消耗, 大大的提升性能和稳定性。 读取到的实验配置信息可以组成实验池供后续 调用。 0065 作为本发明的一个实施例, 分流实验方法还可以包括: 设置实验配置信息的加载 时间; 在将访问请求和实验配置信息进行匹配之前, 判断当前时间是否超出加载时间; 如果 说明书 6/11 页 9 CN 110046092 A 9 当前时间超出加载时间, 则重新从数。

37、据库中读取实验配置信息; 如果当前时间没有超出加 载时间, 则使用实验配置信息。 0066 在一些实施方式中, 实验配置信息可以是由运营后台实时调整的, 因此可能会随 时间而变化。 通过设置加载时间, 在超出加载时间时重新从数据库中读取, 可以使得执行分 流方法的服务器内存中对实验配置信息定期更新, 获得最新的实验配置信息, 更好地实现 实验预期的效果。 0067 如图2所示, 本发明的一个实施方式提供了一种实验分流装置200。 该实验分流装 置200包括以下模块: 访问请求获取模块201, 配置用于获取客户端发送的访问请求, 其中, 访问请求包括请求来源标识和待访问页面的页面标识符; 流量层。

38、匹配模块202, 配置用于将 访问请求和预先获得的实验配置信息进行匹配, 获得与访问请求相匹配的流量层, 其中, 实 验配置信息包括流量层标识符、 流量层关键字和流量层内实验占比信息, 并且其中, 流量层 包括一个或多个实验; 流量层拼接模块203, 配置用于将请求来源标识和流量层的流量层关 键字进行拼接, 获得流量层拼接字; 流量层散列模块204, 配置用于对流量层拼接字进行散 列, 获得流量层散列值; 实验确定模块205, 配置用于根据流量层散列值和流量层内实验占 比信息, 在流量层中的一个或多个实验中确定访问请求将要进入的实验。 0068 作为本发明的一个实施例, 装置200还可以包括;。

39、 实验标识添加模块, 配置用于将 访问请求将要进入的实验的实验标识添加到访问请求中。 0069 作为本发明的一个实施例, 访问请求还包括历史实验标识, 实验配置信息还包括 与流量层标识符相对应的在前实验标识。 并且, 流量层匹配模块202还配置用于: 将访问请 求中的页面标识符与实验配置信息中的流量层标识符进行匹配, 并且将访问请求中的历史 实验标识与实验配置信息中与流量层标识符相对应的在前实验标识进行匹配, 获得与访问 请求相匹配的流量层。 0070 作为本发明的一个实施例, 装置200还可以包括: 实验标识发送模块, 配置用于将 访问请求当前进入的实验标识发送给客户端, 以便客户端将访问请。

40、求当前进入的实验标识 记录为历史实验标识。 0071 作为本发明的一个实施例, 访问请求获取模块还可以配置用于: 拦截访问请求。 0072 作为本发明的一个实施例, 实验配置信息还包括实验内版本占比信息, 并且其中, 实验包括一个或多个版本。 装置200还可以包括: 实验拼接模块, 配置用于将请求来源标识、 流量层的流量层关键字和实验标识进行拼接, 获得实验拼接字; 实验散列模块, 配置用于对 实验拼接字进行散列, 获得实验散列值; 版本确定模块, 配置用于根据实验散列值和实验内 版本占比信息, 确定访问请求将要进入的实验版本。 0073 作为本发明的一个实施例, 装置200还可以包括: 实验。

41、版本标识添加模块, 配置用 于将访问请求将要进入的实验版本的实验版本标识添加到访问请求中。 0074 作为本发明的一个实施例, 访问请求还包括历史实验版本标识, 实验配置信息还 包括与流量层标识符相对应的在前实验版本标识。 并且, 流量层匹配模块202还配置用于: 将访问请求中的页面标识符与实验配置信息中的流量层标识符进行匹配, 并且将访问请求 中的历史实验版本标识与实验配置信息中与流量层标识符相对应的在前实验版本标识进 行匹配, 获得与访问请求相匹配的流量层。 0075 作为本发明的一个实施例, 装置200还可以包括: 实验版本标识发送模块, 配置用 说明书 7/11 页 10 CN 110。

42、046092 A 10 于将访问请求当前进入的实验版本标识发送给客户端, 以便客户端将访问请求当前进入的 实验版本标识记录为历史实验版本标识。 0076 作为本发明的一个实施例, 装置在服务器上实现。 并且, 装置200还可以包括: 实验 配置信息读取模块, 配置用于从数据库中读取实验配置信息; 实验配置信息加载模块, 配置 用于将实验配置信息加载到服务器的内存中。 0077 作为本发明的一个实施例, 装置200还可以包括加载时间判断模块, 配置用于: 设 置实验配置信息的加载时间; 在将访问请求和实验配置信息进行匹配之前, 判断当前时间 是否超出加载时间; 如果当前时间超出加载时间, 则重新。

43、从数据库中读取实验配置信息; 如 果当前时间没有超出加载时间, 则使用实验配置信息。 0078 装置中的各个模块所实现的功能与上文描述的方法中的步骤相对应, 其具体实现 和技术效果请参见上文对于方法步骤的描述, 在此不再赘述。 0079 在一些实施方式中, 本发明提供了一种电子设备, 该电子设备包括: 存储器, 配置 用于存储指令; 以及处理器, 配置用于调用所述指令执行上文所述的任何方法。 0080 在一些实施方式中, 本发明提供了一种计算机可读存储介质, 该计算机可读存储 介质存储有计算机可执行指令, 计算机可执行指令在由处理器执行时, 执行上文所述的任 何方法。 0081 在一些实施方式。

44、中, 本发明还提供了以下技术方案: 0082 方案1.一种实验分流方法, 所述方法包括: 0083 获取客户端发送的访问请求, 其中, 所述访问请求包括请求来源标识和待访问页 面的页面标识符; 0084 将所述访问请求和预先获得的实验配置信息进行匹配, 获得与所述访问请求相匹 配的流量层, 其中, 所述实验配置信息包括流量层标识符、 流量层关键字和流量层内实验占 比信息, 并且其中, 所述流量层包括一个或多个实验; 0085 将所述请求来源标识和所述流量层的流量层关键字进行拼接, 获得流量层拼接 字; 0086 对所述流量层拼接字进行散列, 获得流量层散列值; 0087 根据所述流量层散列值和。

45、所述流量层内实验占比信息, 在所述流量层中的一个或 多个实验中确定所述访问请求将要进入的实验。 0088 方案2.根据方案1所述的方法, 所述方法还包括: 0089 将所述访问请求将要进入的实验的实验标识添加到所述访问请求中。 0090 方案3.根据方案1所述的方法, 其中, 所述访问请求还包括历史实验标识, 所述实 验配置信息还包括与所述流量层标识符相对应的在前实验标识, 0091 并且, 将所述访问请求和预先获得的实验配置信息进行匹配, 获得与所述访问请 求相匹配的流量层包括: 0092 将所述访问请求中的所述页面标识符与所述实验配置信息中的所述流量层标识 符进行匹配, 并且将所述访问请求。

46、中的所述历史实验标识与所述实验配置信息中与所述流 量层标识符相对应的所述在前实验标识进行匹配, 获得与所述访问请求相匹配的所述流量 层。 0093 方案4.根据方案3所述的方法, 所述方法还包括: 说明书 8/11 页 11 CN 110046092 A 11 0094 将所述访问请求当前进入的实验标识发送给所述客户端, 以便所述客户端将所述 访问请求当前进入的实验标识记录为所述历史实验标识。 0095 方案5.根据方案1所述的方法, 其中, 获取客户端发送的访问请求包括: 0096 拦截所述访问请求。 0097 方案6.根据方案1所述的方法, 其中, 所述实验配置信息还包括实验内版本占比信 。

47、息, 并且其中, 所述实验包括一个或多个版本, 0098 所述方法还包括: 0099 将所述请求来源标识、 所述流量层的流量层关键字和所述实验标识进行拼接, 获 得实验拼接字; 0100 对所述实验拼接字进行散列, 获得实验散列值; 0101 根据所述实验散列值和所述实验内版本占比信息, 确定所述访问请求将要进入的 实验版本。 0102 方案7.根据方案6所述的方法, 所述方法还包括: 0103 将所述访问请求将要进入的实验版本的实验版本标识添加到所述访问请求中。 0104 方案8.根据方案6所述的方法, 其中, 所述访问请求还包括历史实验版本标识, 所 述实验配置信息还包括与所述流量层标识符。

48、相对应的在前实验版本标识, 0105 并且, 将所述访问请求和预先获得的实验配置信息进行匹配, 获得与所述访问请 求相匹配的流量层包括: 0106 将所述访问请求中的所述页面标识符与所述实验配置信息中的所述流量层标识 符进行匹配, 并且将所述访问请求中的所述历史实验版本标识与所述实验配置信息中与所 述流量层标识符相对应的所述在前实验版本标识进行匹配, 获得与所述访问请求相匹配的 流量层。 0107 方案9.根据方案8所述的方法, 所述方法还包括: 0108 将所述访问请求当前进入的实验版本标识发送给所述客户端, 以便所述客户端将 所述访问请求当前进入的实验版本标识记录为所述历史实验版本标识。 。

49、0109 方案10.根据方案1所述的方法, 其中, 所述方法在服务器上执行, 0110 并且, 所述方法还包括: 0111 从数据库中读取所述实验配置信息; 0112 将所述实验配置信息加载到所述服务器的内存中。 0113 方案11.根据方案10所述的方法, 所述方法还包括: 0114 设置所述实验配置信息的加载时间; 0115 在将所述访问请求和所述实验配置信息进行匹配之前, 判断当前时间是否超出所 述加载时间; 0116 如果所述当前时间超出所述加载时间, 则重新从所述数据库中读取所述实验配置 信息; 0117 如果所述当前时间没有超出所述加载时间, 则使用所述实验配置信息。 0118 方。

50、案12.一种实验分流装置, 所述装置包括: 0119 访问请求获取模块, 配置用于获取客户端发送的访问请求, 其中, 所述访问请求包 括请求来源标识和待访问页面的页面标识符; 说明书 9/11 页 12 CN 110046092 A 12 0120 流量层匹配模块, 配置用于将所述访问请求和预先获得的实验配置信息进行匹 配, 获得与所述访问请求相匹配的流量层, 其中, 所述实验配置信息包括流量层标识符、 流 量层关键字和流量层内实验占比信息, 并且其中, 所述流量层包括一个或多个实验; 0121 流量层拼接模块, 配置用于将所述请求来源标识和所述流量层的流量层关键字进 行拼接, 获得流量层拼接。

展开阅读全文
内容关键字: 实验 分流 方法 装置 电子设备 计算机 可读 存储 介质
关于本文
本文标题:实验分流方法、装置、电子设备和计算机可读存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/11632361.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1