一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库ID生成方法、电子设备及存储介质与流程

2022-09-15 03:24:25 来源:中国专利 TAG:

数据库id生成方法、电子设备及存储介质
技术领域
1.本技术涉及计算机技术领域,具体而言,涉及一种网数据库id生成方法、电子设备及存储介质。


背景技术:

2.数据库id生成是软件研发中常见的一个问题,现有技术中存在很多的解决方案,比如:1、采用数据库自增、sequence等方式;2、采用redis自增等分布式组件生成的方式;3、采用雪花算法等应用生成的算法。然而,每种方案都存在一定的问题,其中,采用数据库自增的方式,性能比较差,随着业务的发展比较容易达到瓶颈,并且扩容对应用不透明,应用改造较大;而使用redis自增的方式,性能提升了一个数量级,但依然存在单点瓶颈,架构本质上依然没有彻底改变;采用雪花算法等应用侧的分布式算法解决了性能的问题、但是生成的id的长度上、格式、连续性上都不自由,在非常多的业务场景中都不实用,比如,业务中需要一个id,格式为总长度为12位、第1位是字符位、第2~7位是日期位且格式为mmddhhss、第8~9是主机节点号码、第10~12是连续数,该雪花算法等应用侧的分布式算无法实现这些要求。
3.综上所述,以上几种数据库id生成方法存在当部署节点数量发生变化、或者秒交易量超过1000,就需要对应用代码进行梳理、改造、重新部署,而另一方面在微服务架构中,节点数量、并发量等等都是经常发生变化,从而以上需要应用硬编码的解决方案需要频繁修改,每次都要梳理、改造、发布,笨重而不可靠。


技术实现要素:

