表单标示符生成方法、表单分流方法和装置与流程

文档序号:18689910发布日期:2019-09-17 20:27阅读:198来源:国知局
表单标示符生成方法、表单分流方法和装置与流程

本申请涉及数据库技术领域,特别是涉及一种表单标示符生成方法、一种表单分流方法、一种表单标示符生成装置和一种表单分流装置。



背景技术:

ID即标示符,可以在某个搜索域内唯一标示其中某个对象。在关系型数据库中,在单库单表环境下,一般会使用auto_increment属性或sequence对象作为生成ID的方法来唯一标示一条记录,这种方法在单库模式下能确保ID的唯一性。但是当系统规模扩大,单库单表不能满足业务数据的增长要求时,就要进行分库分表的扩容改造,每个分库分表的表单也需要生成一个全局唯一标示码ID。

目前,常用的分库分表环境下的表单ID生成方法有多种,例如:依据如当前计算机的MAC地址和时钟等参量使用多种算法来生成UUID,但是该方法生成的ID无任何业务层面的信息,如日期时间信息;还有根据时间戳、MAC地址、当前进程等信息组合生成的MongoDB Object ID,该生成方式虽然能够根据多部分信息组成一个唯一ID,但是其中包含的信息对应用业务层来说是透明的,应用业务层无法感知并利用这些信息。这些生成表单ID的方法给应用业务层在分库分表环境下的表单分流操作带来困难。



技术实现要素:

本申请实施例所要解决的技术问题是提供一种表单标示符生成方法和一种表单分流方法,能够便于应用业务层的表单分流操作。

相应的,本申请实施例还提供了一种表单标示符生成装置和一种表单分流装置,用以保证上述方法的实现及应用。

为了解决上述问题,本申请公开了一种表单标示符生成方法,包括:

生成唯一标示部分及路由标示部分,其中包括:根据预设的表单分流路由规则生成所述路由标示部分;

依据所述唯一标示部分及所述路由标示部分组合生成所述表单的标示符。

进一步,所述根据预设的表单分流路由规则生成所述路由标示部分,包括:

根据预设的表单分库路由规则生成分库标示位。

进一步,所述根据预设的表单分流路由规则生成所述路由标示部分,还包括:

根据预设的表单分表路由规则生成分表标示位。

进一步,所述分库标示位及所述分表标示位均至少包括2位字符。

进一步,所述根据预设的表单分流路由规则生成所述路由标示部分,包括:

在用户标示符中选取特征位作为所述路由标示部分。

进一步,所述生成唯一标示部分,包括:

根据所述表单所对应的应用的关联参数生成第一标示部分,及根据所述表单的生成序列生成所述表单的序列号。

进一步,根据表单所对应的应用的关联参数生成所述第一标示部分,包括:

根据所述应用服务的日期生成日期标示位;

根据所述应用的启动参数生成数据版本位、系统版本位、系统标示位和业务标示位。

本申请实施例还公开了一种表单分流方法,包括:

接收网关分流的表单,其中,所述表单的标示符按照前述方法生成;

获取所述表单的标示符;

读取所述表单标示符中的路由标示部分;

根据所述表单的所述路由标示部分对所述表单进行分流。

进一步,所述根据所述表单的所述路由标示部分对所述表单进行分流,包括:

根据所述路由标示部分包含的分库标示位,将所述表单分流到与所述分库标示位对应的数据库中;

根据所述路由标示部分包含的分表标示位,将所述表单分流到所述数据库中与所述分表标示位对应的表集合中。

本申请实施例还公开了一种表单标示符生成装置,包括:

第一标示生成单元,被配置为生成唯一标示部分;

第二标示生成单元,被配置为根据预设的表单分流路由规则生成所述路由标示部分;

组合生成单元,被配置为依据所述唯一标示部分及所述路由标示部分组合生成所述表单的标示符。

进一步,所述第二标示生成单元,被配置为根据预设的表单分库路由规则生成分库标示位。

进一步,所述第二标示生成单元,还被配置为根据预设的表单分表路由规则生成分表标示位。

本申请实施例还公开了一种表单分流装置,包括:

接收单元,被配置为接收网关分流的表单,其中,所述表单的标示符按照前述方法生成;

获取单元,被配置为获取所述表单的标示符;

读取单元,被配置为读取所述表单标示符中的路由标示部分;

分流单元,被配置为根据所述表单的所述路由标示部分对所述表单进行分流。

