分片路由方法、装置、设备及存储介质转让专利

申请号 : CN202110693929.7

文献号 : CN113347094B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 闫明坤

申请人 : 深圳壹账通智能科技有限公司

摘要 :

本申请涉及人工智能技术领域,揭示了一种分片路由方法、装置、设备及存储介质,其中方法包括:获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;将所述目标访问请求路由到所述目标分片标识对应的分片。从而避免单个分片在某个时间段处理的数据过多,提高了整体服务性能。

权利要求 :

1.一种分片路由方法,其特征在于,所述方法包括:获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;

获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;

将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;

将所述目标访问请求路由到所述目标分片标识对应的分片;

所述获取用户标识与分片标识对应数据的步骤之前,还包括:获取分片请求;

响应所述分片请求,获取分片标识列表;

获取预设统计时长,根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合;

采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据;

采用预设存储规则,对所述用户标识与分片标识对应数据进行存储;

所述采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据的步骤,包括:

将所述待分片的用户数据集合中的所述用户数据按活跃度进行排序,得到排序后的用户数据集合;

获取活跃度比例阈值;

根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据;

所述根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据的步骤,包括:依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识;

将所述活跃度比例阈值与所述待划分的分片标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值;

获取向上浮动比例和向下浮动比例;

将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值;

将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值;

从所述排序后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配用户数据集合,其中,所述待划分的分片标识对应的所述匹配用户数据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间;

重复执行所述依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分片标识列表中的所有所述分片标识的获取或者完成所述排序后的用户数据集合中的所有所述用户数据的提取;

根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配用户数据集合,得到所述用户标识与分片标识对应数据。

2.根据权利要求1所述的分片路由方法,其特征在于,所述根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合的步骤,包括:

分别向所述分片标识列表中的每个所述分片标识对应的所述分片发送用户数据获取请求;

获取各个所述分片根据所述用户数据获取请求和所述预设统计时长发送的所述用户数据,将获取到的所有所述用户数据作为所述待分片的用户数据集合。

3.根据权利要求2所述的分片路由方法,其特征在于,所述用户数据包括:用户标识、活跃度;所述用户数据的所述活跃度的计算公式H为:其中,m是所述预设统计时长,D为日登录次数,W是登录权重,J是日交易次数,P是交易权重,m、W、P是常量。

4.根据权利要求1所述的分片路由方法,其特征在于,所述将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识的步骤,包括:将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找;

当在所述用户标识与分片标识对应数据中查找到的所述用户标识时,将在所述用户标识与分片标识对应数据中查找到的所述用户标识对应的分片标识作为所述目标分片标识;

当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时,获取预设分片标识,将所述预设分片标识作为所述目标分片标识。

5.一种分片路由装置,其特征在于,所述装置包括:请求获取模块,用于获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;

数据获取模块,用于获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;

目标分片标识确定模块,用于将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;

路由模块,用于将所述目标访问请求路由到所述目标分片标识对应的分片;

所述获取用户标识与分片标识对应数据的步骤之前,还包括:获取分片请求;

响应所述分片请求,获取分片标识列表;

获取预设统计时长,根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合;

采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据;

采用预设存储规则,对所述用户标识与分片标识对应数据进行存储;

所述采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据的步骤,包括:

将所述待分片的用户数据集合中的所述用户数据按活跃度进行排序,得到排序后的用户数据集合;

获取活跃度比例阈值;

根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据;

所述根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据的步骤,包括:依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识;

将所述活跃度比例阈值与所述待划分的分片标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值;

获取向上浮动比例和向下浮动比例;

将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值;

将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值;

从所述排序后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配用户数据集合,其中,所述待划分的分片标识对应的所述匹配用户数据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间;

重复执行所述依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分片标识列表中的所有所述分片标识的获取或者完成所述排序后的用户数据集合中的所有所述用户数据的提取;

根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配用户数据集合,得到所述用户标识与分片标识对应数据。

6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。

