00:00
呃,那怎么测试呢?这两个注意我不关啊,然后接下来呢,我们打开这个auto的APP,由于我们之前启动过,而刚才呢又消费了很多历史数据,所以这个数据呢,我不想要了,我不想要了,对吧?我怎么做呢?我直接把这个改成0325,我换一个消费者组可以吧,对吧,我老的数据不想要了,如果说我还用2110325的话,是不是把刚才初始化的那些数据都会再消费一遍啊,数据太多了不好看对吧?好,那我们直接这样,然后呢启动。先还不往这去写啊,先还不往这写。然后呢,我们等这边多等一会儿啊,多等一会儿,然后呢,我们去造数据,我们打开这个东西啊,去准备造数据,OBD Mo叫G末link,然后呢是RT,呃,DB。
01:07
然后呢,Java这这这末20MO对吧,好,那我们等这边啊呃,那么这边呢,没有报错对吧,它都启动了这么长时间了,也应该够了啊,然后接下来我们造数据。还是一样的,我们只要看订单明细表有多少条数据,就知道数据丢没丢,然后我们看首先第一确认数据丢没丢,第二看一下这个用户维度是否都关联上了,对吧?呃,这边做完了,做完之后呢,我们先这个都先关掉啊,这个是刚才我们看的一个数据的对吧。这就没用了啊,包括这这个表,嗯,先放这吧,然后接下来呢,我们看这个数据,应该看这个订单明细。订单明细当中注意有54条数据。对吧,54条好,那接下来呢,诶这边挂掉了是吧,我看一下啊。
02:01
呃,这个是all。外的。这个是我们54条,这个是应该是双流join啊,我看一下这边为什么挂掉,So close是这个地方。稍等一下,我看一下。这个地方啊,这个地方我们说了,最好还是还是把它写下来啊。还是把它写下。对,昨天说了,这边单次使用是没有问题的啊,单次使用啊,因为有可能被其他人,因为我们现在是多线程,多线程操作了啊,那你还了之后在这块我告诉大家是什么问题啊,呃,昨天我们测试的时候,单线程是不是没有问题,现在我们是多线程了,多线程会存在什么问题呢?比方说刚才的代码是这样子的来。刚刚来代码是这样子的啊,昨天我们测试这种情况是不是没有问题,大家还记得吧,他也成功了,对吧,没有问题,为什么今天就有问题了呢?因为现在今天我们是多线程,那多线程为什么有问题呢?大家看啊。
03:08
你是不是归还链接,然后你还拿着它操作,现在你还回去了。A线程拿到这个,然后还回去了,B线程是不是又把这个连把这个同样的一个对象取出来了,那你俩是不是同时拿着同一个客户端在操作了。是不是相当于两个人拿着同一个客户端在操作呀。是不是,所以他这边就有问题了,能理解这个问题吗?我昨天在群里说的,说最好改一下,但是我自己没改,对吧?要报错了,能明白这个问题吗?就是这个close啊,这个close注意如果用了池子我们点开啊,我们看一下这个源码对吧?大家看啊,如果说当前的data source,这个池子不等于空,不等于空的时候,它干什么事呢?它只是返回,他把这个资源返回到池子里边,就还给池子里边,如果不是用的。
04:04
连接池那直接就close掉了,直接就close掉了,看见没对吧,所以刚才的现象是怎么发生的,因为A线程现在我们是多线程嘛,对吧,A线程拿到这个连接好,然后呢,把A线程呢还到池子里边了,在这儿,但是A线程还能够用这个连接,对吧?呃,B线程来了,也把这个连接拿到了,那导致他俩同时操作。他俩拿到同一个连接同时操作对吧,两个线程那有问题,因为RA里边是多线程操作的时候有问题啊,所以这个地方我把它考成X给它干什么,拿到这来就好了,这要注意一下,昨天让大家改的对吧?好,那我们重新启动一下啊。这边都超时了,因为获取不到了嘛,对吧,因为获取不到了啊,这边全部超时了,所以呢,这边我们改好之后呢,我们重启一下。刚才那个只有池总听懂了吗?其他同学呢,给我一点反馈好吗?
05:11
这块应该没问题吧,对吧。好,那我们重新启动了啊,重新启动了。那接下来呢,我们再去造一批数据来看一下。走,你。好,那我们现在确认一下这张表多少张数据刷新?哎,还是54吗?这么巧吗?两次都是54。奥低调注意,我刷新了这张表。他应该写进来了两次都是54啊,那就刚好54呗,呃,那我们看一下这边原始数据双流转移之后的数据。
06:00
54条对吧,好,关联后的稍等一下开辟连接池再查询在查询数据对吧?诶这么慢吗。我看一下我有打印吧,这边。这边out wide use的第下print就到它啊,所以个打印,然后启动我们看一下,哎,这边应该又超时嘞。我感觉应该又超时了,是我们哪块写的有问题嘛,稍等我们排查一下啊,那这个还比较麻烦对吧,他应该又是超时,等60秒之后,它应该都是out。你看果然是对吧,他报的也就是他的用户信息并没有关联上。诶关联上了呀,F不在这儿吗。U的AGE33,那这个地方为什么会超时呢?说我们时间给的不够吗?看啊,所有的信息,用户信息关联上了吗?
07:01
对吧。关联上了,哦对了,我傻了,这个地方有一个东西啊,少了一步,什么步骤呢?来来来来,到到最后差了一步,看啊,我我们只是做了关联,还有一步什么。这一步将数据输出没写没写出去对吧,所以他都超时了,而超时数据我们看到数据都怎么样,关联上了,少一步啊对直接写那个接口,写那个接口写忘了啊,这边我们也写一下这个怎么返回呢?就用它就好了。点completed啊就完成,完成之后呢,这地方要一个connection,那我们可以用connection.think list对吧,然后把这个input啊,把我们数据写回去啊对这个数据没输出,没输出他可不走,这个超时了,对吧,所有数据全部超时了没有没有没有等待到输出结果嘛,对吧?啊一波三折啊一波三折对吧。
08:02
啊,因为我就觉得这个很奇怪,明明数据关联上了,然后报超时,那就很奇怪,一般如果我看到超时,往往这是到那就才真正的超时,你要排查啊,好,我们重新启动一下,再来一次啊。一波三折,你看。比如说写着写着啊,然后那块大家说学废了学废了啊,然后把自己废了是吧。啊,但是这个还有关系不大啊,一看到这个点就发现这个问题了啊,因为我觉得很奇怪,这个地方明明关联上了,他还不好超时啊,说明应该不是真正的超时,应该是最后一步数据没写出去啊。但如果大家找这个问题就比较难找了,是不是?这就是经验啊,所以为什么工作人家找工作要有工作经验。对吧。你们想不到,对嗯,确实啊,这个你们肯定想不到,因为没没写过这种东西嘛,好这边呢,完成了,我们先看一下刷新。
09:05
这一次51条数据了啊,51条数据好,这边我们看一下直接就有了,看啊这是关联后的,看此时没有等那么久吧,呃,我们的性别有了。这个这个也有了,然后先看原始数据中之后的数据啊,CTRLCCTRLF 51条没有问题,然后接下来看我们关联好以后的数据,CTRLCCTRLF,注意看也是51条对吧,那这个时候就搞定了,而且你可以检查啊,检查你挑几条数据检查一下,比方说这对吧,好,再往上翻,我随便翻啊,我就这一条吧。这一条里边我看一下在这对吧,年龄和性别都有了,那这个就搞定对吧,这个就搞定了啊。
我来说两句