进一步,分流单元包括:

分库子单元,被配置为根据所述路由标示部分包含的分库标示位,将所述表单分流到与所述分库标示位对应的数据库中;

分表子单元,被配置为根据所述路由标示部分包含的分表标示位,将所述表单分流到所述数据库中与所述分表标示位对应的表集合中。

与现有技术相比,本申请实施例包括以下优点:

本申请实施例通过利用唯一标示部分及表单分流路由规则来生成表单的唯一标示符,使得应用业务层可以感知并利用这些信息进行表单分流,尤其可以利用标示符中的路由标示部分来依据预定的表单分流路由规则进行表单分流。该生成表单唯一标示符的方法除了可以满足技术层面的全局ID唯一性外,还便于应用业务层在分库分表环境下的利用表单标示符中包含的路由信息进行表单分流操作,为分布式环境下大规模的海量数据的分库分表的拆分提供良好的扩展性和路由规则。

附图说明

图1是本申请的一种表单标示符生成方法实施例的步骤流程图;

图2是本申请的一种生成第一标示部分的方法实施例的步骤流程图;

图3是本申请的一种生成路由标示部分的方法实施例的步骤流程图;

图4是本申请的一种表单标示符的结构示意图;

图5是本申请的一种表单分流方法实施例的步骤流程图;

图6是本申请的一种根据表单的路由标示部分对表单进行分流的方法实施例的步骤流程图;

图7是本申请的一种表单标示符装置实施例的结构框图;

图8是本申请的一种表单分流装置实施例的结构框图;

图9是本申请的一种分流单元实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请的一种表单标示符生成方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,生成唯一标示部分及路由标示部分。

本实施例中,该生成表单唯一标示符的装置(以下简称该装置)首先生成组成该标示符的各部分,包括生成唯一标示部分及路由标示部分,其中唯一标示部分可以包括第一标示部分及序列号。具体可以是:根据表单所对应的应用的关联参数生成第一标示部分;根据预设的表单分流路由规则生成路由标示部分;根据表单的生成序列获得表单的序列号。各部分的生成可以依次或同时进行,次序不做限定。

其中,第一标示部分可以根据应用的启动参数等生成,具体可以包括日期信息、版本信息、业务信息等。

路由标示部分根据预先设定的表单分流时的路由规则来生成,例如表单分流路由规则为将同一用户的表单分流在同一数据库,则该生成的路由标示部分中需要包含用户的标识信息。在后续进行表单分流时,根据该路由标示部分进行分流即可实现预定的路由规则。

若表单的分流只是进行分库,则该路由标示部分可以只包含分库标示位,如果表单的分流是进行分库分表,则该路由标示部分可以包括分库标示位及分表标示位。

表单的序列号也即该表单生成的序号。为了支持足够的数据量,该序列号可以设置为8位。

步骤102,依据唯一标示部分及路由标示部分组合生成表单的标示符。

在获得上述第一标示部分、路由标示部分及序列号之后,本步骤可以按照一定的顺序或规则进行组合生成表单的唯一标示符,例如依次将第一标示部分、路由标示部分及序列号拼接在一起即可生成该表单的唯一标示符。

本申请实施例通过利用应用的关联参数、表单分流路由规则及表单的序列号来生成表单的唯一标示符,使得应用业务层可以感知并利用这些信息进行表单分流,尤其可以利用标示符中的路由标示部分来依据预定的表单分流路由规则进行表单分流。该生成表单唯一标示符的方法除了可以满足技术层面的全局ID唯一性外,还便于应用业务层在分库分表环境下的利用表单标示符中包含的路由信息进行表单分流操作,为分布式环境下大规模的海量数据的分库分表的拆分提供良好的扩展性和路由规则。

在本申请的另一实施例中,该装置根据表单所对应的应用的关联参数生成第一标示部分的过程,如图2所示,可以包括:

步骤201,根据应用服务的日期生成日期标示位。

该装置可以获取当前应用服务的日期,并截取8位年月日字符串作为日期标示位。

步骤202,根据应用的启动参数生成数据版本位、系统版本位、系统标示位和业务标示位。

该装置可以根据应用的启动参数配置设置数据版本位和系统版本位,其中,数据版本位和系统版本位均可以是1位。

该装置可以根据应用启动参数设置3位的系统标示位,用于表示表单唯一标示符是由集群中的哪个应用生成的;

