00:00
上堂课呢,我们讲到了分布式序列算法当中的雪花算法,那么这节课呢,我们会基于sheding fair JD bc的全局序列配置配置一个雪花算法,那么它是如何配置的呢?我们找到。数据分片,在数据分片当中呢,我们找key哈。那这块呢,就是分布式序列策略的配置的一个相关的配置项了,我们把它复制过来。复制到我们的配置文件中。好。我们给他做一个注释。这块呢,就是。分布式序列配置。那这个分成两部分,一个呢是分布式序列的名称。还有一个呢,是分布式序列的算法名称。那它的算法名称呢,会指向一个具体的算法配置,那所以它的算法呢,是在这配置的。这是它相关的算法配置。
01:03
好,现在呢,我们依次来配一下。算法类型还有。属性配置。首先呢,我们来看一下分布式序列的列名称,我们呢打算配给ID,那么哪一个具体表的ID呢?这块呢,要写一个逻辑表的名字,就是t order,好,下面也是一样的。这个位置呢,我们要配置的是key generator,就是序列生成器的一个名字,那么序列生成器的名字呢,我们是在这个地方配置的。那现在呢,我们找一下我们序列生成器具体的这个算法类型。那这块呢,是分布式序列的算法,具体呢,是在。第五章。内置算法这个地方找到的,那这里面上堂课我们讲到了,我们会用这个雪花算法snowflake。
02:06
我们把snowfleke呢放在这个位置,然后接下来呢,我们给它起个名字,那这个名字也是我们自己起的,比如说我们就叫al LG snowlike。那同样这个地方我们也可以起一个名字,但是实际上。它这个属性呢,是如果我们使用这个算法生成值作为分片值的话,那么就配这个属性,那现在呢,我们ID呢,并不是分片值,因为我们的分片值呢,有两个,一个呢是order number,一个是UID,所以呢,它不是分片值的话呢,那么这个属性呢,其实我们可以不配置。那在当前的这种情况下,我们不配置这个属性。然后这个snowflake呢,就是我们的分布式序列算法的名字了,那么我们把这个名字呢,要配置在这个位置,这样的话呢,针对t order表的ID这样的一个主,我们呢,就给它配置了一个雪花算法,那么这个雪花算法具体的算法类型呢,就叫snowflake。
03:08
这样的话呢,我们就通过she fair gd bc呢,配置了我们的分布式序列。那这个分布式序列呢,和我们之前在order实体类当中配置的SID呢,实际上是冲突的,而且呢,这个SD呢,它的优先级会比较高啊,那所以呢,如果我们这边有这配置的话,它会使用买贝斯plus里面的分布式ID生成器,那么虽然他们两个都是分布式ID生成器啊,都是学画算法,但是呢,这面呢,它使用的就不是我们she fair当中的分布式ID了。但是屏蔽掉也不行,为什么?因为这是默认值,默认值呢就意味着你不配置它,默认就会使用这个3ID,而刚才我们提到了这个优先级呢是比较高的,所以呢我们就需要把这个ID type auto two放开,那么这个auto two呢,它在不同的场景下呢,它实际上呢就有不同的作用了,所以呢这块就是当当配置了沙丁sphere接DBC的分布式序列时,自动使用Sha fair jdbc的分布式序列,当没有配置shading fair JD bc的分布式序列时,自动依赖数据库的主键自增策略。
04:38
所以说这个呢,就是ID type等于凹two这个值的意义,那么再强调一下,如果我们没有去整合shading fair j bc的话,这个ID type等于auto two呢,它就完全是依赖数据库的主件自增策略的,但是呢,现在我们有了shading fair gd bc,我们将买be plus和shading gd b做了整合,所以说在这种情况下呢,如果我们想让GDB的分布式序列的配置成功,那么在当前的这个实题类当中,我们也需要在这个位置呢,给它添加ID type等于two,那么如果不配置的话呢,它会默认使用SID这个分布式序列,因为这是它的默认值,并且它的先呢要比B中的分布式序列呢要。
05:25
所以说这个是我们整合买be plus和尔GC在一起的时候,大家需要注意的一个点,好那么接下来呢,我们来做一个测试。我们打开测试类。Shading test,那么还是之前的这个测试方法,我呢事先已经把数据库当中之前生成的所有的数据呢,都给它删掉了,好,那接下来呢,我们执行这个方法。
06:06
那现在呢,已经成功了,那么你会发现呢,像这种ID呢,就是she fair给我们生成的分布式序列了,好,我们来看一下数据库。这是shading fair的分布式序列。好,这也是。啊,这是she的分布式序列。那这个也是这样的话呢,按照我们之前的分辨策略呢,我们的分布式序列呢,就生成了。
我来说两句