00:00
好,接下来我们聊一聊卡夫卡的一个架构,你看从大的方面来看啊,它的架构是不是比较简单啊。三个组件吧,Producer consumer考卡集群考卡集群。就这三个东西啊,就类似于那个s sing China这三个东西吧,一样的,那我们要关注它的一个细节,因为我们之前提到的卡布集群里边是拿存数据,他不是拿博存数据吧,他是拿什么之前提到的。它真正的数据是存在一个一个的topic里面的啊,那我们就要聊一聊这个topic这些东西到底是怎么来的啊,相相对来说细节一点的东西啊,细节一点的东西来看一下。首先是这样的。那生产者对吧,集群消费者还有一个cable cable这是核心的几个组件对吧?啊核心的几个组件,那这一块。是我们卡不卡的吧,对吧,那从keep放在这儿是因为我们集群和这个消费者都会依赖于从keep来工作吧,啊会依赖于从keep来工作的,是这样的,OK,那我们一个一个看一下。
01:11
生长者鸡群,那鸡群之前说的它是一个。这就是一台服务器啊,就是哈,102103104。对吧,这就是一台服务器啊,一个服务器,然后它服务器呢,BROKE1博二博三,因为我们之前说的卡不卡的一个集群呢,它这个实例是对吧,来做BROKE1BROKE2博三啊BOOK3是这样的,那这个题型搭在这接着往看。To。Topic是我们实际在卡夫卡集群当中存数据的一个目的地吧。啊,它是实际来存数据的啊,存在一个一个topic里边,存在一个一个topic里边,来看观察一下给大家提供的topic里边有什么东西。Partition分区对吧,啊分区,那想想看大数据里面分区干什么呢。
02:00
汉跟核心的作用不是一样的吗?虽然have是分的文件夹对吧,但是那个呢,分的是文件,但是它作用是什么。负载吧,其实是做负载均衡的。对吧,你想按have有分到不同的文件夹里边,读数据的时候是不是可以指定文件夹呀,对吧,就做负载均衡,能用的做负载就能用到,那同样的这个卡夫卡的外分区呢,也是一样的,做负载均衡用的。第二个,除了partition,你还看到什么?Leader。Leader。看一下除了leader还有一个follow,那leader跟follow之间什么关系看一下。香水。嗯。我。
03:02
备份作用。就是说他的leader跟follow是备份的一个作用啊,备份的一个作用,而且这块要注意的是你看这边标的图,我生产数据对吧。两个箭头都指向的。都指向的是leader。都指向的是leader对吧,而且你要注意的一个点,就是说这个leader是一个分区,一个leader发现没。对吧,哎,一个分区一个力的,而且无论其实生产消费者也一样,无论是生产还是消费都要找leader,然后这个follow干什么用的呢。纯作弊,混用的。为什么不在分区做负载用的吗?你可以写一个分区吗?那个什么是写在色的,写在另一个啊。什么意思?同颜色对自己怎么是另一个分区的呢?这不是零零吗?
04:11
是同一个分区的,怎么是另一个分区的,那另一个分区他怎么怎么是leader跟follow之间关系呢?肯定是同一个分区的了,你的意思是这个为什么不在这儿是吗?那你想想看,你你是做备份用的。你你挂了之后你备份有意义吗?那肯定是不同机器啊,这个是绝对是不同机器,而且你想弄到一台机器都不可能,你想想看你们那个HDFS吗。HDFS3台机器你弄十个备份,他最终是不是一台机器有一个备份啊对吧,他不会说有一台放七个吧,他不可能那样的,那你备份有意义吗?你没有意义了,对吧,你机器挂掉了leader了跟follow都挂掉了,对吧,它这个。
05:01
做备份了还有一个好处就是leader挂了,是不是follow会提升为leader啊,哎,被选举选举出来为leader,哎接着提供服务的,那你要放在一台这个节点挂了,你这个topic皮口不就没了嘛啊,所以说他一定是在另外的机器搞是一定的,这是绝对的。好,然后这里边呢,就是topic,注意啊,这个分区还有副本,首先分区是topic里面有分区吧,不是不有分区啊,Topic分区第二个这个副本是每一个分区有副本吧,也就是说每一个分区有自己的leader,有自己的follow,有自己的follow是这样的一个概念啊,这样的一个概念,OK。还有类似于假如说你这个就只有一个区也可以吧,啊,我这个topic就分一个区也是可以的,那就帕地上零啊,就是说这个分区和副本呢,都是你自己指定的。啊,都是你自己指定的,你创建这个topic的时候,指定的是这样的,OK啊,这是生产数据,生产数据。
06:03
啊,它是按顺序的对吧,按顺序的OK,那到这边是消费数据的,消费数据的,同样的消费数据呢,它也是找A的。一定也是找的leader啊,副本它是。不会对客户端做任何请求的一个响应的。啊,只要是客户端,你想想看,这个生产者和这个消费者相对于卡大集群来说是不是客户端呀,对吧,客户端只有谁,只有leader能做响应,能做响应无论是读是写都必须要找leader follow只做备份,或者说当你leader挂掉的时候,他可能会代替你leader来工作的啊,做这个事的啊,Follow不会做任何的一个响应,跟那个足keepable不一样吧。Able跟follow之间是不是都能够?接收客户端的一个请求啊,对吧,都能够接收客户端一个请求,但是follow接收到读写请求的时候是不不一样啊。
07:02
读请求他可以干什么?直接返回出去吧,直接返回出去,但是如果有任何写请求的,他要把这个请求转发给谁啊,转发给leader吧,转发给leader达,那leader处理完了之后,是不是将结果先。返回给follow,还是由当前这个follow给跟客户端进行交互嘛,将结果返回给客户端对吧?啊,这个要清楚的啊,这个如K的一个follow呢,跟leader呢,一个工作机制跟我们卡里边不一样啊,跟我们卡巴里边不一样,OK好。然后呢,卡卡里这个单独的一个消费者对吧,同样的你这边包拿了一个虚线框干什么。框了两个。嗯,消费者,然后这两个消费者变成了一个消费者组,哎,它里边也有消费者组的概念。啊,消费者组的概念。啊,大家看一下,注意这个消费者组里面的,假如说这样这个consumer c呢。
08:04
当前A是不是消费topic a part是零的数据,找到这个leader对吧?那同时你可以消费,我也可以消费。就是C,我也可以再来获取数据,这是可以的,但是。这个不行。这个不行。你两个属于同一个组。你就不能就是同一个组的消费者,不能够消费同一个分区的数据。这个稍微记一下子,到时候我们能看到这个,看到这个,我们是有这个消费者组织案例的。消费者总的案例的这样的,就是说你两个人不能够同时消费一个分区的数据,但是可以看当前的这个图。这是什么零和一?零和一就是说你两个人是属于同一个组,你不能够消同时消费什么。
09:03
同一个分区,但是你可以干什么?不同的分区。不同的分区,这是可以的。好,这是可以的啊,不同的分区。然后还有一个问题,就是公司当中,你想想看,这有什么好处。之前说的这个partition是做负载均衡用的吧?那你要是读数据,对于这个topic表读数据,你是不是要把很多的一个帕。每一个把这些数据都读过来吧。你可以用多个线程来读。你你讲什么呢?将你多个消费者放在一个组里边,然后让一个组合里边的一个不同的消费者去消费。不同分区的一个数据,不同分区的一个数据。啊,不能分区那个数据,这是可以的,还有一个也是可以的,就是说。我这个刚才指向的C在消费谁呀。这个To B。爬电雷的数据吧,同时它可以消费这个数据。
10:03
就是说一个消费者可以消费多个topic数据。这是可以的。啊,这块东西。有点晕了是吗?啊有点晕了啊,这块没关系啊,就是因为当前这个我们了解的是整个的一个架构这块详细一个细节我们都有案例啊,都有案例给大家介绍的啊,都有案例就是说一个消费者消费多个分区,或者说一个消费者消费同一个分区。或者说一个消费者消费什么,同一个topic里边不同的分区,这也是可以的啊,到时候都有相应的案例啊,稍微记一下,你就记不能的那个点。哪个不能啊。同一个组里面的消费者不能够消费同一个分区的数据。啊,同一个是指的是同时啊,不能够同时消费,就是说你在消费的时候,你你也不能消费啊这个意思,这样注意一下,这条线是不可以的,不可以的啊,就既不不允许的这个点,那其他的一个东西呢?啊都是可以的啊都是可以的,OK,那最后这消费完了之后啊,还有一个keepable这些东西,还有个keepable,那如K之前提过是不是卡普卡集群和cons依赖素K呀。
11:15
对吧,哎,卡布尔机群和康依赖于速配来看一下啊,整个的箭头是这样规划的,那没有画什么。Producer的一个箭头啊,因为producer整个过程当中呢,都不跟这个打交道。啊,都不跟作业打交道啊,这要注意的。那卡夫卡集群是不是我们集群的一个构建,依赖于组配保养,依赖于组配保,那消费者这边他每次消费那个数据还一个offet,就是说上一次消费到哪了,他需要给应该保存一份,就类似于我们刚才写的那个my source里面所做的操作是一模一样的,保存那个off。啊,就是那个Meta表啊,原数据表啊,它的一个作用是一样的啊,消费者消费数据。
12:01
啊,那整个的这个图呢,那后面我们肯定会抛开一个一个细节给大家讲,就是具体的他是怎么写的啊怎么写的,他怎么找到这个leader呢,对吧,那怎么找到这个leader呢。还有这个消费者你也要找leader,你又是怎么找到leader的啊,其实他们找leader的方式是一样的啊,都调用的是同一套API,同一套API这样的。好,然后整体把握一下就是。首先有卡布集群,卡布卡集群里面有一个核心的概念叫broke,对吧?哎,那是多个节点,多个节点,第二个broke里边具体存数据的叫什么topic吧,哎,一个一个的主题啊,这要记住的,第三个就是topic,它又有什么概念啊?分区的概念啊,分区的概念又有什么副本的概念嘛,啊又有副本的概念,那既然有副本的概念,它又有什leader follow,因为它这个副本机制跟那个IDFS副本机制不一样。不一样啊,因为他对于客户端这个请求啊,只能leader来处理。
13:05
只能一来处理,那它这个follow都是备份用的啊,只做备份用的,当你need b了,我可能会替代你啊,是这个一个需求啊,这样的一个东西,大家稍微要注意一下,注意一下。这是整体的一个架构啊,它里边一个东西。然后这块也有相应的一个什么。文字的一个介绍啊,文字的一个介绍是这样的啊,大家自己去读一读啊,读一读。
我来说两句