该装置根据应用启动参数设置3位业务标示位,用于表示表单标示符关联的这笔数据是什么业务。

上述步骤可以根据需要调整顺序,此处不做限定。

在本申请的另一实施例中,该装置根据预设的表单分流路由规则生成路由标示部分的过程,如图3所示,可以包括:

步骤301,根据预设的表单分库路由规则生成分库标示位。

该装置可以根据分库时需要遵循的路由规则生成该表单标示符中的分库标示位。例如,分库时需遵循的路由规则是相同用户的表单分流到同一数据库中,则可以从用户的标识信息中,例如uid(userId)中提取其中的特征位,如倒数第1、2位,作为表单标示符中的分库标示位。该分库标示位可以有两位,以支持100个物理库的扩展。

如果本实施例应用于分库分表的场景中,且分表也需要遵循某一路由规则,则还可以执行步骤302。

步骤302,根据预设的表单分表路由规则生成分表标示位。

该装置可以根据分表时需要遵循的路由规则生成该表单标示符中的分表标示位。例如,分表时需遵循的路由规则是相同用户的表单分流到同一数据库的同一表集合中,则可以从用户的标识信息中,例如uid(userId)中提取其中的其它的特征位,如倒数第3、4位,作为表单标示符中的分表标示位。该分表标示位也可以有两位,以支持100个分表的扩展。

分库标示位和分表标示位的位数可以根据所需要的物理库和表集合数量来确定。

按照上述实施例的方法,在一具体实例中,假设根据应用服务的日期生成的日期标示位为20141212;根据应用的启动参数生成的数据版本位、系统版本位、系统标示位和业务标示位依次为0,1,001,001;在网上交易支付系统中,因为是基于用户登录所做的业务操作,因此该装置可根据uid(userId)来选取约定好的第几位作为这个分库、分表标示位,如用户的uid=20188199965812,约定选取低位倒数第1,2位作为分库标示位,低位倒数第3,4位作为分表标示位;从类sequence获取nextValue作为表单标示符中的序列号,设定序列号为8位,位数不够前面填充0补齐,假设获取的序列号为28945699。

在获取上述信息后,即可拼接在一起生成如图4所示的由8位(日期)+1位(数据版本)+1位(系统版本位)+3位(系统标示位)+3位(业务标示位)+2位(分表标示位)+2位(分库标示位)+8位(序列号),总共28位字符组成的表单的唯一标示符2014121201001001581228945699。

其中,表单标示符可根据前8位日期+序号按时间排序;单表可以支持足够的数据量,后8位序号一天可以最多1亿条数据记录;分库标示位可以支持100个物理库的扩展;分表标示位可以支持100个分表的扩展。

按照上述方法生成的表单标示符,每笔业务数据对应的表单都会明确的带有用户uid信息,因此同一个用户的表单都会在落到同一个分库分表中去,利于数据的聚集。通过该规范的业务全局唯一标示符,业务应用层就可以很容易做表单的分库分表且迁移成本小,为整个的业务的数据架构层带来非常良好的基础,业务数据的落地具备也可以有很好的扩展性。

参照图5,示出了本申请的一种表单分流方法实施例的步骤流程图,具体可以包括如下步骤:

步骤501,接收网关分流的表单。

本实施例中,该表单分流装置具体可以是应用服务器等。其中,该表单的标示符可以按照前述实施例的方法来生成。该表单标示符中包括根据表单所对应的应用的关联参数生成的第一标示部分;根据预设的表单分流路由规则生成的路由标示部分;根据表单的生成序列获得的表单的序列号。

步骤502,获取表单的标示符。

步骤503,读取表单标示符中的路由标示部分。

该表单标示符中的路由标示部分中包含有表单的分流路由规则。

步骤504,根据表单的路由标示部分对表单进行分流。

该表单分流装置可以根据路由标示部分包含的信息进行表单分流,据此获得的分流结果即可体现预定的分流路由规则。

本申请实施例在分库分表的环境下,通过利用表单标示符中包含的路由信息可以很容易地进行表单的分库分表且迁移成本小,为整个的业务的数据架构层带来非常良好的基础,业务数据的落地具备也可以有很好的扩展性。

在另一实施例中,该表单分流装置根据表单的路由标示部分对表单进行分流的过程,如图6所示,可以包括:

步骤601,根据路由标示部分包含的分库标示位,将表单分流到与分库标示位对应的数据库中。

