分片路由方法、装置、设备及存储介质转让专利
申请号 : CN202110693929.7
文献号 : CN113347094B
文献日 : 2022-05-20
发明人 : 闫明坤
申请人 : 深圳壹账通智能科技有限公司
摘要 :
权利要求 :
1.一种分片路由方法,其特征在于,所述方法包括:获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;
获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;
将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;
将所述目标访问请求路由到所述目标分片标识对应的分片;
所述获取用户标识与分片标识对应数据的步骤之前,还包括:获取分片请求;
响应所述分片请求,获取分片标识列表;
获取预设统计时长,根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合;
采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据;
采用预设存储规则,对所述用户标识与分片标识对应数据进行存储;
所述采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据的步骤,包括:
将所述待分片的用户数据集合中的所述用户数据按活跃度进行排序,得到排序后的用户数据集合;
获取活跃度比例阈值;
根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据;
所述根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据的步骤,包括:依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识;
将所述活跃度比例阈值与所述待划分的分片标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值;
获取向上浮动比例和向下浮动比例;
将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值;
将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值;
从所述排序后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配用户数据集合,其中,所述待划分的分片标识对应的所述匹配用户数据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间;
重复执行所述依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分片标识列表中的所有所述分片标识的获取或者完成所述排序后的用户数据集合中的所有所述用户数据的提取;
根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配用户数据集合,得到所述用户标识与分片标识对应数据。
2.根据权利要求1所述的分片路由方法,其特征在于,所述根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合的步骤,包括:
分别向所述分片标识列表中的每个所述分片标识对应的所述分片发送用户数据获取请求;
获取各个所述分片根据所述用户数据获取请求和所述预设统计时长发送的所述用户数据,将获取到的所有所述用户数据作为所述待分片的用户数据集合。
3.根据权利要求2所述的分片路由方法,其特征在于,所述用户数据包括:用户标识、活跃度;所述用户数据的所述活跃度的计算公式H为:其中,m是所述预设统计时长,D为日登录次数,W是登录权重,J是日交易次数,P是交易权重,m、W、P是常量。
4.根据权利要求1所述的分片路由方法,其特征在于,所述将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识的步骤,包括:将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找;
当在所述用户标识与分片标识对应数据中查找到的所述用户标识时,将在所述用户标识与分片标识对应数据中查找到的所述用户标识对应的分片标识作为所述目标分片标识;
当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时,获取预设分片标识,将所述预设分片标识作为所述目标分片标识。
5.一种分片路由装置,其特征在于,所述装置包括:请求获取模块,用于获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用户对应的目标用户标识;
数据获取模块,用于获取用户标识与分片标识对应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片的对应关系;
目标分片标识确定模块,用于将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到目标分片标识;
路由模块,用于将所述目标访问请求路由到所述目标分片标识对应的分片;
所述获取用户标识与分片标识对应数据的步骤之前,还包括:获取分片请求;
响应所述分片请求,获取分片标识列表;
获取预设统计时长,根据所述预设统计时长,分别从所述分片标识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合;
采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据;
采用预设存储规则,对所述用户标识与分片标识对应数据进行存储;
所述采用预设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据的步骤,包括:
将所述待分片的用户数据集合中的所述用户数据按活跃度进行排序,得到排序后的用户数据集合;
获取活跃度比例阈值;
根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据;
所述根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识与分片标识对应数据的步骤,包括:依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识;
将所述活跃度比例阈值与所述待划分的分片标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值;
获取向上浮动比例和向下浮动比例;
将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值;
将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值;
从所述排序后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配用户数据集合,其中,所述待划分的分片标识对应的所述匹配用户数据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间;
重复执行所述依次从所述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分片标识列表中的所有所述分片标识的获取或者完成所述排序后的用户数据集合中的所有所述用户数据的提取;
根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配用户数据集合,得到所述用户标识与分片标识对应数据。
6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
说明书 :
分片路由方法、装置、设备及存储介质
技术领域
背景技术
拆分后,每个服务保证高可用和负载均衡,但是仍然有下列问题:(1)整个微服务架构仍然
作为一个整体对外提供服务,为保证整体服务稳定以及避免单一服务有性能瓶颈,核心服
务占用很多计算资源,存在计算资源浪费;(2)某个机房宕机或者大片区网络异常,会导致
核心服务宕机,进而导致整个系统瘫痪,无法对外提供服务,影响所有用户;(3)用户数量急
剧增加会使整个系统不断扩容,导致系统膨胀变得臃肿,维护起来困难。
发明内容
个系统瘫痪,扩容导致系统膨胀变得臃肿的技术问题。
识对应数据的步骤,包括:
户标识与分片标识对应数据。
分,得到所述用户标识与分片标识对应数据的步骤,包括:
据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间;
排序后的用户数据集合中的所有所述用户数据的提取;
标识;
在用户标识与分片标识对应数据中进行查找,得到目标分片标识,最后将目标访问请求路
由到目标分片标识对应的分片,从而避免单个分片在某个时间段处理的数据过多,避免了
现有技术的微服务架构的核心服务占用很多计算资源,机房宕机或者大片区网络异常导致
整个系统瘫痪,扩容导致系统膨胀变得臃肿的技术问题,提高了整体服务性能。
附图说明
具体实施方式
用于限定本申请。
一种分片路由方法,所述方法应用于人工智能技术领域,所述方法进一步应用于人工智能
的分布式人工智能技术领域。本申请可用于众多通用或专用的计算机系统环境或配置中。
例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基
于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包
括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执
行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特
定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践
本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。
在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质
中。
行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对应的分片,从而避
免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架构的核心服务占用
很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容导致系统膨胀变得
臃肿的技术问题,提高了整体服务性能。
去负责解析,完成分片,由解析器实现分片的路由,分片内部实现自包含。自包含,就是说所
有的客户的业务均可以在单个分片完成。
与分片标识对应数据。
识。用户标识集合中可以包括一个用户标识,也可以包括多个用户标识,还可以包括0个用
户标识。
分片内部实现自包含。也就是说,所述用户标识与分片标识对应数据对应的每个所述分片
中都有相同的微服务架构的应用系统。
不同地区不同机房中的一种或多种。
问请求。
分类,在此举例不做具体限定。
片标识。从而将已成功确定对应分片标识的用户标识按所述用户标识与分片标识对应数据
的数据进行路由。
据;
表和所述待分片的用户数据集合中的活跃度进行用户与分片对应关系的确定,从而实现了
根据用户的活跃度确定的用户与分片的对应关系。
每个用户数据的活跃度是根据所述预设统计时长内同一分片中的数据计算得到的活跃度。
所述用户标识与分片标识对应数据。
分片提供了基础;而且用户数据的活跃度是各个分片自己计算的,从而提高了计算效率,缩
短了每次根据用户的活跃度确定的用户与分片的对应关系的时长。
各自对应的活跃度,根据计算得到的所有活跃度和所有用户标识得到所述待分析的分片对
应的用户数据子集合,其中,所述待分析的分片是所述分片标识列表中的任一个所述分片
标识对应的所述分片,用户数据获取开始时间与所述历史数据的生成时间之间的时间差的
最大值小于或等于所述预设统计时长;将所有所述用户数据子集合作为所述待分片的用户
数据集合。
易类型2对应的交易权重,Jn是交易类型n对应的日交易次数,Pn是交易类型n对应的交易权
重,m、W、P1、P2、Pn是常量。从而实现了根据不同的交易类型采用不同的交易权重。从而实现
了针对不同交易类型设置不同的交易权重,进一步提高了计算的活跃度的准确性,提高了
根据用户的活跃度确定的用户与分片的对应关系的准确性。
分片标识对应数据的步骤,包括:
述用户标识与分片标识对应数据。
片标识各自对应的活跃度上限值,分别对所述排序后的用户数据集合中的每个用户标识进
行划分,有利于控制每个分片的总活跃度,提高了各个分片提供服务的稳定性,提高了用户
体验。
据作为排序后的用户数据集合。
就是将所述排序后的用户数据集合中每个用户标识与所述分片标识列表中的一个分片标
识关联,所述用户标识与分片标识对应数据中每个分片标识对应的用户标识。
片标识列表中有4个分片标识,意味着有4个分片,所述用户标识与分片标识对应数据为:第
一分片中的用户标识的活跃度60以上、第二分片中的用户标识的活跃度30‑60(不包括30,
包括60)、第三分片中的用户标识的活跃度1‑30(不包括1,包括30)、第二分片中的用户标识
的活跃度0‑1(包括0,包括1),从而实现将相近活跃度的用户划分到同一分片,在此举例不
做具体限定。
行划分,得到所述用户标识与分片标识对应数据的步骤,包括:
用户数据集合对应的所有所述活跃度的总和位于所述活跃度下限值与所述活跃度上限值
之间;
成所述排序后的用户数据集合中的所有所述用户数据的提取;
利于控制每个分片的总活跃度,提高了各个分片提供服务的稳定性,提高了用户体验。
值。
入实现本身的程序文件中。
个分片中。可以理解的是,所述排序后的用户数据集合中的每个用户标识只能被分到一个
分片。也就是说,所述用户标识与分片标识对应数据中每个用户标识只会出现一次。
户标识的活跃度的总和超过分片的承受压力,提升了分片运行的稳定性。
取。
的用户标识集合,从而得到了用户与分片的对应关系。
分片标识;
目标分片标识,当在所述用户标识与分片标识对应数据中没有查找到的所述用户标识时将
所述预设分片标识作为所述目标分片标识,从而将已成功确定对应分片标识的用户标识按
所述用户标识与分片标识对应数据的数据进行路由,将未成功确定对应分片标识的用户标
识按预设分片标识进行路由,从而避免新用户无法被路由,也不需要实时进行所述用户标
识与分片标识对应数据的更新,在确保向新用户提供服务的情况下减少计算资源的消耗。
数据中查找到的所述用户标识对应的分片标识作为所述目标分片标识。
述目标分片标识。
行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对应的分片,从而避
免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架构的核心服务占用
很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容导致系统膨胀变得
臃肿的技术问题,提高了整体服务性能。
识列表中的每个分片标识对应的分片获取用户数据,得到待分片的用户数据集合,采用预
设的用户分片规则,根据所述分片标识列表和所述待分片的用户数据集合中的活跃度进行
用户与分片对应关系的确定,得到所述用户标识与分片标识对应数据,采用预设存储规则,
对所述用户标识与分片标识对应数据进行存储。
据获取请求和所述预设统计时长发送的所述用户数据,将获取到的所有所述用户数据作为
所述待分片的用户数据集合。
值,根据所述活跃度比例阈值和所述分片标识列表中的各个分片标识各自对应的活跃度上
限值,分别对所述排序后的用户数据集合中的每个用户标识进行划分,得到所述用户标识
与分片标识对应数据。
标识对应的所述活跃度上限值进行相乘计算,得到活跃度目标值,获取向上浮动比例和向
下浮动比例,将所述活跃度目标值与所述向上浮动比例进行相乘计算,得到活跃度上限值,
将所述活跃度目标值与所述向下浮动比例进行相乘计算,得到活跃度下限值,从所述排序
后的用户数据集合的开头开始提取所述用户数据,得到所述待划分的分片标识对应的匹配
用户数据集合,其中,所述待划分的分片标识对应的所述匹配用户数据集合对应的所有所
述活跃度的总和位于所述活跃度下限值与所述活跃度上限值之间,重复执行所述依次从所
述分片标识列表中获取一个所述分片标识作为待划分的分片标识的步骤,直至完成所述分
片标识列表中的所有所述分片标识的获取或者完成所述排序后的用户数据集合中的所有
所述用户数据的提取,根据所述分片标识列表中的各个所述分片标识各自对应的所述匹配
用户数据集合,得到所述用户标识与分片标识对应数据。
标识对应的分片标识作为所述目标分片标识;
分片标识。
接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存
储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序
和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该
计算机设备的数据库用于储存分片路由方法等数据。该计算机设备的网络接口用于与外部
的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分片路由方法。所述
分片路由方法,包括:获取目标用户的目标访问请求,所述目标访问请求携带有所述目标用
户对应的目标用户标识;获取用户标识与分片标识对应数据,其中,所述用户标识与分片标
识对应数据是根据用户的活跃度确定的用户与分片的对应关系;将所述目标用户标识在所
述用户标识与分片标识对应数据中进行查找,得到目标分片标识;将所述目标访问请求路
由到所述目标分片标识对应的分片。
行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对应的分片,从而避
免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架构的核心服务占用
很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容导致系统膨胀变得
臃肿的技术问题,提高了整体服务性能。
所述目标访问请求携带有所述目标用户对应的目标用户标识;获取用户标识与分片标识对
应数据,其中,所述用户标识与分片标识对应数据是根据用户的活跃度确定的用户与分片
的对应关系;将所述目标用户标识在所述用户标识与分片标识对应数据中进行查找,得到
目标分片标识;将所述目标访问请求路由到所述目标分片标识对应的分片。
识对应数据中进行查找,得到目标分片标识,最后将目标访问请求路由到目标分片标识对
应的分片,从而避免单个分片在某个时间段处理的数据过多,避免了现有技术的微服务架
构的核心服务占用很多计算资源,机房宕机或者大片区网络异常导致整个系统瘫痪,扩容
导致系统膨胀变得臃肿的技术问题,提高了整体服务性能。
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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)等。
且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、装置、物品或者方法中还存在另外的相同要素。
的技术领域,均同理包括在本申请的专利保护范围内。