00:00
好,接下来呢,我们把这个内容做一个测试啊,那测试呢还是一样的,我们先把这个写好,但实际上呢,这个东西啊,跟这个是不一样的。一毛一样对吧,我们想大家想啊,是不是一样的,我直接把这个怎么样挪过来。给它放在这儿,稍微改一个地方就够了,改谁呢?改这个。就改这一个位置就够了,其他都不用动,对吧,整个的数据流加我们要启动的这个进程,就改这一个地方。对吧,好,那我们这个里边呢。也有很多的这个条件对吧,所以呢,咱们还是一样的,先呢手动去做这个测试啊,手动测试,呃,集群当中东西呢,我在这开的,这个是消费者,我改一下啊。我就不消费这个UV这个数据了,来改一下消费咱们的ug啊u jump对吧,Ug这个数据啊,来把它写起来。
01:00
呃,生产者呢,还是他。对吧,还是往配置log里边去发,但是呢,为了跟前面的数据不干扰我呢,重新启动一下。可以吧,啊,为了不干扰啊,跟前面数据没关系,那我们重新启动一下啊,这边呢,我可以回车。然后接下来我来造数据啊,我来造数据啊,那怎么造呢,咱们这样还是一样的,我呢从这里边去。取数据,这是UV的测试数据对吧,好把它拿过来啊,然后呢,拿这个改一改,这个呢是咱们测数据我写在这啊,到时候大家呢,测试的时候也可以拿我这个数据啊,这第一个。对吧,这是第一个咱们的测试数据好,那这个呢,还是上一跳它怎么样,它等于呢。啊,这个呢,肯定不会出来啊,我先把它输进去。这个不管怎么样,肯定不会有结果,对吧,如果有结果可能就会出问题了,对吧,那我们来看这边呢,没有结果。
02:04
啊啊对,我这个没启动对吧,我把这个得启动啊,聊了半天没启动,那白扯对吧。这个都没启动,那肯定不可能有数据啊。UV把它干掉对吧,我把这个启动啊,等一会儿啊,稍微等一会儿。因为还是那个问题,让他完全的启动啊。接下来呢,我在这边把这个数据呢,重新复制一份哈。往这一放对吧,回正好,那我们来看这边呢,并没有数据对吧?好这么说吧,就算你的上一条文档,你只输出一条数据的时候,它也不会有结果。对吧,和更何况你这个数据呢,它不等于的。对吧,好,那接下来呢,第二条数据咱这样玩啊来。我呢,把这个上一跳页面ID,我就不考虑这个事儿了,对吧,我把它干掉。然后呢,把它输进去。
03:03
啊,我把它输进去。注意啊,这个时候它的上一跳为捺。但是呢,他只有自己,他也不会输出,因为我们要输出得满足两个条件,其中一个。要不然呢,连续的两条数据上一条为呢。要不然。超时。对吧,好,那我们先走超时这个逻辑来看啊呃,那我们想它超时我怎么办呢?来注意看啊。超时我们呢,是十秒的窗口,两秒的延迟,对吧?嗯,至少得差距12秒,那我给个13秒可以吧,给个13这个是一对吧?呃,这是91。91还比较麻烦,哎,正好就卡在这个数据399对吧,嗯,加个13是多少呀。
04:01
这个加一个13。嗯,4014对吧。真是391吗?我搞一个4014。啊,然后呢,注意看啊,我不光这样吧,干脆啊咱们这样。我给的更大一点可以吧,给的更大一点啊,然后呢,在这个基础上,我就做一个什么事呢,来注意看我把这个改了。我改成80。大家觉得?有没有数据,或者说这样吧,我先先还是79啊一下测太多大家可能接受不了。啊,可能接受不了啊,那我先还是79,那大家告诉我,我这个数据输进去,它有没有结果输出。
05:02
就是我把这条数据输进去,它有没有结果输出。就是这一条能不能出来。可不可以?可以吧,啊好,那我们输进去啊,CTRLC拿过来,然后呢。输进去。好,这边呢,刚才那个数据注意啊,这个是谁啊391。是吧,3991输出了,而且走的是什么太帽子。是不是走的超时这个流没问题吧,啊,所以我刚才打印的时候呢,我怎么做的,我把正常的流跟超时流我分别打印的,对吧,所以呢他呢走超时流是不是符合预期。符合预期吧,好。那接下来有个问题。我再加个15秒啊,那这个是秒数对吧。这个第四位是秒吧。幺五。啊,因为我们窗口是十秒。
06:04
延迟我给的是两秒对吧,延迟指的是谁啊,指的这个位置啊。咱们帮的out out对吧,我给的是两秒啊,那你至少得间隔12秒啊,那咱们呢,间隔15秒,但是呢,我这个地方改成80。大家告诉我,我把这个输进去,他能不能输出。好,大家呢?统一的说,不能。啊,都是不能是吧。大家学的挺好啊啊,学的可以呀。啊。
07:00
关键的问题在于,他真的不能吗?来注意看啊,这个是399,这是消费者对吧,到这来。我说的是谁啊?注意看啊,上面是二九这个是。出来了。4100000。老师教的好是吧?我告诉你,你错了,教的好。彩虹屁都不会吹啊。拍马屁拍到马腿上了。啊。啊。打脸吧。啊。打脸不?啊。他能出来啊。大家之前学的有问题啊,我告诉你。我妈的传递。
08:00
跟K没关系。Word是向下有广播的,你做不做?我刚才说了,大家之前还记得我说过那个事吗?说KBY后面对吧?呃,不能写这个word mark,主要原因呢,是在于keep后。就没有这个什么。监控流了。当时有个同学说了,他说因为K,因为广播这个事儿,对吧,我当时说了广播不受影响对吧,Worldmark是广播的,Worldmark跟K没关系。这要注意啊,一定要注意这个事情,What mark跟K它没有半毛钱关系。Word是广播,你比如说你有一个K1,有个K2,假如说你有两个冰度,K一进这个冰度,K2进这个维度,但是你提取的WORDMARK1,你提取的WORDMA2呢。照样,我的那一在这儿,我的妈二这有,那我的那一这有,我的那二这也有。听懂。Ug的传递什么时候说了跟key有关系啊?
09:03
跟K半毛钱关系没有。听懂,因为我们看这个东西超不超时是不是就看过呀。懂了吗?扣二的同学,我估计能抠出来二的还愿意答对吧?下面没有答的估计要让你扣,非得要里面选一个,估计也得是二。啊,也觉得这个东西出不来对吧,要注意啊,我传递跟K没有关系。跟K没有关系,听懂对吧,所以呢,我来测一下这个事儿啊好,那接下来呢,这个超时咱们测了对吧,这个也是走的超时啊,看第一条数据超时,第二条数据也是超时嘛,因为他只看word马G超不超时只看word,接下来呢,咱们还有一个条件行吧。咱们还有一个是连续两个。就是十秒以内对吧,连续两条数据它呢。都是上一条文呢,好,那我们来测一下这个啊来。
10:00
拿过来。这个必须要保证mid相同的,对吧?啊,你这个必须要保证mid相同,那我想把这个输出对吧,那这样。我分享大家,我这个地方写一个。幺七,我加两秒1517,呃,注意啊,Mid没变对吧,我把这个输进去,大家告诉我这个东西能不能输出。来。新一轮的竞猜环节啊,对于大家来说呢,就是猜是吧。可不可以输出啊。啊,这会大家都是一有没有反着买的。有没有敢,有没有勇于扣二的?有没有勇于扣二的,有没有敢反着买的?
11:05
呵呵。有没有敢反着买的?反正就选一是吧啊。猜的。啊,这会儿大家又都是一。我告诉你啊,来看到C,我把它粘进来啊。你等着。没有结果。没有结果,这还是4111啊,如果说能输出的话,应该输出谁啊,4115吧。完了,上一波全扣的是二啊,选的都选二错了,这一波呢。扣了弹幕的都选的是一,然后又错了。时间没到,跟时间没关系,我要的是next呀。
12:02
是那个关系啊,跟时间没关系啊。脑子不清醒了,你想一想,或者说你理你理解的这个时间不到,你你详细说一说也可以对吧?呃,你再深入解释一下。你说的时间是十秒还是什么,如果你说的是十秒,跟这个就没关系,对吧,云总我你可以再详细的聊一聊,你说的时间没到是什么意思。脑子不清醒了对吧?啊,整个都懵了,这两个问题一问,大家彻底懵了。什么东西,我的妈学的啥也不是我告诉你啊,我告诉你这个东西跟CP没关系啊,我就直接告诉你了,这个东西跟CP他没关系,你不要觉得自己少一毫秒,这怎么一毫秒啊这。不对。窗口没触发,不对,云总,果然你说的是这个十秒的问题,不对啊,不对。少一毫秒不对。
13:01
好,那这样。呃,我想一下啊。我得给个幺八可以吧。我给个幺八。我来试一下啊,在里边我给个幺八。他还没有。那杰总你说的少一毫秒就不对了吧,对吧,因为我懂你少一毫秒是什么意思啊,因为我们延迟刚好是两秒,你呢,15~17加了两秒,因为我们我B里边减了一毫秒,对吧,减了一毫秒啊,那你说这个事儿,但是我给个18它也没出来呀。他也没结果,15还没出来,看见没,我给个18这个415 4115还没有。怎么回事呢?啊,怎么回事呢?只只能说啊,你们对于wordmark这个东西学的就是掌握的太不彻底了。差的远了,我告诉你,我的马这个东西根本就没掌握到我的mark到底是个什么东西,它能起到什么作用干嘛的?
14:08
对吧。啊,那我说这句话大家能理解的,扣一啊,我来说一下叫。来听着啊。我有一个作用对吧,表示。小鱼。我的那个数据。已经到期。这句话大家有印象吗?就是word bug可以处理乱序数据,要结合开窗处理专业数据对吧,好,我bug可以结合开窗处理。乱序数据对吧,然后呢,表示小于我的数据呢,都已经到齐,这句话OK吗?这句话大家能理解吧,应该之前学的,可能这个意思呢,大概的应该也知道。
15:03
对不对。是的话给我扣一好吧。其实核心点就在于这句话。时间不能倒流啊,跟时间倒流没关系啊,我们是从10151718也没有倒流啊。也没有道理啊,对吧,我给你解释为什么会出现这种现象,好,我再做一件事情来看啊。我给一个,呃,我想啊。呃,幺五。幺五。171819啊,我尝尝给个幺九看看啊,来,我把幺九输进去。这个还没有对吧,一毫秒的事,这个是一毫秒的事啊191毫秒,然后呢,我们给一个二零。注意看啊,我把这个呢都挨个输一下啊,我把二零再放进去。
16:01
来看有结果了,谁输出了,输出了。对吧,好,这个走的是什么呢?走的是的。走的C拉不是超时啊,对吧,那你看啊,呃,我呢是15~20,他呢间隔五秒钟,是不是云总之前说的窗口没关闭,这个事儿不对呀,我是不是能证明这个事儿对吧?因为他呢这是15,这是20,这中间间隔五秒钟。是不是把那个云总所说的那个,刚才云总是不是说了那个。窗口没关闭的事儿,是不是把这个就排除掉了呀,不是这个问题对吧,诶他呢,而且走的是什么,走的是select,说明呢,走的是匹配上的。走到这匹配上的,好,那我们再来解释啊,结合这句话来看你就懂了啊啊那为什么15输进去,它输出输入的时候这个没有输出对吧?好,那我问大家啊。这条数据输进去的时候bug是多少?
17:04
啊。这条数据输进去,What mark是多少?对了。Worldmark是15啊,接下来好好听啊,肯定能听明白这个事情,对吧,要把这个wordmark这个事情搞定啊,WORD15。表示。15之前的数据已经到齐。对吧,好。那我把这句话一说,表示15以前的数据已经到齐。那你在想为什么他没有输出啊?或者说这样吧,18对吧,这个17它是15。这个呢?是16对吧。
18:00
16之前的好来注意听啊。咱呢用的是next对不对。咱两个事件之间用的是next的关系吧,好,你看啊,你呢表示15之前的数据已经到齐,你呢表示16之前的数据已经到期,我呢用的是next的关系。好。那我们就这么聊对吧,你呢直接是18,你表示16之前数据到齐,我呢用的是那关系对吧,说到这儿大家能不能明白了。如果不明白,继续说啊看。我用的next,你呢,16之前的数据已经到期,那在这个后面。18后面因为你设置了两秒延迟,对吧,那我问大家在18后面在系统看来有没有可能出现一个16.5。有没有可能来一个16.5,十六点一点二点三点四,有没有可能有这个数据。有没有可能,有可能扣一,没可能扣二,因为咱们设置乱序数据为两秒对吧,那18后面是不是有可能会跟着16.5啊,或者16.1234567都可能吧。
19:13
好,那既然18后面有可能有16.x这个数据,那么它能把15跟17看作是。那关系吗?那15与17之间还是不是next的关系,你告诉我。对吧,因为我18后面有可能来16.5,万一后面真的是16.5,那你15跟16.5是不是挨得更近呢?只不过说我乱续了。你是不是就跟17它不是next关系啊。能明白吗?能听懂吗?就是因为你看啊,这个数据到18了没问题,但是它word bug16,那这个数据后面有可能是16.1 16.2乱序了嘛,对吧,那15跟17之间它就不是next的关系。
20:12
他就根本就不是,因为我不能就这么简单的判断,你15跟17就是next关系,因为你就算数据到18了,但有可能会来十六点一点二对吧,那为什么20就可以了。对吧,这个中间没意义啊,他那是刚好那一毫秒的事,20它的word mark是几。是18。注意啊,20这个数据我是18,那么。我的那已经到18了,我认为18之前的数据全部都已经到了,那么15跟17是不是next的关系?我认为18之前的数据都已经到齐了,那我剩下的15跟17是不是next的关系?就是了,对吧,所以当我输入20的时候,这个15就被输出了,而且走的是什么走的是。
21:07
Select匹配上的这个数据流听懂。OK吧,而且这个点也证明了我们最早期说的CP用状态变成同时加了微开窗可以解决乱序数据问题,来看这是不是乱序数据问题啊。对吧,如果说真的十五十七十六点一来了,对吧,那是不是乱序形成了乱序啊,是不是CP可以解决乱序数据问题听懂。OK吗?这块我觉得应该就到位了啊,已经把里边所有东西都测了。已经把里边所有的东西都测了,对吧,OK吧,这是解决乱序数据问题,其实玩的就是一个wordmark,都是通过wordmark这个东西来实现的,OK吧。
22:01
好,那这个呢,我们就。嗯,那咱们做一个测试,这个呢,就是先把它打开。啊,重启一下啊,为什么要重启呢?因为我这个数据啊,我这个数据的时间戳我改的很大对吧,我改了,但是跟我们当前这个时间比,我不确定。它哪个大,所以呢,我们重启一下省的这个wordmark特别高,那过来数据全部都过期了,那不行对吧,好,第一个启动它,那接下来呢,我们base log肯定要启动,因为它是核心的,对吧。好,那接下来呢,这边这个就打开了吧,这个是消费者对吧,生产者呢,可以关掉啊,啊我们看一下咱们的一个数据流。啊,不是看一下咱们进程,咱们进程呢,还没关,这是卡夫卡对吧,这是消费者ZK啊都有,那没有问题,我们造数据就好了,对吧。但这个呢,由于咱们的判断条件。比较比较严格啊呃,所以呢,你为了能够看到数据,我建议你干什么事呢,到这边来啊lo对吧。
23:04
嗯,看一下。我建议你呢,把这个mid的。改了很大。对吧,你把这个mid改的特别大,就容易出结果,容易出结果对吧,如果说你这个很小,它可能不容易出结果,因为你假如说你是十,你就来回造这十个,对吧,很有可能一直是连续的访问,你就看不到结果,所以这个月大呢,我们等个十秒,它肯定有这种超时数据。听懂吗?啊好,那咱们呢,Lg.SH开始造数据走。这个时候呢,我们要等着大概等十秒啊,要等十秒或者以上才能看到这个结果啊base log这边就有数据了,对吧?啊我们搁着诶这边有了对吧,Time out有了啊就超时数据对吧。好,那这个呢,就有了两条对吧?啊,但是呢,他应该数据量就会特别少,你想想看,满足这种条件的数据量就应该很少吧,就应该比较少才对啊,所以呢,你造一次数据能出来这么一两条就可以,如果说你造一次数据没出来,那你就。
24:16
再造一次不要关程序对吧,再接着造一次啊,过个几秒钟,过个几秒钟再造一次能听懂吧,这样的话能保证你能够看到一些数据。啊,能够看到一些数据OK吧,好,这是咱们所聊的这个事情啊,这就搞定了啊。
我来说两句