7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。

说明书 :

分片路由方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及到人工智能技术领域,特别是涉及到一种分片路由方法、装置、设备及存储介质。

背景技术

[0002] 目前核心软件系统架构开始从集中式架构转向微服务架构,单体应用不再满足为海量用户提供高性能、高可用服务的要求,微服务架构是大势所趋。现在的微服务架构进行
拆分后,每个服务保证高可用和负载均衡,但是仍然有下列问题:(1)整个微服务架构仍然
作为一个整体对外提供服务,为保证整体服务稳定以及避免单一服务有性能瓶颈,核心服
务占用很多计算资源,存在计算资源浪费;(2)某个机房宕机或者大片区网络异常,会导致
核心服务宕机,进而导致整个系统瘫痪,无法对外提供服务,影响所有用户;(3)用户数量急
剧增加会使整个系统不断扩容,导致系统膨胀变得臃肿,维护起来困难。

发明内容

[0003] 本申请的主要目的为提供一种分片路由方法、装置、设备及存储介质,旨在解决现有技术的微服务架构的核心服务占用很多计算资源,机房宕机或者大片区网络异常导致整
个系统瘫痪,扩容导致系统膨胀变得臃肿的技术问题。
[0004] 为了实现上述发明目的,本申请提出一种分片路由方法,所述方法包括:
[0005] 获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;
[0006] 获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;
[0007] 将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;
[0008] 将所述目标访问请求路由到所述目标分片标识对应的分片。
[0009] 进一步的,所述获取用户标识与分片标识对应数据的步骤之前,还包括:
[0010] 获取分片请求;
[0011] 响应所述分片请求,获取分片标识列表;
[0012] 获取预设统计时长,根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合;
[0013] 采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据;
[0014] 采用预设存储规则,对所述用户标识与分片标识对应数据进行存储。
[0015] 进一步的,所述根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合的步骤,包括:
[0016] 分别向所述分片标识列表中的每个所述分片标识对应的所述分片发送用户数据获取请求;
[0017] 获取各个所述分片根据所述用户数据获取请求和所述预设统计时长发送的所述用户数据,将获取到的所有所述用户数据作为所述待分片的用户数据集合。
[0018] 进一步的,所述用户数据包括:用户标识、活跃度;所述用户数据的所述活跃度的计算公式H为:
[0019]
[0020] 其中,m是所述预设统计时长,D为日登录次数,W是登录权重,J是日交易次数,P是交易权重,m、W、P是常量。
[0021] 进一步的,所述采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标
识对应数据的步骤,包括:
[0022] 将所述待分片的用户数据集合中的所述用户数据按活跃度进行排序,得到排序后的用户数据集合;
[0023] 获取活跃度比例阈值;
[0024] 根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用
户标识与分片标识对应数据。
[0025] 进一步的,所述根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划
分,得到所述用户标识与分片标识对应数据的步骤,包括:
[0026] 依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识;
[0027] 将所述活跃度比例阈值与所述待划分的分片标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值;
[0028] 获取向上浮动比例和向下浮动比例;
[0029] 将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值;
[0030] 将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值;
[0031] 从所述排序后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配用户数据集合,其中,所述待划分的分片标识对应的所述匹配用户数
据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间;
[0032] 重复执行所述依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分片标识列表中的所有所述分片标识的获取或者完成所述
排序后的用户数据集合中的所有所述用户数据的提取;
[0033] 根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配用户数据集合,得到所述用户标识与分片标识对应数据。
[0034] 进一步的,所述将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识的步骤,包括:
[0035] 将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找;
[0036] 当在所述用户标识与分片标识对应数据中查找到的所述用户标识时,将在所述用户标识与分片标识对应数据中查找到的所述用户标识对应的分片标识作为所述目标分片
标识;
[0037] 当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时,获取预设分片标识,将所述预设分片标识作为所述目标分片标识。
[0038] 本申请还提出了一种分片路由装置,所述装置包括:
[0039] 请求获取模块,用于获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;
[0040] 数据获取模块,用于获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;
[0041] 目标分片标识确定模块,用于将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;
[0042] 路由模块,用于将所述目标访问请求路由到所述目标分片标识对应的分片。
[0043] 本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述中任一项所述方法的步骤。
[0044] 本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
[0045] 本申请的分片路由方法、装置、设备及存储介质,通过首先获取根据用户的活跃度确定的用户与分片的对应关系作为的用户标识与分片标识对应数据,然后将目标用户标识
在用户标识与分片标识对应数据中进行查找,得到目标分片标识,最后将目标访问请求路
由到目标分片标识对应的分片,从而避免单个分片在某个时间段处理的数据过多,避免了
现有技术的微服务架构的核心服务占用很多计算资源,机房宕机或者大片区网络异常导致
整个系统瘫痪,扩容导致系统膨胀变得臃肿的技术问题,提高了整体服务性能。

