00:00
大家好啊,咱们继续编写这个代码,刚才呢,咱是完成了实体类,包括map这些创建,然后这些都做到之后呢,咱下面要干什么呢?就开始来配置一下,筛定这DC中那个分片的策略,比如说我们要对哪个数据库,包括哪些表做操作,包括咱操作过程中按照什么规则来做这个数据的添加或者查询这个过程,所以咱们来做第四部分。给各位写一下,就配置一下这个筛顶GDBC。我把这个先写完,然后咱们最终做个配置。筛定JDBC里边这个分片的这么一个策略,也就是刚才我一直提到的,你对哪个数据库操作,包括对哪个表进行操作,对这个表怎么进行操作,这个叫分开策略,那怎么配置呢?做法就是咱们在我们这个项目的这个application。
01:02
D的这个配置文件中进行配置。在项目的这个配置文件中。进行。这么一个配置,那怎么配置,我们来看一下啊,这个配置这些代码不需要各位记,因为在它的官网上全都有,那我们现在打开它的官网,就这个,我们就之前看到啊叫she顶SP这个阿尔帕奇UD,然后在里边点了解更多到咱这个界面,在里边呢,有它里面的相关产品,然后咱们找到叫Sha j bc,大家打开下面这个地方叫用户手册,里边有第一个叫Sha d bc,这位置有一个叫配置手册,有它的详细配置。因为咱们现在用这个CHBJBC,我们是基于使boot整合的,包括实际中这种方式也最简单最方便,所以咱们看这个全部的这个配置,在这里边有关于筛顶这BC里边这个分片策略的计换配置代码,然后把这个给各位截个图,咱就找到筛顶ADBC。
02:13
里边这个配置手册中的这个地方叫损部的位置,通过这个位置就能找到他纤维那种,所以我说不需要各位去记,你到官网上都能找到,那我现在把它打开损部的配置大家看啊,里边第一部分就是数据分片,是它的配置示例。然后咱们看里边就是有这段配置,那这配置什么意思呢?咱们结合我们的实际,咱们把我们真正对我们有用的那种直接拿到咱的配偶件中,那咱来一个来看一下啊,首先我们看里边第一行是我们需要的这一行什么呢?你看这写法啊,前面是固定的,也就是说这个写法中你等号左边的是固定的等号又要根据实际可以改,而咱看第一行代码。
03:01
它叫spring she SP it source name什么意思?就表示给你数据源起个名字,这名字可以随便起,包括这位,你看有两个数据源,一个叫DS0,一个叫DS1,然后针对DS0有它相关配置,根据DS1有相配置,包括你的连接池、驱动名字,数据库地址,用密码,这个是我们需要的,因为咱们现在还没有做到,分库是一个分表,这些咱需要一个数据源就可以了,这是我们要做的第一部分。然后把这一句话直接复制到我们的配置文件中,根据他赶快的改一下,各位自己写的话,也可以到他官网上根据他的事例把这改出来,因为他事例中写的很明确,包括各种场景里边都有。那咱们把这个复制过来,咱们拿到我们的配置文件中,我把这些没用的先删掉,等于把这个打开。然后咱们看啊里边这就是第一部分,而第一部分什么意思,给各位几个注释,就是我们现在要做的事情就是配置这个设定JDBC这个分片策略。
04:11
它的分片策略。然后在策略中里边的第一部分,就先要配置它这个数据源,比如给数据源起个名字,比如这个名字可以随便起,假如我们改个名字,我就叫这个M。一啊,或者你叫别的,比如叫W1,什么Q1,什么Q2,什么Q1都可以直接给他起个名字就可以了,这是里边的第一部分,配置数据源,给数据源起个名字。或者说起一个这个别名。这是第一部分,然后这个做到之后咱往下看,下面就这部分就是配置你这个数据源的驱动连接池,包括地址,包括用密码把这个咱需要给它配置上,这是我们的第二部分,那我现在把这段话咱直接复制过来,然后用它快速改成我们这个相关代码。
05:09
那咱拿过来啊,这写法是比较固定的,然后根据我们的实际改成我们的最终效果,这个我写一下第二部分。叫这位置,它就是配置里的数据源的那个具体的内容,包含它那个连接池驱动。数据库的地址,用户名和密码,主要配置这些,那我现在把这拿过来,然后大家给他改一下啊,注意怎么改,各位注意啊,在它的实例中呢,这叫DS0,因为它起的名叫DS0,我们是不是叫M1啊,所以我们现在做法就是第一部分你把DS0先变成M1啊,这都换成我们当前这个,当然你可以还写DS0啊,都一样的啊,换成我们这个名字M1。
06:01
现在就是为M1配置里边这个。第一个咱看啊叫type,就是连接池,连接池呢,它里面用的这个叫base so,它是一个叫DBCP连接池,咱现在换成德入一连接池,因为得入一咱们在依赖中引入过依赖,那我把连接池的路径咱直接快速写一下啊,这些路径其实各位不需要D,但是D的话也很简单,就是com点阿里巴巴。点上这个德鲁伊,点上这个破。然后里边有一个DO1那个data source啊,就是这个叫。Didd data source,这就是DOE路径啊,这要各位最好记住,因为并不复杂,然后第二部分呢,加上你的数据库驱动的地址,这地址各位注意啊,在它实例中这个地址,但因为咱们现在用的是SBOO的2.20版本,所以2.2版本的SBOO它要用到my circleql默认的八的版本,而my sol默认八,你用这个驱动会有问题,咱需要把驱动名字改一下。
07:03
加这个叫CD,这是针对那个。买SQ8的驱动,然后下面是你数据库的这个就是相关地址,那数据库咱看一下,我这个数据库叫这个cos DB,我现在啊把这个啊,咱给他拿过来,然后给它就是写下啊cos DB。那我来在这个位置改一下。Cos DB,但是因为我们现在用的是这个叫my circlel8,所以买S8你在写地址的时候,后面需要加上一个参数,什么参数呢?就是你当前的时区,要不然它里边会有问题。那我加上啊,这持续怎么加,后面有个单词叫serve time z。Server。Time。Co等于十区,因为大家知道咱中国属于是东八区,所以来一个GMT后面加个转字符,就这个百分号。
08:08
2B,然后加个八,这就表示东八区DMT是区百分号,2B是一个转移符号,然后这个八代表咱们的当前的时区,这个跟之前有点区别,各位注意啊,因为这个2.2用的是MYSQL8的版本,你需要加上CD这个驱动,然后加个时区serve time z把这加上。然后最后是用密码,因为我这都是root,各位写的时候写成你那个用密码,这是它的第二部分配置数据源的具体内容,咱们把它就做到了,然后这个做到之后,咱下面继续往下配置。咱看下面怎么配置,还是找到它的示例中,大家找到数据源给咱做到,因为咱就有一个下面做的就是里边的这个部分,这一部分是什么呢?给各位强调啊,它就是定你当前第一个你表在什么位置,然后第二部分指定你这个表,它里边那个相关的节点,以及它里边相关的策略,就这些做这事情我再重复一遍,它主要做的具体说是这么几个事情,第一个就是你表在什么地方分布,然后表有哪些,因为咱的表是都在这个cos DB中,咱有两个,一个是COS1,一个是COS2,然后第二部分是你表示这个策略,比如现在咱是偶数,那就放到这个一里边,基数放到二里边,包括你可以设置你当前这个主键按照什么规则生成,比如咱是根据你是自动增长还是什么其他规则生成这个主键值,这里边是它的一些基本配置,而这些都写。
09:48
到了,那我现在把这部分给各位复制过来啊,咱们看里边的特点啊。首先我们先看第一部分,就是里边的这个配置,我把这个先拿过来,然后这配置中的这是什么意思呢?给大家强调,它就表示你指令下,你当一这个表它的一个分布的情况,或者说这个表在哪个数据库中,然后表分别都是什么表,这个啊,咱把它需要做设置,然后把这个给各位拿过来。
10:18
我写一下。它这里边配置就是指定一下你当前这个表,就是我们这这cos这个表。啊,Cos这个表的一个分布的这么一个情况。比如说咱们这个表啊,你要配置。你这个表它在哪个数据库里边,然后表的名称。它都是什么,主要是做这个事情,然后咱看一下啊,里边就这配置叫spring shading SP shading tables是表后面注意啊,这位置注意加什么,加你那个表的那个规则,什么叫表规则的,大家注意啊,我们的表是不是都是以cos开头的,咱们叫cos下线一,Cos下线二,咱们前面的是不是都叫cos,所以里边我加个规则,这规则改个名字我们就叫cos。
11:19
这个位注意啊,是你表那个规则,然后后面这个都是固定的,在最后这位置,咱是用到这种表达式,这表达式上面写到它叫什么叫行表达式,可以标志你里边相关内容,那表达式咱改一下啊,它的是一种表达式DS数据库,因为它数据库做了这个相关的这个。就是分库的操处理,但是咱现在没做分库,所以数据库部分呢,我们就直接写一个叫M1,它就表示你是在M1里边的表,然后咱的表按照这种规则,因为我们的表都是以这个cos开头,那我来一个cos。就是这个Co SE下划线加上这么一个东西叫。
12:05
到了符号这个。右箭头后面加上你表的那个具体值,因为咱的表是这个一,还有这个二。这样的话就设置了你这个表的一个分布情况,包括你在哪个数据库,还有表的具体名称是什么,这个我们就做到了啊,然后这个咱来看一遍啊,它的做法就是第一个地方你的表的规则,因为咱是cos下限一,Cos下限二再加上一个规则,然后第二部分在哪个数据库中。因为咱们目前没有做分库,就是一个M1,所以里边M一点表示在M1里面内容,咱的表两个表,一个是COS1,一个是COS2,所以在里边加了cos下颚线,这个到了符号右箭头是一种表达式,它表示你表里边两个名字,一个是一,一个是二,就是你表的一个分布情况啊,因为咱的表要写的话,应该是这种情况叫M一点。
13:05
COS1,然后写一个一点,这个叫COS2,咱是这种情况,而现在在这里边,它用这个表达式把这情况给咱们表示出来了啊,就这么一个特点,而表达式在这里它叫做行表达式标识符,就用这种形式把这做到,就中间加三个点,也是第一个第二个啊,包括这个点用它做到啊,啊两个点啊用这个实现。这是我们完成的这么一个这个内容啊,就完成了你这个规则,然后这个做到之后,咱下面继续往下配置,那下面配置什么呢?还是看一下它的事例中啊,当然下面有这个,那我们先做这个事,先把这个配置出来,然后再配置上面这个啊顺序无所谓,但是对东西都需要有,然后大家看它。这是什么呢?给大家写一下啊,我直接复制过来。
14:02
就这部分东西,这部分意思是什么呢?它就表示你可以指定一下。写下啊,指定一下你这个表里边就是咱们这个cos这个表。这个表里边。我们这个主键的一个生成的一个策略,比如说咱们最终添加我表中是不是有这个ID值,那ID值按照什么规则给它加进去,比如你是自动增长还是什么规则,这是一种策略,而策略中咱需要改几个地方,第一个同样把你表的规则改一下,因为咱都叫这个。Cos啊,这是我们的规则,就是你表的是以什么开头的,然后后面第一个位置,第二你表中那个主键的名称,因为咱的主键是不是这个赛D下面加上你的策略,这策略叫snow Fla是一种叫雪花算法,它会给你生成一个随机的唯一的一个数字,就一串这么一个数字表示每次都不一样啊,这是我们设置主键的生策略,咱的主键是这个。
15:12
CAD。就把他的策略设置成这个叫snow flag,这是一种算法,叫做雪花算法,会生成一个随机的唯一的一串数字,最终把这生成,啊,这是一个策略,一个这么一个设置,然后这个做到之后,我们这里边还有最后一部分。给大家写一下最后一个是什么呢?就是指定你这个分片的。这么一个。策略,什么叫策略,比如现在我这里边啊,就是我这个表,我约定,如果说你里边这个是偶数,那我们就是。像这个一里边加数据,如果你是基数,是不是像二里面加数据,这个叫分成策略,我写一下啊,比如咱现在约定,如果说我这个CAD的这个值是一个偶数。
16:05
那我们就添加到这个cos。一的这个。标里面去。如果说你CAD是一个奇数,那我们就添加到这个COS2的这个。表里面去,这是我们要做的一个分片的策略,然后这个策略在他的这里边有这个示例啊,就是里边的这个东西,我把这个给各位直接输过来,也是用它。快速改成我们里边这个效果,那咱家给它顺过来啊,这是最后一部分,然后这里边同样咱需要改几个地方,第一个地方都应该很熟悉了,把这个改成我们的规则叫做cos,然后里边第一部分就是你现在要根据哪个值做这判断,因为咱根据主键我们的主见,就这个叫cid。啊,那里边我把这个改成叫cid。
17:02
下面是你到那个表里面,就是比如现在我偶数到哪个表,奇数到哪个表,咱把这个规则改一下,我们的规则叫这个cos。下划线,然后后面咱就可以根据这个CAD,比如做一个对二这个取模的操作,然后最终把这实现,但你注意啊,如果说咱们这么写啊,这会有问题,因为大家看在它的官方示例中,它这个表是不是零和一啊,就是现在第一种方式,我以把我的表改成零,改成一,当偶数向零里边加,奇数向一里面加,但是因为我现在是一和二,所以咱需要把这给它稍微改一下,怎么改呢?注意啊,我在后面再加一个,咱给他来个加一。注意什么意思呢?强调比如现在我这个ID是偶数,那偶数除以二是不是能整除,能整除值是不是就是零了,零加一等于一,所以偶数向里面加数据,如果它不是这个偶数,那就向这个二里面加数据,所以咱给它加上这么一个规则。
18:08
不是,各位师傅是能听懂啊,我再说一遍,如果现在比如说CAD是四,四取模二值是不是零啊,就是能整除零加一是等于一啊,那它会向COS1里边加数据,如果说不是这个规则,那就向这个COS2里边加数据,这就表示设置你的分片策略,但是根据主见完成这个操作。这样的话,我们现在把这个我们就完成了啊,这是一个最终的一个配置,主要就是里边的这么几部分,然后这里边除了这个配置之外呢,在里边还有一个配置,就这配置跟功能无关,它主要为了咱能看到就是这里边circleq的输出日志,那我们找一下,呃,这里边没有,应该在这个位置,就你把这个给它也可以配置进来,能看到你底层输出的circle扣语句是什么样的,那我现在把这个咱也是配置到里边来。
19:05
我就写到。这位置啊,它就表示。查看或者说打开你这个circle的输出的日志。这样的话,我们就完成了里边的这么一个配置,这个咱就做到了啊,所以各位把这个要特别清楚啊,不需要各位记,但是你知道每部分做的什么事情,我最终再给各位快速重批遍。首先第一部分要配置你的数据源,给数据员起个名字,包括配置它的具体的地址,包括它的切换内容,然后里边因为我们是M1嘛,这里都改成M1,包括这是连接池,这是驱动,这是地址,就是用密码,然后因为咱现在默认用的是MYSQL8,所以我们用的是这个驱动加个十驱的地址。这个做完之后,下面设你的表的分布情况,因为咱的表都在M1里边,我的表式COS1COS2,用这个行表达式用它做到,然后做到之后下面设置一下你的主键的生成策略,我们用snow flag会生一个随机的唯一的一串数字,因为咱会看到,然后这做了之后,最后是你的分片策略,因为咱们现在约定偶数向COS1里面加数据,奇数向C2里面加数据,设置你是哪个值,包括什么样的策略,用这个咱用对过二取模把这做到,然后最后一部分打开这个circle的日输出,这样的话我们就完成了这么一个。
20:40
基本的一个配置,这个咱就做到了,然后做到之后我现在把这部分给各位直接复制到我们这个课件中来,就是各位这部分不需要你记,但是要求能通过他的文档,把这个能根据你项目的实际快速改出来这个效果。
21:00
这个啊,我们就完成了,包括大家看刚才我代码过程中,是不是就根据这个官网直接改出来的,各位也能给他快速做到。这个啊,是我们做的里边的一部分啊。然后这个做到之后呢,咱下面做的话,就可以开始写一段代码,然后通过代码方式把这个过程咱最终做个测试,比如咱一会儿可以写一个添加,或者说我写一个查询,咱看添加的过程中能不能实现出我们这个效果,看查询过程中这些数据能不能按照我们的约定进行查询,比如你是ID是偶数,那肯定操作COS1,你查询查偶数肯定也是操作扣一,那咱们马上做个测试,现在咱只是完成里边这个分片策略的一个配置,就是在这个application里边,把这个我们现在给他快速完成了。这个啊,我们先说到这里,然后一会儿咱们通过代码做一个最终的测试。
我来说两句