本实施例中的表单标示符中路由标示部分包含分库标示位和分表标示位,例如,表单标示符为2014121201001001581228945699,分库标示位为12,分表标示位为58,本步骤将该表单分流到数据库12中。

步骤602,根据路由标示部分包含的分表标示位,将表单分流到数据库中与分表标示位对应的表集合中。

本步骤继续将上述表单分流到数据库12中与分表标示位58对应的表集合中。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图7,示出了本申请一种表单标示符装置实施例的结构框图,具体可以包括如下单元:

第一标示生成单元701,被配置为生成唯一标示部分。

第二标示生成单元702,被配置为根据预设的表单分流路由规则生成所述路由标示部分。

组合生成单元703,被配置为依据所述唯一标示部分及所述路由标示部分组合生成所述表单的标示符。

该装置通过利用应用的关联参数、表单分流路由规则及表单的序列号来生成表单的唯一标示符,使得应用业务层可以感知并利用这些信息进行表单分流,尤其可以利用标示符中的路由标示部分来依据预定的表单分流路由规则进行表单分流。该生成表单唯一标示符的装置除了可以满足技术层面的全局ID唯一性外,还便于应用业务层在分库分表环境下的利用表单标示符中包含的路由信息进行表单分流操作,为分布式环境下大规模的海量数据的分库分表的拆分提供良好的扩展性和路由规则。

在另一实施例中,第二标示生成单元702,可以被配置为根据预设的表单分库路由规则生成分库标示位;还可以被配置为根据预设的表单分表路由规则生成分表标示位。

第二标示生成单元702,具体可以被配置为在用户标示符中选取特征位作为所述路由标示部分。

其中,分库标示位及所述分表标示位均至少包括2位字符,所述序列号至少包括8位字符。

另一实施例中,第一标示生成单元701可以被配置为根据所述表单所对应的应用的关联参数生成第一标示部分,及根据所述表单的生成序列生成所述表单的序列号。可以进一步包括:

第一生成子单元,被配置为根据所述应用服务的日期生成日期标示位。

第二生成子单元,被配置为根据所述应用的启动参数生成数据版本位、系统版本位、系统标示位和业务标示位。

第三生成子单元,被配置为根据所述表单的生成序列生成所述表单的序列号。

其中,第一生成子单元和第二生成子单元生成的日期标示位、数据版本位、系统版本位、系统标示位和业务标示位作为前述第一标示部分。第三生成子单元生成表单的序列号。

参照图8,示出了本申请一种表单分流装置实施例的结构框图,具体可以包括如下单元:

接收单元801,被配置为接收网关分流的表单。

获取单元802,被配置为获取所述表单的标示符。

读取单元803,被配置为读取所述表单标示符中的路由标示部分。

分流单元804,被配置为根据所述表单的所述路由标示部分对所述表单进行分流。

该装置在分库分表的环境下,通过利用表单标示符中包含的路由信息可以很容易地进行表单的分库分表且迁移成本小,为整个的业务的数据架构层带来非常良好的基础,业务数据的落地具备也可以有很好的扩展性。

在另一实施例中,如图9所示,分流单元804可以进一步包括:

分库子单元901,被配置为根据所述路由标示部分包含的分库标示位,将所述表单分流到与所述分库标示位对应的数据库中。

分表子单元902,被配置为根据所述路由标示部分包含的分表标示位,将所述表单分流到所述数据库中与所述分表标示位对应的表集合中。

本申请实施例还提供了一种服务器,包括存储器和处理器。

处理器与存储器通过总线相互连接;总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。

其中,存储器用于存储一段程序,具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

处理器用于读取存储器中的程序代码,执行以下步骤:

生成唯一标示部分及路由标示部分,其中包括:根据预设的表单分流路由规则生成所述路由标示部分;

依据所述唯一标示部分及所述路由标示部分组合生成所述表单的标示符。

本申请实施例还提供了一种服务器,包括存储器、收发器和处理器。

处理器与存储器、收发器通过总线相互连接;总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。

其中,存储器用于存储一段程序,具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

收发器用于接收网关分流的表单。

处理器用于读取存储器中的程序代码,执行以下步骤:

获取所述表单的标示符;

读取所述表单标示符中的路由标示部分;

根据所述表单的所述路由标示部分对所述表单进行分流。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种表单标示符生成方法、一种表单分流方法、一种表单标示符生成装置和一种表单分流装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1