附图说明

[0046] 图1为本申请一实施例的分片路由方法的流程示意图;
[0047] 图2为本申请一实施例的分片路由装置的结构示意框图;
[0048] 图3为本申请一实施例的计算机设备的结构示意框图。
[0049] 本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0050] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不
用于限定本申请。
[0051] 为了解决现有技术的微服务架构的核心服务占用很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容导致系统膨胀变得臃肿的技术问题。本申请提出了
一种分片路由方法,所述方法应用于人工智能技术领域,所述方法进一步应用于人工智能
的分布式人工智能技术领域。本申请可用于众多通用或专用的计算机系统环境或配置中。
例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基
于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包
括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执
行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特
定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践
本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。
在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质
中。
[0052] 参照图1,本申请实施例中提供一种分片路由方法,所述方法包括:
[0053] S1:获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;
[0054] S2:获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;
[0055] S3:将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;
[0056] S4:将所述目标访问请求路由到所述目标分片标识对应的分片。
[0057] 本实施例通过首先获取根据用户的活跃度确定的用户与分片的对应关系作为的用户标识与分片标识对应数据,然后将目标用户标识在用户标识与分片标识对应数据中进
行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对应的分片,从而避
免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架构的核心服务占用
很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容导致系统膨胀变得
臃肿的技术问题,提高了整体服务性能。
[0058] 对于S1,当目标用户需要访问分片中的应用系统时,目标用户向发起访问请求,将接收到的目标用户发送的访问请求作为目标访问请求。
[0059] 目标用户对分片中的应用系统的访问可以是目标用户对分片中的微服务进行访问。
[0060] 目标访问请求,是指目标用户发送的访问分片中的应用系统的请求。
[0061] 目标用户标识,也就是所述目标用户的用户标识。用户标识可以是用户名称、用户ID等唯一标识一个用户的标识。
[0062] 可选的,所述分片采用的是DSU分片。DSU分片,是采用按客户维度进行分片,由GNS(具有图形化界面可以运行在多平台(包括Windows,Linux,and MacOS等)的网络虚拟软件)
去负责解析,完成分片,由解析器实现分片的路由,分片内部实现自包含。自包含,就是说所
有的客户的业务均可以在单个分片完成。
[0063] 对于S2,可以从对应的数据库中获取用户标识与分片标识对应数据,也可以从对应的缓存中获取用户标识与分片标识对应数据,还可以从第三方应用系统中获取用户标识
与分片标识对应数据。
[0064] 用户标识与分片标识对应数据包括:用户标识集合、分片标识,其中,用户标识集合与分片标识一一对应设置。分片标识可以是分片名称、分片ID等唯一标识一个分片的标
识。用户标识集合中可以包括一个用户标识,也可以包括多个用户标识,还可以包括0个用
户标识。
[0065] 可选的,所述用户标识集合还包括:活跃度,其中,用户标识集合中每个用户标识对应一个活跃度。
[0066] 可选的,所述分片中存储的是微服务架构的应用系统,所述用户标识与分片标识对应数据中的所有分片标识各自对应的所述分片中存储的是相同的应用系统,从而使每个
分片内部实现自包含。也就是说,所述用户标识与分片标识对应数据对应的每个所述分片
中都有相同的微服务架构的应用系统。
[0067] 可选的,所述用户标识与分片标识对应数据中的所有所述分片标识各自对应的所述分片之间采用数据隔离。所述数据隔离包括但不限于:不同服务器、相同地区不同机房及
不同地区不同机房中的一种或多种。
[0068] 可以理解的是,在另一个实施例中,所述用户标识与分片标识对应数据是根据分片负载均衡规则确定的用户与分片的对应关系,从而使每个分片以负载均衡的方式响应访
问请求。
[0069] 可以理解的是,在另一个实施例中,所述用户标识与分片标识对应数据还可以是根据其他分类规则确定的用户与分片的对应关系,比如,按地区进行分类、按组织标识进行
分类,在此举例不做具体限定。
[0070] 其中,所述用户标识与分片标识对应数据是根据各个所述分片中的各个用户数据中的活跃度确定的用户与分片的对应关系。
[0071] 对于S3,将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,将在所述用户标识与分片标识对应数据中查找到的用户标识对应的分片标识作为目标分
片标识。从而将已成功确定对应分片标识的用户标识按所述用户标识与分片标识对应数据
的数据进行路由。
[0072] 对于S4,将所述目标访问请求路由到所述目标分片标识对应的分片,使目标用户访问所述目标分片标识对应的所述分片中的应用系统。
[0073] 在一个实施例中,上述获取用户标识与分片标识对应数据的步骤之前,还包括:
[0074] S21:获取分片请求;
[0075] S22:响应所述分片请求,获取分片标识列表;
[0076] S23:获取预设统计时长,根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合;
[0077] S24:采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数
据;
[0078] S25:采用预设存储规则,对所述用户标识与分片标识对应数据进行存储。
[0079] 本实施例实现了首先根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,然后采用预设的用户分片规则,根据所述分片标识列
表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,从而实现了
根据用户的活跃度确定的用户与分片的对应关系。
[0080] 对于S21,分片请求可以是管理用户输入的,也可以是根据预设的分片时间数据触发的,还可以是第三方应用系统发送的。
[0081] 分片请求,是对所有分片中的用户进行分片的请求。
[0082] 预设的分片时间数据可以是每1天、每2天、每3天、每4天、每5天、每6天、每7天、每8天、每9天、每10天、每1个月、每2个月,在此不做具体限定。
[0083] 对于S22,响应所述分片请求,可以从对应的数据库中获取分片标识列表,也可以从第三方应用系统中获取分片标识列表。
[0084] 分片标识列表:分片标识、活跃度上限值,其中,所述分片标识与所述活跃度上限值一一对应设置。
[0085] 可选的,所述活跃度上限值,是通过模拟用户访问分片进行压力测试,在压力测试情况下分片在一天的活跃度的最大值。
[0086] 分片标识列表对应的所有分片中存储的是相同的微服务架构的应用系统。可以理解的是,分片标识列表对应的所有分片中存储的是相同的集中式架构的应用系统。
[0087] 对于S23,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,将获取的所有用户数据作为待分片的用户数据集合,其中,待分片的用户数据集合中中的
每个用户数据的活跃度是根据所述预设统计时长内同一分片中的数据计算得到的活跃度。
[0088] 用户数据包括:用户标识、活跃度,用户标识与活跃度一一对应。
[0089] 对于S24,采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,将确定的用户与分片对应关系作为
所述用户标识与分片标识对应数据。
[0090] 对于S25,将所述用户标识与分片标识对应数据存储在数据库及缓存中。从而实现在数据库中进行备份,通过缓存快速响应查询需求,提高了响应访问请求的能力。
[0091] 预设存储规则包括但不限于:只存储在数据库中、只存储在缓存中、存储在数据库及缓存中。
[0092] 在一个实施例中,上述根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合的步骤,包括:
[0093] S231:分别向所述分片标识列表中的每个所述分片标识对应的所述分片发送用户数据获取请求;
[0094] S232:获取各个所述分片根据所述用户数据获取请求和所述预设统计时长发送的所述用户数据,将获取到的所有所述用户数据作为所述待分片的用户数据集合。
[0095] 本实施例实现了根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,从而实现了获取有效的活跃度,为后续对用户进行准确的
分片提供了基础;而且用户数据的活跃度是各个分片自己计算的,从而提高了计算效率,缩
短了每次根据用户的活跃度确定的用户与分片的对应关系的时长。
[0096] 对于S231,分别向所述分片标识列表中的每个所述分片标识对应的所述分片发送用户数据获取请求。
[0097] 用户数据获取请求,是从分片获取用户数据的请求。
[0098] 对于S232,待分析的分片将所述用户数据获取请求的发送时间作为用户数据获取开始时间,根据所述待分析的分片中的历史数据确定所述待分析的分片中的各个用户标识
各自对应的活跃度,根据计算得到的所有活跃度和所有用户标识得到所述待分析的分片对
应的用户数据子集合,其中,所述待分析的分片是所述分片标识列表中的任一个所述分片
标识对应的所述分片,用户数据获取开始时间与所述历史数据的生成时间之间的时间差的
最大值小于或等于所述预设统计时长;将所有所述用户数据子集合作为所述待分片的用户
数据集合。
[0099] 可选的,所述用户数据的所述活跃度是采用预设的活跃度计算规则,根据登录次数和交易次数进行计算得到的数据。
[0100] 在一个实施例中,上述用户数据包括:用户标识、活跃度;所述用户数据的所述活跃度的计算公式H为:
[0101]
[0102] 其中,m是所述预设统计时长,D为日登录次数,W是登录权重,J是日交易次数,P是交易权重,m、W、P是常量。
[0103] 本实施例实现了采用预设的活跃度计算规则,根据登录次数和交易次数进行计算得到数据,为后续根据用户的活跃度确定的用户与分片的对应关系提供了基础。
[0104] 可选的,m设置为7。也就是从收到用户数据获取请求作为用户数据获取开始时间,往历史获取7天的活跃度。
[0105] 可选的,m设置为1个月。也就是从收到用户数据获取请求作为用户数据获取开始时间,往历史获取1个月的活跃度。
[0106] 可以理解的是,m还可以设置为其它数值,在此不做限定。
[0107] 可选的,每个用户的活跃度计算公式H为:
[0108]
[0109] 其中,m是所述预设统计时长,D为日登录次数,W是登录权重,J1是交易类型1对应的日交易次数,P1是交易类型1对应的交易权重,J2是交易类型2对应的日交易次数,P2是交
易类型2对应的交易权重,Jn是交易类型n对应的日交易次数,Pn是交易类型n对应的交易权
重,m、W、P1、P2、Pn是常量。从而实现了根据不同的交易类型采用不同的交易权重。从而实现
了针对不同交易类型设置不同的交易权重,进一步提高了计算的活跃度的准确性,提高了
根据用户的活跃度确定的用户与分片的对应关系的准确性。
[0110] 在一个实施例中,上述采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与
分片标识对应数据的步骤,包括:
[0111] S241:将所述待分片的用户数据集合中的所述用户数据按活跃度进行排序,得到排序后的用户数据集合;
[0112] S242:获取活跃度比例阈值;
[0113] S243:根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所
述用户标识与分片标识对应数据。
[0114] 本实施例实现了按活跃度进行排序之后进行用户标识划分,从而实现将相近活跃度的用户划分到同一分片;而且根据所述活跃度比例阈值和所述分片标识列表中的各个分
片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进
行划分,有利于控制每个分片的总活跃度,提高了各个分片提供服务的稳定性,提高了用户
体验。
[0115] 对于S241,根据所述待分片的用户数据集合中的各个所述用户数据的活跃度,将所述待分片的用户数据集合中的各个所述用户数据进行降序排序,将排序后的所有用户数
据作为排序后的用户数据集合。
[0116] 可以理解的是,将所述待分片的用户数据集合中的各个所述用户数据进行降序排序时,也可以采用升序排序。
[0117] 对于S242,可以从数据库中获取活跃度比例阈值,也可以从第三方应用系统中获取活跃度比例阈值,还可以将活跃度比例阈值写入实现本身的程序文件中。
[0118] 活跃度比例阈值的取值范围为:大于0并且小于1。
[0119] 可选的,所述活跃度比例阈值设置为0.8。从而在充分利用分片的计算资源的情况下,确保了分片可以满足用户的访问请求,进一步提高了分片提供服务的稳定性。
[0120] 对于S243,根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,也
就是将所述排序后的用户数据集合中每个用户标识与所述分片标识列表中的一个分片标
识关联,所述用户标识与分片标识对应数据中每个分片标识对应的用户标识。
[0121] 因为所述排序后的用户数据集合是按活跃度排序的,因此可以使所述用户标识与分片标识对应数据中每个分片标识对应的各个用户标识各自对应的活跃度相近。比如,分
片标识列表中有4个分片标识,意味着有4个分片,所述用户标识与分片标识对应数据为:第
一分片中的用户标识的活跃度60以上、第二分片中的用户标识的活跃度30‑60(不包括30,
包括60)、第三分片中的用户标识的活跃度1‑30(不包括1,包括30)、第二分片中的用户标识
的活跃度0‑1(包括0,包括1),从而实现将相近活跃度的用户划分到同一分片,在此举例不
做具体限定。
[0122] 可选的,所有活跃度为0的用户标识,被划分到同一个所述分片标识。
[0123] 在一个实施例中,上述根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进
行划分,得到所述用户标识与分片标识对应数据的步骤,包括:
[0124] S2431:依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识;
[0125] S2432:将所述活跃度比例阈值与所述待划分的分片标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值;
[0126] S2433:获取向上浮动比例和向下浮动比例;
[0127] S2434:将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值;
[0128] S2435:将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值;
[0129] S2436:从所述排序后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配用户数据集合,其中,所述待划分的分片标识对应的所述匹配
用户数据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值
之间;
[0130] S2437:重复执行所述依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分片标识列表中的所有所述分片标识的获取或者完
成所述排序后的用户数据集合中的所有所述用户数据的提取;
[0131] S2438:根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配用户数据集合,得到所述用户标识与分片标识对应数据。
[0132] 本实施例根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,有
利于控制每个分片的总活跃度,提高了各个分片提供服务的稳定性,提高了用户体验。
[0133] 对于S2431,依次从所述分片标识列表中获取一个所述分片标识,将获取的所述分片标识作为待划分的分片标识。
[0134] 对于S2432,将所述活跃度比例阈值与所述待划分的分片标识对应的所述活跃度上限值进行相乘计算,将计算得到的数据作为所述待划分的分片标识对应的活跃度目标
值。
[0135] 对于S2433,可以从数据库中获取向上浮动比例和向下浮动比例,也可以从第三方应用系统中获取向上浮动比例和向下浮动比例,还可以将向上浮动比例和向下浮动比例写
入实现本身的程序文件中。
[0136] 向上浮动比例的取值范围是大于等于1。
[0137] 向下浮动比例的取值范围是大于等于0并且小于等于1。
[0138] 对于S2434,将所述活跃度目标值与所述向上浮动比例进行相乘计算,将计算得到的数据作为活跃度上限值。
[0139] 对于S2435,将所述活跃度目标值与所述向下浮动比例进行相乘计算,将计算得到的数据作为活跃度下限值。
[0140] 对于S2436,从所述排序后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配用户数据集合,从而使相近活跃度的用户标识被分到同一
个分片中。可以理解的是,所述排序后的用户数据集合中的每个用户标识只能被分到一个
分片。也就是说,所述用户标识与分片标识对应数据中每个用户标识只会出现一次。
[0141] 因为所述待划分的分片标识对应的所述匹配用户数据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间,从而避免同一分片被划分的用
户标识的活跃度的总和超过分片的承受压力,提升了分片运行的稳定性。
[0142] 对于S2437,重复执行步骤S2431至步骤S2437,直至完成所述分片标识列表中的所有所述分片标识的获取或者完成所述排序后的用户数据集合中的所有所述用户数据的提
取。
[0143] 对于S2438,根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配用户数据集合进行用户标识提取,得到所述分片标识列表中的各个所述分片标识各自对应
的用户标识集合,从而得到了用户与分片的对应关系。
[0144] 在一个实施例中,上述将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识的步骤,包括:
[0145] S31:将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找;
[0146] S32:当在所述用户标识与分片标识对应数据中查找到的所述用户标识时,将在所述用户标识与分片标识对应数据中查找到的所述用户标识对应的分片标识作为所述目标
分片标识;
[0147] S33:当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时,获取预设分片标识,将所述预设分片标识作为所述目标分片标识。
[0148] 本实施例当在所述用户标识与分片标识对应数据中查找到的所述用户标识时将在所述用户标识与分片标识对应数据中查找到的所述用户标识对应的分片标识作为所述
目标分片标识,当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时将
所述预设分片标识作为所述目标分片标识,从而将已成功确定对应分片标识的用户标识按
所述用户标识与分片标识对应数据的数据进行路由,将未成功确定对应分片标识的用户标
识按预设分片标识进行路由,从而避免新用户无法被路由,也不需要实时进行所述用户标
识与分片标识对应数据的更新,在确保向新用户提供服务的情况下减少计算资源的消耗。
[0149] 对于S31,将所述目标用户标识在所述用户标识与分片标识对应数据的所有用户标识中进行查找。
[0150] 对于S32,当在所述用户标识与分片标识对应数据中查找到的所述用户标识时,意味着所述目标用户标识已成功确定对应分片标识,因此将在所述用户标识与分片标识对应
数据中查找到的所述用户标识对应的分片标识作为所述目标分片标识。
[0151] 对于S33,当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时,意味着所述目标用户标识未成功确定对应分片标识,因此将所述预设分片标识作为所
述目标分片标识。
[0152] 预设分片标识,也就是指定的分片标识。
[0153] 参照图2,本申请还提出了一种分片路由装置,所述装置包括:
[0154] 请求获取模块100,用于获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;
[0155] 数据获取模块200,用于获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;
[0156] 目标分片标识确定模块300,用于将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;
[0157] 路由模块400,用于将所述目标访问请求路由到所述目标分片标识对应的分片。
[0158] 本实施例通过首先获取根据用户的活跃度确定的用户与分片的对应关系作为的用户标识与分片标识对应数据,然后将目标用户标识在用户标识与分片标识对应数据中进
行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对应的分片,从而避
免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架构的核心服务占用
很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容导致系统膨胀变得
臃肿的技术问题,提高了整体服务性能。
[0159] 在一个实施例中,上述装置还包括:用户标识与分片标识对应数据确定模块;
[0160] 所述用户标识与分片标识对应数据确定模块,用于获取分片请求,响应所述分片请求,获取分片标识列表,获取预设统计时长,根据所述预设统计时长,分别从所述分片标
识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合,采用预
设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行
用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据,采用预设存储规则,
对所述用户标识与分片标识对应数据进行存储。
[0161] 在一个实施例中,上述用户标识与分片标识对应数据确定模块包括:待分片的用户数据集合确定子模块;
[0162] 所述待分片的用户数据集合确定子模块,用于分别向所述分片标识列表中的每个所述分片标识对应的所述分片发送用户数据获取请求,获取各个所述分片根据所述用户数
据获取请求和所述预设统计时长发送的所述用户数据,将获取到的所有所述用户数据作为
所述待分片的用户数据集合。
[0163] 在一个实施例中,上述用户数据包括:用户标识、活跃度;所述用户数据的所述活跃度的计算公式H为:
[0164]
[0165] 其中,m是所述预设统计时长,D为日登录次数,W是登录权重,J是日交易次数,P是交易权重,m、W、P是常量。
[0166] 在一个实施例中,上述用户标识与分片标识对应数据确定模块还包括:用户标识与分片标识对应数据计算子模块;
[0167] 所述用户标识与分片标识对应数据计算子模块,用于将所述待分片的用户数据集合中的所述用户数据按活跃度进行排序,得到排序后的用户数据集合,获取活跃度比例阈
值,根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上
限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识
与分片标识对应数据。
[0168] 在一个实施例中,上述用户标识与分片标识对应数据计算子模块包括:用户标识与分片标识对应数据计算单元;
[0169] 所述用户标识与分片标识对应数据计算单元,用于依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识,将所述活跃度比例阈值与所述待划分的分片
标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值,获取向上浮动比例和向
下浮动比例,将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值,
将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值,从所述排序
后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配
用户数据集合,其中,所述待划分的分片标识对应的所述匹配用户数据集合对应的所有所
述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间,重复执行所述依次从所
述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分
片标识列表中的所有所述分片标识的获取或者完成所述排序后的用户数据集合中的所有
所述用户数据的提取,根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配
用户数据集合,得到所述用户标识与分片标识对应数据。
[0170] 在一个实施例中,上述目标分片标识确定模块300包括:查找子模块、目标分片标识第一确定子模块、目标分片标识第二确定子模块;
[0171] 所述查找子模块,用于将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找;
[0172] 所述目标分片标识第一确定子模块,用于当在所述用户标识与分片标识对应数据中查找到的所述用户标识时,将在所述用户标识与分片标识对应数据中查找到的所述用户
标识对应的分片标识作为所述目标分片标识;
[0173] 所述目标分片标识第二确定子模块,用于当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时,获取预设分片标识,将所述预设分片标识作为所述目标
分片标识。
[0174] 参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络
接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存
储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序
和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该
计算机设备的数据库用于储存分片路由方法等数据。该计算机设备的网络接口用于与外部
的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分片路由方法。所述
分片路由方法,包括:获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用
户对应的目标用户标识;获取用户标识与分片标识对应数据,其中,所述用户标识与分片标
识对应数据是根据用户的活跃度确定的用户与分片的对应关系;将所述目标用户标识在所
述用户标识与分片标识对应数据中进行查找,得到目标分片标识;将所述目标访问请求路
由到所述目标分片标识对应的分片。
[0175] 本实施例通过首先获取根据用户的活跃度确定的用户与分片的对应关系作为的用户标识与分片标识对应数据,然后将目标用户标识在用户标识与分片标识对应数据中进
行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对应的分片,从而避
免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架构的核心服务占用
很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容导致系统膨胀变得
臃肿的技术问题,提高了整体服务性能。
[0176] 本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种分片路由方法,包括步骤:获取目标用户的目标访问请求,
所述目标访问请求携带有所述目标用户对应的目标用户标识;获取用户标识与分片标识对
应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片
的对应关系;将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到
目标分片标识;将所述目标访问请求路由到所述目标分片标识对应的分片。
[0177] 上述执行的分片路由方法,通过首先获取根据用户的活跃度确定的用户与分片的对应关系作为的用户标识与分片标识对应数据,然后将目标用户标识在用户标识与分片标
识对应数据中进行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对
应的分片,从而避免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架
构的核心服务占用很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容
导致系统膨胀变得臃肿的技术问题,提高了整体服务性能。
[0178] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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)等。
[0179] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而
且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0180] 以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关
的技术领域,均同理包括在本申请的专利保护范围内。