4.本技术实施例的目的在于提供一种数据库id生成方法、电子设备及存储介质,用于生成数据库的id,本技术实施例的数据库id生成方法、电子设备及存储介质能够使得数据库id过程与分布式框架的应用架构和运维架构隔离,从而实现当微服务架构中的节点数量、并发量等情况发生变化时,减少对应用代码的改动。
5.为此,本技术第一方面公开一种数据库id生成方法,所述方法应用于分布式架构中的客户端,所述方法包括:
6.向所述分布式架构中的服务端发送针对目标数据库的id生成请求,以使得所述服务端根据所述id生成请求生成目标数字序列号并向所述客户端返回所述目标数字序列号;
7.解析所述目标数字序列号并得到目标id生成模板中每一个配置项的配置信息;
8.根据所述目标id生成模板中每一个配置项的配置信息生成目标数据库id。
9.在本技术第一方面的上述实现过程中,由于目标数据库id能够从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
10.在本技术实施例中,作为一种可选的实施方式,在所述分布式架构中的服务端发送针对目标数据库的id生成请求之前,所述方法还包括:
11.向所述服务端发送模板获取请求,以使得所述服务端根据所述模板获取请求匹配所述目标id生成模板;
12.接收所述服务端发送的所述目标id生成模板。
13.在本技术实施例中,作为一种可选的实施方式,所述目标id生成模板中的若干所述配置项呈分段设置。
14.在本技术实施例中,作为一种可选的实施方式,所述解析所述目标数字序列号并得到目标id生成模板中每一个配置项的配置信息,包括:
15.根据所述目标数字序列号确定所述目标id生成模板中每一个所述配置项的配置生成器;
16.根据所述配置生成器确定目标id生成模板中每一个所述配置项的配置信息。
17.本技术第二方面公开一种数据库id生成方法,所述方法应用于分布式架构中的服务端,所述方法包括:
18.接收所述分布式架构中的客户端发送的针对目标数据库的id生成请求;
19.根据所述id生成请求生成目标数字序列号并向所述客户端返回所述目标数字序列号,以使得所述客户端解析所述目标数字序列号并得到目标id生成模板中每一个配置项的配置信息,和根据所述目标id生成模板中每一个配置项的配置信息生成目标数据库id。
20.在本技术第一方面的上述实现过程中,由于目标数据库id能够从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
21.在本技术第二方面中,作为一种可选的实施方式,在所述接收所述分布式架构中的客户端发送的针对目标数据库的id生成请求之前,所述方法还包括:
22.接收所述客户端发送的模板获取请求;
23.根据所述模板获取请求匹配所述目标id生成模板;
24.向所述客户端发送的所述目标id生成模板。
25.在本技术第二方面中,作为一种可选的实施方式,在所述接收所述客户端发送的模板获取请求之前,所述方法还包括:
26.接收模板设置命令;
27.基于所述模板设置命令生成若干个生成模板,所述生成模板包括所述目标id生成模板。
28.在本技术第二方面中,作为一种可选的实施方式于,所述目标id生成模板中的若干所述配置项呈分段设置。
29.本技术第三方面公开一种电子设备,所述设备包括:
30.存储有可执行程序代码的存储器;
31.与所述存储器耦合的处理器;
32.所述处理器调用所述存储器中存储的所述可执行程序代码,执行本技术第一方面
和第二方面的数据库id生成方法。
33.本技术实施例的电子设备通过执行数据库id生成方法,能够实现从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
34.本技术第四方面公开一种存储介质,所述存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本技术第一方面和第二方面的数据库id生成方法。
35.本技术实施例的存储介质通过执行数据库id生成方法,能够实现从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
附图说明
36.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
37.图1是本技术实施例一公开的一种数据库id生成方法的流程示意图;
38.图2是本技术实施例二公开的一种数据库id生成方法的流程示意图;
39.图3是本技术实施例三公开的一种数据库id生成装置的结构示意图;
40.图4是本技术实施例四公开的一种数据库id生成装置的结构示意图;
41.图5是本技术实施例四公开的一种电子设备的结构示意图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
43.实施例一
44.请参阅图1,图1是本技术实施例公开的一种数据库id生成方法的流程示意图,其中,本技术实施例的方法应用于分布式架构中的客户端。如图1所示,本技术实施例的方法包括以下步骤:
45.101、向分布式架构中的服务端发送针对目标数据库的id生成请求,以使得服务端根据id生成请求生成目标数字序列号并向客户端返回目标数字序列号;
46.102、解析目标数字序列号并得到目标id生成模板中每一个配置项的配置信息;
47.103、根据目标id生成模板中每一个配置项的配置信息生成目标数据库id。
48.在本技术实施例中,本技术实施例的分布式架构可以是微服务架构,微服务架构的微服务是细粒度的独立的服务,这些服务都是独立部署的,服务是独立开发测试变更,且这些服务都有自己的数据。进一步地,该微服务架构包括应用架构和运维架构、平台端,具体地,应用架构用于向其使用者提供多个应用及使得多个应用以预设的结构进行工作,例
如,根据企业的自身要求可以将应用架构分为基础功能层、业务层等,进一步地,平台端是用于控制应用架构和运维架构的控制终端,例如,通过平台端可以设置微服务的部署参数、微服务的运维方式。进一步地,运维架构是一种用于实现系统运维功能的软件设计结构。
49.由于微服务架构中每个微服务都需要使用到数据,因此微服务架构会为每个微服务分配一个数据库,进而在微服务工作过程中,通过特定的数据库id访问,其中,每当微服务结构中的新增一个微服务时,需要新增一个id唯一的数据库,使得该数据库与新增的微服务关联,具体地,在本技术实施例中,通过向分布式架构中的服务端发送针对目标数据库的id生成请求,能够使得服务端根据id生成请求生成目标数字序列号并向客户端返回目标数字序列号,进而客户端通过解析目标数字序列号,能够得到目标id生成模板中每一个配置项的配置信息,最终能够根据目标id生成模板中每一个配置项的配置信息生成目标数据库id。
50.在本技术实施例中的上述实现过程中,由于目标数据库id能够从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
51.在本技术实施例,示例性地,假设微服务框架中,新增了一个微服务,此时,需要为该微服务新增一个数据库id,该数据库id指向唯一的数据库,此时,能够从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,相比而言,现有技术则是依赖微服务框架中的数据库或算法增加,在这一过程中,如果微服务框架中的数据库或算法增加的数据库id不是开发人员所需要的格式,则需要对实现数据库id的相关代码进行修改,从而增加了工作量。
52.在本技术实施例中,目标数字序列号具有唯一性,进而能够使得客户端生成的目标数据库的id具有唯一性。
53.在本技术实施例中,可选地,目标数字序列号的具体生成方式为:
54.获取唯一标识码、模板编号、随机号码;
55.根据唯一标识码、模板编号、随机号码生成目标数字序列号。
56.在上述可选的实施方式中,唯一标识码能够使得目标数字序列号具有唯一性,模板编号能够使得客户端基于目标数字序列号确定需要使用何种目标id生成模板中,进一步地,随机号码能够增加目标数字序列号的表示范围。需要说明的是,目标数字序列号可以在客户端生成,也可以在服务端生成,当目标数字序列号在客户端生成时,客户端可将目标数字序列号发送给服务端,当目标数字序列号在服务端生成时,客户端能够在通过代理模式访问服务端的id生成服务,从而是的服务端返回目标数字序列号。
57.在上述可选的实施方式中,唯一标识码可以在客户端生成,也可以在服务端生成,当唯一标识码在客户端生成时,客户端可将目标数字序列号发送给服务端。
58.在本技术实施例中,作为一种可选的实施方式,在步骤101:分布式架构中的服务端发送针对目标数据库的id生成请求之前,本技术实施例的方法还包括以下步骤:
59.向服务端发送模板获取请求,以使得服务端根据模板获取请求匹配目标id生成模板;
60.接收服务端发送的目标id生成模板。
61.在本可选的实施方式,通过向服务端发送模板获取请求,客户端能够获取到服务端根据模板获取请求匹配目标id生成模板。
62.在本技术实施例中,作为一种可选的实施方式,目标id生成模板中的若干配置项呈分段设置。
63.在本可选的实施方式中,目标id生成模板有多个配置项,通过目标id生成模板的多个配置项,能够生成指定格式的数据库id,例如,目标id生成模板可以是“smmddmmsshh####”,其中,分段表示目标id生成模板的配置项则为:s:requestrender、mmddmmss:daterender、hh:hostrender、
64.####:reidsrender,其中,requestrender、daterender、hostrender、reidsrender均表示每项配置项的配置信息的生成器,其用于生成配置信息。
65.在本技术实施例中,可选地,配置项的配置信息的生成器可由安装在客户端的sdk(software development kit,软件开发工具包)实现。
66.在本技术实施例中,作为一种可选的实施方式,步骤102:解析目标数字序列号并得到目标id生成模板中每一个配置项的配置信息,包括以下子步骤:
67.根据目标数字序列号确定目标id生成模板中每一个配置项的配置生成器;
68.根据配置生成器确定目标id生成模板中每一个配置项的配置信息。
69.在本可选的实施方式,可选地,根据目标数字序列号确定目标id生成模板中每一个配置项的配置生成器,包括:
70.识别目标数字序列中的模板编号;
71.根据模板编号确定目标id生成模板中每一个配置项的配置生成器。
72.本可选的实施方式通过目标数字序列号能够确定目标id生成模板中每一个配置项的配置生成器,进而能够根据配置生成器确定目标id生成模板中每一个配置项的配置信息。
73.实施例二
74.请参阅图2,图2是本技术实施例公开的一种数据库id生成方法的流程示意图,其中,本技术实施例的方法应用于分布式架构中的服务端。如图2所示,本技术实施例的方法包括以下步骤:
75.201、接收分布式架构中的客户端发送的针对目标数据库的id生成请求;
76.202、根据id生成请求生成目标数字序列号并向客户端返回目标数字序列号,以使得客户端解析目标数字序列号并得到目标id生成模板中每一个配置项的配置信息,和根据目标id生成模板中每一个配置项的配置信息生成目标数据库id。
77.在本技术实施例中的上述实现过程中,由于目标数据库id能够从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
78.在本技术实施例中,作为一种可选的实施方式,在步骤201:接收分布式架构中的客户端发送的针对目标数据库的id生成请求之前,本技术实施例的方法还包括以下:
79.接收客户端发送的模板获取请求;
80.根据模板获取请求匹配目标id生成模板;
81.向客户端发送的目标id生成模板。
82.在本可选的实施方式中,服务端通过接收客户端发送的模板获取请求,进而能够根据模板获取请求匹配目标id生成模板,从而能够向客户端发送的目标id生成模板。
83.在本申实施例中,作为一种可选的实施方式,在步骤:接收客户端发送的模板获取请求之前,本技术实施例的方法还包括以下步骤:
84.接收模板设置命令;
85.基于模板设置命令生成若干个生成模板,生成模板包括目标id生成模板。
86.本可选的实施方式通过接收模板设置命令,进而能够基于模板设置命令生成若干个生成模板。
87.在本可选的实施方式中,模板设置命令可以是设置模板中有何种配置项的指令,例如,可设置模板中的“s”配置项,其中,“s”配置项表示id的设置时间。
88.在本技术实施例中,作为一种可选的实施方式于,目标id生成模板中的若干配置项呈分段设置。
89.实施例三
90.请参阅图3,图3是本技术实施例公开的一种数据库id生成装置的结构示意图,其中,本技术实施例的装置应用于分布式架构中的客户端。如图3所示,本技术实施例的方法包括以下功能模块:
91.发送模块301,用于向分布式架构中的服务端发送针对目标数据库的id生成请求,以使得服务端根据id生成请求生成目标数字序列号并向客户端返回目标数字序列号;
92.解析模块302,用于解析目标数字序列号并得到目标id生成模板中每一个配置项的配置信息;
93.第一生成模块303,用于根据目标id生成模板中每一个配置项的配置信息生成目标数据库id。
94.本技术实施例的装置通过执行数据库id生成方法,能够实现从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
95.需要说明的是,关于本技术实施例装置的其他说明,请参阅本技术实施例一的相关说明,本技术实施例对此不作赘述。
96.实施例四
97.请参阅图4,图4是本技术实施例公开的一种数据库id生成装置的结构示意图,其中,本技术实施例的装置应用于分布式架构中的服务端。如图4所示,本技术实施例的方法包括以下功能模块:
98.接收模块401,用于接收分布式架构中的客户端发送的针对目标数据库的id生成请求;
99.第二生成模块402,用于根据id生成请求生成目标数字序列号并向客户端返回目
标数字序列号,以使得客户端解析目标数字序列号并得到目标id生成模板中每一个配置项的配置信息,和根据目标id生成模板中每一个配置项的配置信息生成目标数据库id。
100.本技术实施例的装置通过执行数据库id生成方法,能够实现从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
101.需要说明的是,关于本技术实施例装置的其他说明,请参阅本技术实施例二的相关说明,本技术实施例对此不作赘述。
102.实施例五
103.请参阅图5,图5是本技术实施例公开的一种电子设备的结构示意图。如图5所示,本技术实施例的电子设备包括:
104.存储有可执行程序代码的存储器501;
105.与存储器501耦合的处理器502;
106.处理器502调用存储器501中存储的可执行程序代码,执行本技术实施例一和本技术实施例二的数据库id生成方法。
107.本技术实施例的电子设备通过执行数据库id生成方法,能够实现从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
108.实施例六
109.本技术实施例公开一种存储介质,存储介质存储有计算机指令,计算机指令被调用时,用于执行本技术实施例一和本技术实施例二的数据库id生成方法。
110.本技术实施例的存储介质通过执行数据库id生成方法,能够实现从服务端拿到用于生成目标数据库id的目标id生成模板,并按照目标id生成模板生成目标数据库id,因此不需要将客户端耦合实现目标数据库id生成的代码,从而能够在微服务架构中的节点数量、并发量等情况发生变化而需要改动数据库id时,减少对应用代码的改动或避免对应用代码的改动。
111.需要说明的是,关于本技术实施例的详细说明,请参阅本技术实施例一的详细说明,本技术实施例对此不作赘述。
112.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
113.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多
个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
114.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
115.需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务端,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
116.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
117.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献