00:00
呃,那接下来呢,第二我们要读取卡夫卡这个,抛一个DB这个主题,然后创建这个流对吧?啊,那一般来说呢,我们要定义两个变量吧。啊,一个是topic对吧,Topic呢,那我们已经写了,还有一个变量。对吧,然后group ID对吧,消费者组一般呢,我们也要给另一个啊,也要给定一个才才可以对吧?啊这两个东西呢,一定要给啊好,那主题这就是他呗。这是主题啊,消费者组呢,一般的情况我是喜欢这样啊这样。嗯,然后呢,在这边用下划线隔开啊,然后呢,小加一个班级号,因为我直接用这个名字的话呢,每个班就重了,他可能就。一样的消费者组对吧,那我就保持加一个班级号,这样的话每个班我们的消费者组不一样,然后呢,我们把它变成小写啊嗯,Ctrl shift加U是大小写切换就是都是CTR shift加U你是小写的。
01:11
就变大写大写变小写都是CTRL是的加U啊好变小写对吧?呃,那这两个变量先准备好,然后接下来呢,我们写因为点。拍吧,然后又一个叫。Flink卡夫卡的consumer对吧,这样去写,嗯,但是这样的话呢,我们发现每一次都要这样去写,对吧。每次都这样写,就是就比较麻烦,因为我们未来。消费卡夫卡的。那太多了对吧,好多程序后面好多程序都要消费,所以呢,我们就不这样写,我们把这个东西写到什么。工具类里边可以吧,啊,写到工具类里边,好,那到这来啊,在优里边我们迎来的第一个工具类叫MY卡YouTube。
02:00
呃,那这里边呢,我们写第一个方法啊,Public。Static工具类里边肯定是静态方法了,对吧,然后呢,咱们返回值就是刚才我们所写的叫link。卡夫卡的consumer对吧,然后类型呢,我们给string啊,我们消费的都是啊,比如说我就叫get,好就叫getli卡夫卡的一个consumer对吧?那参数呢,其实我们都刚才都已经定义好了,我们要给的参数,那必然主题要给进来了,那还有这个。消费者组要给进来好那啊主题topic嗯,然后呢。Sli god,对吧,把这两个参数传进来,好好,那直接返回,在这你有一个叫Li卡卡的一个consumer,然后它里边要的参数我们看一下。呃,那比如说我们就用第一个对吧,他要一个主题,好主题呢,已经有了topic。
03:03
第二个位置,它要一个第1CIVILIZATION的一个STEM,反序列化的一个规则,对吧?那我们之前用的是什么叫simple spring DEMO对吧?好,那我们先用它,到时候再聊能不能用,对吧,我们再去说第三个位置他要一个promise。配置信息,那就是放我们可以放我们版ID对吧?好,那么在这边我们有一个。单位得到一个pro,然后接下来呢,在pro去设置我们的参数点set,对吧,然后呢,消费者consumer。con.god哎,God传进来,呃,然后把property传进去,还少不少东西,大家告诉我。还少不少东西。
04:03
这样写能行吗?少不少东西看不出来,好久不写了是吧?不少了。对呀。连接地址呢?连接地址呢,都没写对吧,那肯定少呀,就是你你要学会品啊,其实我既然这样问的话啊。序序列化怎么还有序列化呢?反序列化不给了吗?消费者怎么还能是序列化呢?你看,学的东西全还回去了,消费者,这写的不是反序列化吗?这不给了吗?这不是反序列化吗?对吧。啊,怎么能是序列化呢?反序列化,刚才说的第二个参数不是做反序列化用的吗?消费者呀,不是生产者,生产者要序列化往里写嘛,你消费出来肯定是反序列化呀。
05:06
对吧,啊,全还回去了,你看啊好,那这边呢,我们定义一个。啊,当然你常量可以写出去。都是照着文档写的,从来没有自己写过是吧,就什么东西都忘了啊好,那这边呢,我们可以写一个private,假如说我们在这比,当然你可以写到,比如说啊,我们写到这个这里面来哈,我们可以定义一个常量,对吧,你在这写也可以啊,你在common里边,在这定义个常量也可以啊,在这写也可以,对吧,在这写呢,你就在写成private,然后呢,呃,静态的。Static string对吧,嗯,叫。服务器的一个地址对吧,好的。是他。
06:00
对吧。常量嘛,那我们加一个final好,那这边呢,我们写哈杜102冒号9092,当然可以逗号隔开,把它都写上,那作为常量呢,我们一般是。加U变成大写吧,啊一般是大写啊好,那这边呢,我们把它添加上private.set对吧,然后呢,呃,Consumer点。然后。看我卡solo。对吧,把它写上啊,那这个才就。搞定了啊,起码可以用了,对吧,这个工具类可以用了,但是这个不好。他报在哪呢,我告诉你啊,就这个东西。就是他。大家以前是不是只用过这个东西啊,我告诉你这个里边有问题啊,什么问题呢,你点进来看啊。啊,它的问题在于哪呢?来看它的一个反序列化方法。
07:06
嗯,我们给大家看一下在。直接。点进来,哎,他现在。嗯,我给大家找一下,它这里面呢,有一个地方有。说明。嗯,element.get back我看一下啊,就这对吧,那看啊。这是里边的一个反虚列化方法,对吧,你看它也行啊,看它也行,这是虚拟化跟反虚的话,它它都有嘛。对吧,因为我们生产者是不是也用这个类啊,所以它里边有。反修的话有序列化对吧,好那么点进去点进来看呢,这里边儿有一个东西啊。他这个。看那这个位置。
08:01
对吧,这是我们点到。反序列化方法,那我们消费者用的是反序列化法对吧?好,那这要我们干什么?闹那啊,那也就是说,如果你这个主题里边出现了一个什么呢,值。浪值它在这块,它在这个类里边会抛出空指针异常。啊,它会抛控制针上,因为他刚才我们看到这个反修料方法里边,他告诉我们这个东西怎么样。不能没到。对吧,如果你这个纸被弄了,那么它就会抛出空指针一条。啊,它就会控制针。对吧,那我可不能保证我正常的数据过来,他有没有为档的,他有可能就是个档啊,对吧,那你就控制扔了,你任务就挂掉了,这个不好,对吧,所以呢,我们就不要用它叫simple string sc,对吧,这简单的string scal不行,那不用它用什么呢?自定义一个,自己写一个对吧?在这边看啊,它除了这个之外,它可以用什么,用卡夫卡的第civilization的一个CM,用它就行了啊,那另一个加卡夫卡的D看啊,它是一个什么接口。
09:14
前面是I。对吧,它是一个接口啊,我们自己写一个把这个浪值的给它处理掉,对吧,好。这里面呢,有这么三个方法要重写,看着挺吓人的,其实最核心的就是谁呢?就是他。好,最核心的是不是就是它呀,对吧,第一个叫什么?一个bar类型的返回值叫is an of string是否是留的,最后一个,那既然是硫,不用想了,False。对吧,直接返回false就好了,直接返回false,那肯定不能是最后一个呀,我是流,我是一个无限流,对吧,你要是有电流,那你可以写。到什么条件返回处对吧?我们是无限流,那永远都是false,它永远都不会是最后一个对吧?这个比较简单啊,是否是留的最后一个对吧?好,来看这个这个定义的什么叫type information。
10:07
他要一个数据类型。对吧,呃,String,那这个怎么写呢?很简单,那你呢,不也是three吗?我自定义的也是,那怎么做呢?那我就拿你不就完了吗。对吧,你怎么写我怎么写。因为我俩都是three,那当然可以拿过来了。对吧,写代码的最高境界啊,直接CV对吧?啊,但是你要知道CV什么东西啊,那我是string类型,那就是写法我们不太熟对吧,那就直接拿它叫string。Type info对吧,好拿过来,那最核心的不就是它吗?那这个方法里面它是怎么写的?来看啊。他这样。啊,Message对吧,这个是数据直接这样写的,但是我们发现这个里边它要求这玩意儿呢,不能为呢,但是我过来的数据有没有可能为呢?有可能。
11:02
对吧,他有可能为难,那怎么办呢,怎么样。If record。但对,那值。我们就不要。对吧,啊,等等于那值,呃,或者你不等于,那但是record.value等等于那值,那我也不要。对吧,因为我要写出去的就是这个value,对吧,我就不要。啊,那不要怎么做呢,我们就直接返回。啊,那对吧,那他说哎,你这个那值你怎么又返回呢,这个可不一样,对吧,你要觉得这个不能理解,你可以怎么做。你加个双引号。对吧,你返回一个空。但是你想想看,我写now可不可以大家告诉我?我能不能写到?
12:05
这个地方我返回那行不行。就是那有的人说,哎,你过来的是,那你你把它处理了,处理之后你还返回闹。大家能不能获get到这里面的一个点,就是如果说啊,那那有的人说,那我不如用C莫斯令了,我直接就返回now就完了呗,但是你要注意你如果用的simple string sc。如果你来了浪值,它这儿会抛异常,你知道吧?他会抛这个控指针异常,但是我们这个还会抛控指针异常吗。不会了。对吧,如果你不能接受,那怎么办呢?我们俩我返回空可以吧,文档当中啊,我写的是返回那啊。文档当中我写的是返回纳。OK吧,啊,那如果说你不太能接受我返回空可以吧?这个比none是不是好接受一点?
13:01
对吧,这个地方跟文档当中写的不太一样啊,这个无所谓都可以,因为像这种数据最终我们消费到以后,我都要给它过滤掉。OK吧,好。否则。我们干什么事啊,写出去。啊,那。另一个string,然后里边放record点,那对吧,你不等于那的时候,我就正常的把你这个数据写出,如果你等于,那我返回一个空,这个空比浪值是不是大家好理解一点啊。没毛病吧,这个可能更好理解一点啊,那咱们就这样写。OK吧,啊,这是我们自定义的一个。此闹非彼呢,说的没毛病啊,就是这个意思,它它不是一个东西对吧,但是呢。如果说我在这儿返回闹啊,大家可能不太好理解,你本来就是闹,你就返回闹对吧,好像没改一样,但实际上并不是啊,并不是,这个一定要注意一下。
14:07
因为如果你这玩意儿为nu了,你直接返回它对吧,你看上去好像也是返回那个nu值。啊对,就是不要他报异常。建议字符串的是吧,嗯,也行,无所谓,我就空串呗,我就空串呗,反正这个数据一定会被过滤掉,对吧,因为我在后面呢,写了要校验什么。非阶层格式的数据啊,肯定会被干掉对吧,好好那我就空,那你有的说你返回一个这玩意儿也可以啊,也可以无所谓啊,这块呢,只要你搞一个。不是接送的数据未来呢,会被过滤掉,因为这个数据我们不要嘛,对吧,只是为了让反序列化这个方法里边不抛异常而已,对吧,就是做这个事好,那这块搞定,搞定好以后呢,我们在这儿可以用了,对吧,叫MY卡法you.get卡法这个consumer。
15:03
把这个主题加个白D传进去CTRL单位,那这样的话我们就得到了一个卡普卡的一个DS。对吧,得到了一个卡夫卡的数据流。同了啊,这个东西呢,就搞定啊。
我来说两句