00:00
接下来我们来写这个代码啊,这个给它干掉,再来一个类,这个类呢,我们给它放到com点开的硅谷点多少点叫麦是吧?对对,刚才我们看到他要继承ste以及实现两个对应的接口,对吧?那这个呢,就从官官方文档当中拿一下就行了,也没必要说自己把它记下来,然后自己敲啊。然后导入这个,注意这个这个comfortableable是不是有多个,那我们肯定导的是哪个from对吧,然后啊,然后实现的方法就是我们刚才看到的什么四个方法对吧?这个配置文件呢,它会最先走啊,所以呢,我们把它放在最上面。啊,放在最上面,好,那在这里边呢,我们刚才说了,我们要给这个数据呢,增加前缀和后缀,然后呢,前缀后缀呢,我们可以通过配置文件来配,对吧?好,那我们在这定义两个属性啊,Private static,哎,不用不用配置static,因为下面的方法也没有什么进单方法,对吧?呃,那前缀后缀呢,我们用好了pre,哎,这个声明啊,我们把声明放在外面,然后还有一个。
01:33
这类型叫后缀啊,那我们什么时候给他去复值呢?在那个康方法里边啊,在这个抗方法里边,那来看啊,假如说我默认给所有数据都有一个默认值减缀OK了,那我们这样pre啊,于啊,从context里边去获取get get SP,那它就有两种方法了。
02:03
一种呢是带default value的,一个是不带的,那带default value的就相当于我们在官方文档当中看到的,它有默认值的这种。就是你没配的话,它有默认值,配了的话,它会覆盖掉这个地方啊好,那假如说呢,我们去获取free啊,我们将这个啊,然后呢,给它一个默认值,假如说加一个杠可以吧啊,也就是说我们所有的数据后面呢,都会前面都加一个这个内容,然后后缀呢,我们给它做成没有默认值的,如果你没配,那它就没有,就是一个空的,那这个怎么来呢?Context点。诶get,对啊,那我们只要啊只要下就是不给它默认值,那么在官方文档当中看到的,大家看到的有的属性就画了一个杠,对吧,那就类似于他在代码当中就这样写的。
03:02
而这个context所谓的context是不是上下文啊,它会去获取配置文件啊,它会读取配置文件,那么大家看到的之前在官方文档当中,到时我们再打开一个啊,一会比较卖了啊,行,那我看吧,那我从这退回去看能不能快一点。嗯,往回退应该能快也不行还是不行,对吧,我们看掉吧,这个网速怎么上午我觉得还挺好的,上午我们在访问的时候还挺好的是吧,完了这个没有退都退不了了。就是大家应该记得,就是说我们这样吧,打开一个配置文件来看一下啊。就是我们所写的这一块的K,是将来在配置文件当中的点后面这个。
04:00
是他。啊,前面这个东西是不是固定的,如果你要给RE1去配,那你必须写A1,点sources给R1,然后如果说我们想去配这个free,那你就点pre,至于这个属性叫什么名字,看这这个K叫什么,那个属性就叫什么,能听懂这个意思。OK吧,那这样的啊,好,那这个呢,是声明数据的前后缀啊然对啊,就是说前缀呢,你不指定它照样有后缀,你不指定它就没了啊,你非得指定一个,它是从这个配置文件当中去获取的啊,我们在这去获取一下啊啊那么接下来呢,这个返回零我们就不用管了啊,返回零就让它零啊,然后接下来是process方法啊,这个process,这个process方法里边刚才我们看到它是不是叫get some data,然后返回一个对吧?啊去做这个事情了,好,那咱们这样啊,这个given呢,我们也不用去get some data了,之前我们提到了,我们是不是用for循环来创建。
05:05
对吧,在里边我们自己给啊用后循环,所以呢,在外面我们应该先第一步声明时间,我们正常来说应该是。Event等于又一个,但是是一个什么,这个I是一个接口,如果说你要写的话,你在这六你其实相当于写了一个接口的匿名实像内对吧,那你要写里的实验方法,那我们肯定不用看了,所以呢,我们去看一看,既然你是一个接口,你应该有写好的时间位对吧?点开CTRL加H,这边就有什么event对吧?啊simple简单时间,那我们其实六的就可以1SIMPLE event,然后我们给他去添加对应的同信息和。
06:01
包理信息对吧?啊,我的视频啊声明,然后呢,第二个循环创建循环,循环创建事件信息对吧,就给他啊事件信息,然后传给China啊给China,那这个我们可以用一个I循环,我们一次呢可以发五条数据对吧?哦,一次发五条数据啊,就写死的,就是说每次他都会照样去发五条数据啊是这样的一个过程,好,那这里面呢,我们去看一下,这里边肯定要一个head的和一个包。对吧?啊,也就是说最后呢,我们在这里边应该拿even的点去set head,以及set什么body啊,Set head body,呃,嗨的信息呢,那我们就给他一个空的就好了啊,所以呢,在外面我们就创建一个嗨的,对吧,要有一个哈西嗨的不就是一个哈希map嘛,对吧,得到一个的,当然你可以在嗨的当中添加一些信息啊,那这个东西呢,我们就也行,我们感SPSP,然后呢,我们去设置一下event.set可以给它分进去,其实这个也可以放在外面,对吧?啊,大家都一样的,没有添加什么特殊的投信息啊,当然你可以在这儿,是不是大家应该能发现到有的source呢?它在获取数据的时候,它就自带一些投信息。
07:32
因为它是在source里边封装的event,它在这儿我给头信息当中添加一点东西行不行啊。那当然可以对吧,啊,不用非得拦截器线上了,在资金source这我们就能添加好好,那接下来呢,这是还的,那有even的点set包,他要一个字节类型。对吧,那咱们这样啊,我们用pre fix前缀加上我们这个内容啊,加什么东西呢?我们自己造的,就加上他的硅读对吧,再加一个,哎,这个前面我加了杠对吧?呃,再加一个,这样吧,艾了个读,加了个冒号啊,然后加一个I,我们再去拼接上我们的后缀对吧?S啊,当然报错是因为我们给的string,但他要的是直接数组对吧?好,那这来呢,括号我给他括起来点get。
08:31
把它变成我们要的字节数据就好。对吧?啊,把它变成我们要做结束组啊,缩胸了,然后接下来我们要去做什么事呢?我们当然这一块啊,嗯,你也可以说怎么做呢,将一个集合做批量传输,那这个呢,我们就单个传输啊,在这个里边我们可以刚才看到的是get process.process看是不是有两个方法,所以拦截器里边是不是对应的有两个方法,Source里面封装的时候是不是可以单个数据传输,也可以干什么集合传输,那如果你用集合传输,拦截器里边是不是拦截到就是一个集合。
09:07
对吧,所以前后是呼应的啊,那我们这边呢,单个事件,那我们把它传出去。啊,那每一次循环是不是修改它的一个暴力信息啊,因为重新设置了嘛,虽然我们用的是同一个对象,但是。包的信息是不变了,对吧?啊,包的信息就会变啊是这样内容好,那在这里边我们稍微点进去看一下他如何处理这个事件的,大家想一下这个是不是交给了先要经过。就是process接收到这个事件之后,先经过拦截器量对吧,然后经过China选择器对不对,那我们点击看一下,点点进去之后来看它在做什么事。是不是in the叫拦截气量去拦截我们的数据,对吧?然后呢,得到even,如果判断even等等于long,它直接就返回了,不往下走了。
10:07
那所以说大家写过滤的时候,如果这条数据我不想要。那我就在拦截器里边返回一个什么那值,如果这条数据你不想要,我在拦截七里边写的时候,我就让它直接返回nu值,能听明白这个意思,因为当你返回了nu值之后,它在处理这个事件的时候,是不是直接就做了返回,不往下走了,连China了选择器就不进了,因为你是个闹,我还走China了选择器,最后发发发了一个寂寞是不是,对对不对啊,所以我就不发了,直接就走掉了吧,啊掉,所以说很简单,如果说你想要做过滤的拦截器啊,那么在这个方法里边,经过你的判断,如果说不包含艾德博我就返回什么,那如果包含艾德博我就返回even本的是不是就是一个过滤的来这系对吧?啊前后结合起来看啊,这块呢,它是自己走掉了,好,如果它不围呢,是不是接着往下走,接着往下走,看它这块在走什么。
11:13
他说,获取需要的China。这是谁,China选择器对吧,这个对象是China选择器,也就是说经过拦截器之后,是不是讲数据交给我们China选择器对吧?哎,选择你所需要的China,而且呢,它返回的是一个绿色,这个是不是能想明白。因为我一条数据如果是副本机制是不是可以传给多个China,副本机制的时候,你配了几个China是不是都要发对吧,集合或者我用多路复用的时候。
12:00
当我们之前看过官方党,它里边什么UCA还记得吗?好像是这个东西吧,它是C1,第二个C2C3呀,在多数复用里边,这条数据是不是也可以给多个人,所以它返回值当中是一个什么例子?当然这集合当中是不是可以只包含一个三呢?可以吧,对吧?啊,然后接下来他要便利才能给真正的写数据的,写数据之前他先获取的什么东西,Transaction事物,对吧?开启事物,然后往里边放,然后去提交,如果过程当中发生异常,做什么事back回滚对吧?而这个里面数量是不需要我们去写对吧?我们只需要将数据处理好之后交给谁就够了,CHINA3啊,交给陈就好啊,是这样的一个内容,对吧?所以呢,之前我们所聊的那一套数据流,起码到China之前,这套流是不是通了对吧。
13:01
啊是这样的一个过程,好啊,然后接下来呢,它的返回值呢,是一个status,一个什么状态,对吧?那它到底是个什么东西呢?我们点进去看一下啊,它里边呢,是一个媒体,有一个叫ready,一个叫拍on,一个是准备好了,一个是什么T啊退避,就是说发一般的我们在发生异常的时候,我们去退避啊去退避对吧,结合着这两个去用的,到底退避多长时间,慢慢的往上增对吧?啊是这个意思,行,那这样呢,我们去对主要是这个里边去抓一条对吧,把它勾上ctrl out加G。CTRL加T啊,它会有相应的一个包裹的一个内容啊,那我们这块呢,可以用窗拆开去做一个包裹,对吧?好副循环里边如果说它都是一切都正常的,那我们就返回一个什么status没举报,点ready啊,点ready的意思呢,就可以接着去拉取数据了啊,Source没有问题,如果发现了异常,那我们就一个什么status。
14:12
点back off好退避,后面这个是不是就可以不要了,因为有两个分支了,对吧,最后一定有了这行代码是不会干什么,执行到他告诉我们这是一行。不可到达的一个语句,就是说根本就不会执行到这,所以报错对吧,我们这个就可以给他干掉啊,因为两个分支都有可以出去的啊,那这块你要看一下啊,由于我们退避啊,或者说ready这个东西就不用退避的,这个是退避对吧,退避多长时间啊,那如果说我们没有抓到数据,因为我们要做处理啊,我们之前就说了,在这我们spread。对,Sleep一下对吧,在这里边呢,我们休息一会,我们休息多长时间呢?D类D类没有对吧?我们呢,也希望从外面给它传进来啊,也从外传进来,我们再搞一个参数对吧?Private,嗯,Delay的话,那里边是不是要一个long值啊,Sleep里边是是long值,我们就用一个delay啊,然后呢,在这里面delay等于context.get哎,Get到get对吧?啊然后呢,我们就用这个d delay啊,就它的名字就叫如果没给的话,我们可以给一个什么5000L对吧,浪值啊,所以让加一个L,好,这是我们怎么样呢?如果没给的话,我们就是五秒钟,五秒钟太长啊。
15:36
两秒钟吧,每两秒钟发五条数据啊,每两秒钟发五条数据,因为一旦他得到返回值是ready的时候,它会又去立马调用这个process方法,又会去接收数据,处理数据啊,所以是这样子的,行,这块呢我们就搞定了。啊,它自定义的一个source,也就相当于我们自己去发数据,对吧,那把这个。
我来说两句