00:00
好了同学们,那咱们接下来看咱们这个第二个案例啊,第二个案例就是监控这个,监控这个MYSL数据,咱们输出到卡普卡,这种案例也是公司里边包括项目里边用的最多的案例,咱们一般都是把这个MYSL数据咱们给他实时抓取,然后抓到哪抓到卡夫卡里边OK啊,那首先你想输入到卡夫卡了,第一件事干嘛呀,先启动你的组K和卡夫卡,好吧,那所以说这块我要启一下啊,那我再开个111 102,我在102里边我干嘛,我先起上一个组keep start啊,然后呢,我们组keep起来之后呢,我就可以启一下卡不卡了啊。然后呢,咱们再来Kf.I ch,咱们再来启动一下,卡不卡啊。因为一会儿我是不是要查看我这个夫卡数据了,所以说啊,这个卡夫卡就是咱们如果想这个查看卡法数据,我在这儿我给再介绍个工具好吧,什么工具啊,就是有一个工具叫卡夫卡透,卡夫透就是卡夫卡的一个Windows的可视化工具,大家把这个工具你可以这个安装一下,好吧,我会我会把这个工具的安装包放到这个资料里边啊,希望大家了解一下这个工具,就这个工具就是我这个Windows平台。
01:03
能够这个查看我卡夫卡数据的这么一个工具,好吧,那在这里边你要你要怎么着啊,你要你要设置一个链接,就比如说我设置个链接叫麦卡夫卡,然后我这个链接里边我干嘛呀?我给他起了个名字叫麦卡夫卡,然后我选了一下卡夫的版本号,然后我的这个主keep本的这个主机名是102,然后端口号是2181,然后我这个我这个卡夫卡在组课本的节点是根节点的卡夫卡,你把这些设置完之后呢,还要设置一个高级功能,咱们这的话有个advance的就是高级,然后呢,我设我写一下我这个卡夫卡的连接地地址就是102的9092,你一旦把这些都连好了,你就可以选择这个这个东西了,你这么一点,那在这个里边,我们就可以看到我当前卡夫卡里边都有哪些topic皮。可以吧,所以说通过这么一个工具,咱们能够方便的查看咱们这个卡夫卡数据啊,我就不用再起那个命令行了,但因为大家都知道卡夫卡的命令是比较繁琐的,好吧,很多同学都记不住,那既然你记不住这个命令,那你最好要学会这么一个工具,那我我把这个工具给大家就介绍一下,然后然后有这么一个工具以后,那咱么接下来就方便了,因为这个时候我的卡夫卡已经正常启动了,那我是不是就可以利用我这个Maxwell,利用我这个Maxwell,然后监控我这个MYS的数据,然后输出到我这个卡夫卡啊,好吧,那咱们接下来把这个取消掉啊,因为咱们刚才起的那个是输入到控制台,所以我要把刚才那个取消掉,那咱们重新起一个这个卡,这个麦搜索进程,咱们就给它输出到卡夫卡,你既然要输到卡夫卡了,注意前边几个参数不用改,但是这个producer你得改一下,改成什么呀,改成卡夫卡。
02:34
那你要监控你要输出到哪个卡夫卡啊,注意了,咱们只要想把这个参数输到卡夫卡了,你还得给它加上两个参数,第一个就是杠杠卡夫卡boot.service你得给我写上一个102的9092,我要输出到我102103104的这个卡夫卡,然后呢,我还要加一个卡夫卡托皮,就是我要把这个数据输出到我这个卡夫卡里边哪一个主题,注意啊,这个主题可以不存在,大家看到啊,在我这个卡夫卡工具里边,我当前并没有Maxwell这么一个主题,没有这么一个主题,那你可以往这个输出,因为咱们这个卡夫卡会自动帮你创建这么一个主题,大家应该都会OK啊,然后然后呢,然后咱们就可以把这个咱们给他拿回来了。
03:16
好吧,把后边两个参数咱们给它拿回来,点上一个复制,然后呢,咱们来给它粘贴,那这个时候我就可以启动我这个进程了,就咱们利用命令行参数这种方式,咱们启动了一个从my circlel到卡夫卡的这么一个mall进程,好吧,直接敲回声啊。那这个时候是吧,他就连上了卡夫卡,然后呢,并且在这做一个my circle的数据的抓取。那这个时候注意啊,因为咱们这个my circlel它还没有做这个数据的更新,所以说咱们这个卡夫卡里边是没有这么一个主题的,这这你可以刷新啊,你可以这个重新链接刷新一下是吧,大家还没有这么一个主题,那这样怎么办?那这个时候。咱们刷新一下是吧,还没有这么一个主题,那这个时候我就试着咱么更,咱们咱们咱们在这个MYSQ这一块做一个数据的更新,我怎么更新啊,你就比如说我在我这个TEST2这么个表下,我的我给它干嘛呀,我再加上一个五,我再加上一个E可以吧,咱们来给它这个新增一下。
04:13
那一旦我这个my circle这个表有了数据的更新,那说明我底层这个blog就肯定会有变化,那这个blog也有变化,那咱们这个MY这个进程就能捕捉到你这个变化。那你既然我这个电话捕捉到了我,我我就会怎么样啊,我就会把你这行数据给你传到卡夫卡里边,那这个时候我们打开这个卡巴凑。在这个工具里边,咱们做一个刷新,你发现咱们就有了这么一个topic,叫做Maxwell,这么一个topic。可以吧,那然后呢,我就可以查看这个topic的数据了,咱们点一个data,然后咱们点个执行,那这个时候你发现你在咱们的这个Maxwell这个主题里边,你就看到了这么一条message,这个message咱们可以看出自己复制一下,然后呢,咱们给他这个格式化一下,你发现是吧,咱们这个卡副卡里边这个数据。
05:02
它就是text text这么一个库,TEST2这张表我的更新方式是insert,更新了什么呀?更新了五一。啊,那这个时候咱们这个卡夫卡就接收到了咱们这么一个数据,注意啊,这一块我不仅新增能接收到我的这个修改,是不是也接收到,就比如说我把这个E,我改成了EEF,咱们给他那个保存,那这时候咱们这个卡不卡,你刷新一下,它又多了这么一条数据,咱们这个数据就是咱们刚才那个变化的数据,好吧,咱们给他这个可视化一下。咱们先复制一下啊,复制CTRLC,然后我再给它格式化一下,你发现咱们这一块,咱们第二条数据就是咱咱们这个变化的数据了,叫EF,那我不仅可以接受你的变化的,你的这个删除我也是我也是可以知道的,你就比如说我把这个五我给你删了,咱们给他这个删掉,然后咱们试。是吧是吧,它自动会保存一下,这么一刷新,咱们这个数据已经没了,它没了以后呢,咱们这个卡夫卡里边,你再刷新一下,咱们这个卡夫卡就多了第三条,那这第三条你CTRLC,然后咱们给它格式化一下。
06:07
你这个CTRLC啊,咱们给它格式化一下,你发现咱们就得到这么一条d delete数据,也就是说咱们这个mal是能够正常把咱们这个数据传到卡方里边的啊,所以说这个也比较简单吧,啊,为什么我们我们给大家推荐ma呢?因为咱们这个mal使用起来比较简单,好吧,那然后讲到这,咱们给大家讲什么呀,咱们给大家讲一个高级功能啊,什么叫高级功能啊,看好了啊,咱们这一块很重要啊。就是咱们卡夫卡这个主题数据,它的一个分区控制啊,分区也是能够控制的,大家看啊,首先第一个问题。咱们在公司里边,我这个Maxwell有可能监控我多个库,也有可能监控我这一个库的多个表,你就比如说在我这个test ma well这个库里边,我就有两个表,我有个TEST2,我有个test,那我们刚才玩的是不是都是这个,我们刚才玩的是不是都是TEST2了,那就比如就比如这个时候吧,我玩一个test好吧,可以吧,就比如说我玩一个test,我在这个test这个库,这这这这这这这个表下,我来我新增一个三,我再来一个DD3来个来个来个CC吧,好吧,然后我们给他保存一下,那这个时候你会发现我往test这个表下插的数据,我是不是也传到了咱们这个topic下边啊,因为我在指定这个卡夫卡进程的时候,我只能指定一个分区,我我我只能指定一个主题,就是卖,所以说这个时候我所有的买circle的数据变化,无论你是哪个库的,无论你是哪个表的,你是不是都会进到这个主题啊。
07:36
并且你发现,因为这个主题是咱们这个Mac自动创建的,它并不会给你创建一个多分区,你会发现咱们所有的数据全部进到了我这个主题的零号分区。大家应该能看到吧,啊,甚至这个时候我可以这样啊,我我怎么玩,我这么玩。咱们再写上一个库,咱们刚才是不是监控了,除了监控这个Maxwell之外,我还监控一个MAX2啊,那这个时候你比如说我再给你创建一个库啊,我创建数据库,咱们来上一个Maxwell。
08:08
就是来上一个test_m max well2好吧,咱们这个字符集叫这个U8,然后然后排序规则叫je克CI,咱们给它创建一下。然后呢,我在这个库下,我也创建一个表,咱们创建一个表,然后我也叫什么呀,就比如这个,我这个表叫个AA吧,好吧,然后呢,我的列名我想了一个ID,我这个再来个name,然后咱们这个类型第一个叫begin,第二个就叫ver啊。然后长度咱们还是给个200。然后咱们给它保存一下,保存完完以后呢,注意啊,咱们否然后呢,我往我这个TEST2买所有这个库下的AA这个表,我可以插入一条数据。列名咱们叫ad啊,是不是写错了?我看一下啊,咱们这个打开表。我ID没问题好吧,然后呢,就比如说我来个一,我来上一个AAA。
09:00
或者或者我来一张一个什么呀,我来一张一个QQq吧,然后咱们给他保存一下,那这个时候你刷新,你发现咱们往这个库下创建的这个表,这个数据怎么着啊,他也进到了咱们这个卡夫卡的这个零号分区里边,也就是说啊,咱们手动这咱们让他这个自动创建的这么一个这么一个库,就咱们这么玩,它是没有办法控制这个数据去往不同分区的,你看我最后一条数据应该就是我那个QQ了啊,咱们CTRLC复制,咱们给它这个格式格式化一下,你发现我这个我这个test maxwell2这个库的这个表,它的数据也进到了这个主题的这个分去。那我这么多表进到这同一个分区,咱们将来是不是会很乱啊。那所以说啊,这一块有一个高级功能需要给他讲明白了,就是如何维护咱们这个卡夫卡主题数据的这么一个分区控制,这个分区控制怎么设置就变得至关重要了,能理解吧,那这个时候我要给他讲一个参数了,什么参数啊。那现在我们要把这个进程取消掉,我们要用那个什么呀?要用那个Maxwell的那么一个定制文件,咱们做这个启动,好吧,它取消掉之后呢,那咱们接下来是不是有一个con.purpose那我就可以VM修改这么一个con.proper。
10:15
在这个配置文件里边,咱们把这个参数改一改啊,首先这个时候我要传到卡夫卡了,那我这个s dot是不是得改一下,改成什么呀,改成卡夫卡呀,然后下边我这个logo host改成啥,我是不是得改成哈杜甫102的9092啊,咱们把这个固定的参数咱们改好OK啊。这个咱们改成这个哈,杜甫102的9092,然后呢,然后同学们你往下翻。下边有什么参数呢。首先它有一个卡夫卡的topic啊,再找一找啊。在这个卡夫卡这么一个配置里边,有一个参数叫卡夫卡托皮,大家思考一个问题啊,你现在你想控制我这个主题的。
11:00
多分区了,那我应该怎么办啊,我应该手动创建一个多分区的主题,如果你让咱们这个mawell自己帮你创建,它还会创创建一个一个分区的,那我现在既然想维护这个分区了,那我应该怎么办?大家看这个文档啊,我应该手动先创建这么一个具有三个分区的这么一个主题,叫做麦有三,因为咱们这个三是三个分区嘛,所以说啊,我先利用这么一个命令行,参数命令行,就是卡不卡的这个命令,咱们先手动创建一个具有三个分区的两个副本的这么一个主题叫MAX3,可以吧,那咱们这样啊,咱们现在就把它这个咱们这个复制咱们这个运运行一下来到10102上面,咱们运行一下,好吧,只要他一成功了,那你发现通过这个,通过这么一个工具,你你刷新这么一个topics,你发现咱们就能看到这么一个MY3了,并且在这个MY63下边,它确实有三个分区,分区零,分区一,分区二。好吧,那那那那既然咱们有这么一个,就有这么一个主题,那你说我在这个Maxwell的配置文件里边,我这个东西是不是得写个三啊,对,咱们得把这个参数放开啊。
12:08
咱们得把咱们的这个卡夫卡主题的参数放开,我要写到麦三这么一个主题里边去,有了它以后,那再往下咱们有什么呀,你再往下翻,往下翻,翻到这个位置,咱们有一个有一个有一个参数叫什么呀?叫帕提森艇。叫分区参数。在这个分区参数里边,它有三个参数,一个叫producer part by,一个叫producer parts,一个叫r part by for back。这三个参数就能够控制咱们这个数据的分区,首先第一个第一个主参数,你得先说说这个,如果你想开启这个分区模式了,那我得把这第一个参数我先给它放开,好吧,我把这个参数放开你会发现,呃,咱们这个参数怎么样呢?咱们这个参数。或者咱们这样的别放开它了,咱们再复制一下,好吧,咱们咱们把它复制一下。
13:01
咱们来到咱们下一行。咱们来到咱们这个文件的下一行,咱们点上一个O,然后咱们给它粘贴一下,咱们这么玩啊,你看我是不是加这么一个参数啊,就是partition producer part by,你看这个参数它默认可以选这么几个模式。你按照什么分区啊,你可以按照我这个数据的这个库名来分区。我也可以按照这个数据的这么一个表明来分区,我也可以按照你这个数据的主见来分区,我也可以按照你这个数据这个列名来分区,所以说咱们这一块是吧,这这就这三个,这三个你需要记一下就可以了,就是这个库名、表名,还有这么一个主见名,还有这么一个列名,一般来讲在公司里边就是按照前两个,要么按照库名来分区,要么按照表名来分区。如果说我监控的是多个库,那我就按照库来分区,如果我监控的是同一个库的多个表,那我就按照这个表来分区。但是你需要注意的是什么呀,如果说你选的是字段,如果说啊,这个这个参数你选的是。
14:01
那么下边两个参数你的放开,因为我选的是字段吗?那我用哪,那我那我用哪这个表的哪个字段来分析啊,就比如说我用这个表的这个ID字段来分,或者说这个表的内部来分析,所以也就是也就什么意思啊,如果这个字段你选的是你下边这个字段,你得放开,你得给我把这个列名给我写在这。但那那不仅这个,你下边这个也要放开人家说了啊,如果你写的是C,那它必须存在好吧,所以说咱们这两个配置讲到讲到这大家注意一下就好了,我们一般也没有人会拿这个列来分区啊,不过也一些特殊需求也可能有,那我们在这给他演示什么呀,我就简单演示一个,用这个库名来分区好吧,如果说我要用这个库名来决定我这个数据的分区了,那我这个地方我就写上个这个好吧,那然后呢,那咱们直接保存WQ保存。保存我这个配置文件,然后呢,然后我用这个配置文件启动,启动一个Mac的进程,那怎么启动啊,是不是B目录的这个Mac啊。变目录的Maxwell,然后咱们来个杠杠con conig,然后呢,咱们用咱们这个点杠有一个config.prop我给它启动一个mal进程。
15:09
只要他一启动了。是吧,咱们这个数据如果说再有这个MYSL这个数据再有变化了,我这个数据是不是会进到我这个MYL3下边啊,大家应该应该能能能知道,那这个时候我就给它变化一下好吧,那就比如说我先在text这个这个库下,我我我我给你更新一下,就比如说我往你的这个text表,我我我我给你来个什么呀,我你来个四,我来上一个DD好吧,我们这个给他这个新增一下,那你会发现咱们这套数据就进到了我这个MAL3的什么主题啊,你看它进的不是零号了。他进的是一号分区了啊,大家看啊,我这么一条数据,我进到了我这个我这个。主题的一号问句。那我们可以再换一个库试一下好吧,那既然我这个MAXWELL1就是test的ma一进一号一号分区,那我看一下我其他库进几个分区,进进哪个分区好吧,就比如这个时候我往我的这个test ma2下边我也插入一条数据,我这个A下边我再来上一个二二怎么来上一个oo吧,好吧,我也随便给你更新一下,那这个时候我再来刷新。
16:11
看一下啊,你会发现明显是有区别的,什么区别啊,咱们的这个test maxwell2。咱们这个库的咱们这条数据进到了我这个卡夫卡的二号分区,那这个时候就说明你不同库的数据会去往咱们这个卡夫卡的不同分区,那既然我这个卡夫卡是多分区,那我将来我这个卡夫卡的消费者就能够实现并发读取了。啊,所以说在这给大家演示一下咱们这个卡夫卡数据的分区问题啊,那就就给家讲明白了好吧,那咱们这个mal对接卡夫卡就给大家讲到这这个案例,我希望大家好好研究研究一下,因为在公司里边或者是在项目里边,咱们用的最多的就是mawell对接卡不卡OK啊。
我来说两句