- 00:00 - 好,那我们还是同样的头一天的东西做一个简单回顾,那头一天呢,呃,主要是讲了一些很多的一个案例,对吧,很多案例那也就针对于我们所之前所提到的那个什么圈的选择器。还有还有什么think组等等这一块的东西,作为一个练习对吧?啊think组这两个东西呢,是比较重要的,因为它这里面呢,涉及到有多个China跟多个S之间的一个问题。对吧,到底是怎么样的一个策略,那我们知道这个China选择器这一块,它有两种策略叫。Replicating对吧,Relicating还有一个叫multi对吧?Multi OK,那这两个呢,一个是复制,一个是多了复用,那有了这两个东西,我们来想一下啊,那假如说我有一个数据要给到下游很多人来使用的时候,是不是可以用这个VIPP,但是发现大家发现其实你这样有一个问题。 
- 01:05 - 知道问题在哪吗?假如说我下游有五个人要用到这个数据,你是不是要用,要配五个什么东西。是不有五个China,同样的五个决不了了,肯定因为五个下游的人,对吧,肯定有五个,是不是要用到五个China,而且每当我们增加一个下游要用的人的话,是不是要增加一个China。而且这个东西你能动态增加下游的使用者吗?动态参加是什么意思,就是就是这个任务正在跑的过程当中,我说加一个就是这个A呢已经开启了,我这个时候能说加一个下游的使用者吗。不能对吧,啊,记住这个缺点,因为这个东西呢,跟我们下一个框架,我们要做对比的啊,这是其实就是它可以做我们所说的一份数据,给多个人来使用啊,同样的数据,因为他有个这种一个机制在里边,对吧,但是呢,它有缺陷,第一个缺陷呢,就在于你每增加一个下游的使用者,你就要增加一个什么。 
- 02:17 - China和single对吧,你就要增加一个China和,同时它还不具备动态增加的一个功能。啊,我们所讲的动态增加的一个功能,就指的是这个A的呢,已经启动了。然后这个时候你突然想,诶,这个数据呢,呃,现在走五条业务线不够了,现在是七条业务线对吧,这个数据呢,还给另外两条业务线还要使用,你想动态增加啊,你想动态增加不行,你只能干什么。把当前这个A给它停掉,然后把这个配置文件再加一个China,加一个S,再加一个,再加一个,把这两条优线给它添上去,然后重新启动我们的什么A电脑是不是这样的,想一下没问题吧,啊,这个属于呢,它的一个缺点啊,它的缺点你想想看,你每多一个人来使用的时候,我就增加一个China。 
- 03:09 - 那就不说你用的fair,假如说我用的memory channel。那你这个对内存的一个开销也太大了吧,对吧?啊开销也太大了,是这意思,好,那第二个我们所说的多路复用money,它主要的功能是在于干什么事的。Multiplaing就是说AA日志我要到这个A产的里边,B日志到B产的里边,这个是做什么顺序呢?数据的分类对吧?啊,更多的时候是要做数据分类,当然你光使用这个multi就能完成这个事情吗?要结合着什么?In thecept,对吧?我们所说的拦截器来使用,主要的就是我们需要在拦截器里面添加一个头信息。对吧,头信息,而且它的头信息呢,我们看到的是一个map结构KV类型的,然后呢,KV要我们自己指定啊,无论你添加的是什么类型信息,你保证这个K大家要干什么。 
- 04:10 - 要相同,这个value呢,大家不一样,之后呢,在配置文件里边,哎,你配一个这个头的T,然后呢,去映射上你配的value,哎,就能决定你这个东西往哪走了,对吧,当然你还可以配一个default。对吧,啊,假如说你没有defat,你里边呢,没有添加头信息或者投信息配的跟你配置文件不对,那这条数据就相当于扔掉了啊,就传不出去了,就有问题啊,就有问题啊,所以说要注意一下啊,最好呢,配一个default来收集那种,呃,假如说错误日志嘛,对吧,专门在搞一个那个channel叫error channel啊,专门收集错误日,因为正常的在生产环境当中。我们是这样的,嗯,你的数据过来了,就是我们所说的后台数据,它里边要按数据的类型区分的话,它的字段里边一定有这个数据的什么。类型名称对吧,它到底是某一类日志,然后我们是不是根据它所在的。 
- 05:06 - 这个名称来决定他去往哪个China对吧,给他添加图信息,假如说过来的是一个错误日志,它那个恰好就是这个日志类型的这个字段,它没了,传输过程当中丢了。对吧,那这个日志呢,你也不能不管,那我们是不是可以说,因为这条数据是不是就加不上图信息啊,按照我们的逻辑if判断它contain什么A,然后加一个什么A,然后contain b加个B,最后一个是不是什么都没包含,没包含的话。我们就放到default里边也可以,或者说就什么都不放,让他进入什么default那个China,假如说叫l China,我们专门的诶用一个什么本地文件,或者说LDFS的一个文件夹给他收集起来看一下这个错误日志是不是也可以,对吧?啊,这个也可以,这个都是一些,呃,先在一个想法,因为你有一部分错误日志嘛,这条日志呢,你通过你正常的一个分类给它分不开的时候,你可以这样去想,因为它有默认的这种,对吧?啊,有默认的,OK,那这个是我们所聊的复制和多录复用啊,多录复用那下面呢,是我们所讲的一个案例,那至于我们所讲的这个地方呢,我们采用的是监控have日志上传到HDFS和本地文件系统。 
- 06:20 - 啊,本地文件系统,其实我们最关心的是不是这块的一个配置。啊,你要注意之前我们所学的source China,还有那个它三者我们学的种类可以干什么?任意搭配能听懂哦,可以任意搭配啊,你学的不有很多S吗?对吧,然如N个SM个C,那他的。搭配就是N乘以M种对吧,啊是这么多种,因为可以任意搭配,随便你,其实最好的方式呢,就是你用这个干什么。用logo方式,因为最方便一点能听懂啊,Logo是最方便的,因为打印到控制台可以直接看效果啊,直接看效果好之后呢,是我们所讲的这个负载均衡和故障转移啊,这两个东西呢,我们也相应的都做了具体的一个案例啊,具体一个案例OK,那这块呢。 
- 07:11 - 它有两个这个主要的这两个策略讲的是哪一块的策略。我们所说的四个端的吧,也就四个组里边的就是啊,四个组里边的它有其实实际上它有三种策略。是不是有个default对吧?啊,之前有学生就被问到,他说呃,这个C组有两种,有几种策略,他说两种。然后呢,那个面试官就说三种。他当时就没想起来这个default,所以说因为我们现在正常的来讲组呢,说两种说三种都行。因为他默认的那个组里边有有组的概念嘛,相当于他说了官方文档说了吧,他说什么事。默认的这种形式只接收什么一个S,单个S,其实你组不组的也无所谓对吧?啊,那像这两个东西,首先你在定义里边就要加一行代码了,加一个配置了吧,配置一下什么东西啊。 
- 08:06 - 组的名字对吧,然后到配S的时候,是不是组里边有几个S还记得吗?对吧,这个是不一样的,因为你。用default这种形式的时候,你有在定义里边配一个组名吗?没有吧啊,所以呢,我们重要的讲的是两个,所以你在面试过程当中,你尽量还是说两个,如果说人家说三个,哎,你知道就行了,还有一个default对吧,还有个default,你说那个啊,其实你在回答当中呢,没有把那个当主看,因为呢,他只接收什么一个S啊,这样简单一聊人家就清楚了啊家就清楚,有的面试官他就是这样,其实你说两种就就就够了啊,这两种就够了,因为那个其实没有一个组织一个概念啊,所以呢,大家关注一下,因为有学生之前出去被问到,他说回来说我们一直讲的是两种,为什么面试官说三种,还有哪一种,还有哪一个啊,他把defat丢掉了啊,At丢掉了,OK,那这两个东西一个是负载均衡,一个是故障转移。 
- 09:03 - 这个就是字面意思对吧,我们所配置的呢,这个叫load balance,这个叫。对吧,啊,还76字面意思,那负载均衡呢,它还要配具体的负载均衡的策略,对吧,它底下是不是还要配个策略,我们看到的那个什么。Robin轮询对吧?啊,这个随机啊等等就配置策略不要混了啊,不要混了,不要想着,诶各组里边有同学之前的聊的时候就说,我们做模拟面试的时候就说,诶这个组里边有red Robin有这个re。这就不对吧,啊,这就不对了啊,这个是讲的是负载均衡里面的具体的策略问题啊,不要把它放在这上面就存在了啊,不是一个层级的事儿,然后之后呢,是我们所说的这个故障转移。故障转移里边有配这个什么这些东西吗?没有他要配个什么,对优先级吧,哎,优先级是这个意思,OK,那这里边呢,要配一个优先级,其实我们看到了,当时我们一个五一个十,而且还还有印象吗?就是我们当时是五先起的。 
- 10:16 - 优先级为五的先启动,然后再启的十,最后数据还是往哪发,往十里边发对吧?啊往十里边发,也就是说跟你先启动后启动没关系,不是像争抢资源一样,我先来了你就得发给我,不是这意思,我就先看优先级,除非你当前使这个优先级干什么,挂掉了我才往什么第一个优先级里边发,假如说第一优先级的时候还有多个,是不是再看谁第二高呀?啊是这个过程啊,它里边呢,有一个优先级啊,优先级这意思啊,呃,下面呢,也有相应的一个案例啊,相应案例大家也都练了啊,然后之后呢,是我们所说的聚合。啊聚合,而且呢,不光是我们做了一个简单的聚合,同时我们是将这个A变的干成事儿。 
- 11:02 - 放在了不同的机器上。也就是说在传输过程当中,它可以在什么。跨机器进行传输数据吧,如果不能跨机器,这个问题就大了,因为我们之前说过一个点,后台服务器跟大数据集群这两个东西在哪。是分开的对吧,是分开的,不是在同一台机器,如果你不能跨机器传输,那你这个F其实就用不了了,对吧?啊就采集不了数据了,就这意思哎,它可以它核心的用到的是什么东西来做这个。跨进行函数的。我们所说的阿波罗,阿波罗的一个跟阿波罗一个啊,他其实一个RPC的一个通讯框架啊,框架OK,那这个东西呢,它是基于客户端跟服务端,当然我们还聊了,在最开始我们讲这个复制的时候。就看到了,我们当时呢,也是只不过说当时的时候没有去放在不同的机器上,我们是不是都放在102,但是虽然都放在102,当我们开开启A的时候,我们当时是不是先开了。 
- 12:07 - 哪个段?不是,我们当时看到报错信息的时候先开的是。Think端是不是对吧啊,我们先从前面往后面开的,还有印象吗?对吧,他报错了,他说那个什么4141端口连不上啊,这个是我们当时说了,因为它是基于RVC的一个端框架,是我们所说的。客户端跟服务端的这种架构啊,客户端跟这种服务端的架构,而且跟他说了这个source,它其实是一个什么。服务端啊,是这边那个服务端,所以呢,今天我们要先去开什么。啊,要开服务端,先开服务端,再能开这个客户端是一样的,就类似于你直接你不开NC-LK,你直接nc log house44他能起来吗。起不来吧,啊,它也是基于这种服务端客户端的啊,也是这个道理啊,是一样的啊一样的OK,那主要的就注意这个点就行了,因为阿波罗C的S在使用的时候,他们两边的配置是一样的,你要选了哈5104,那都是哈5104,那主要的问题在于你跨机器了,到底是选A机器还是B机器的问题,对吧,就看你什么东西啊。 
- 13:18 - 在每一个机器。对吧,你S这个配置文件,假如阿波罗S这个配置文件在104那里边就要写什么。写104,你在103,你要写103啊,因为我们说了这是服务端,服务端不可能说我在102开启一个什么服务,使用103这个端口吧,啊不会有这样的事情发生,所以呢,你要注意一下这里边的配置文件呢,主要就这个点,前面我们没说这个点呢,是因为我们所有的都在什么。一台服务器的,它不涉及这个点,因为你无论说按照服务端来走,按照客户端来走,它都是102的啊,所以说就没有什么区分点了啊,在这块呢,我们要注意一下,而且呢,当时我们做的是这个事啊。 
- 14:00 - 这边呢收集日志,这边呢从端口发送数据。啊,从端口发送出去,然后呢,我们到了104去做接收,这个第一次我们做的案例,我觉得应该是都发到哪啊。4141端口,那这边的S只需要配。一个对吧,就够了,其实我们当时第二个案例怎么做的,我是不是把这个地方改成了什么,我不往4141发,我往4142尔发对吧,往4142发,OK,那这个地方以S就配两个,一个从4141拿出去,一个从4142拿出去,但是他们绑定的China为同一个,对吧,也就是说可以这样的方式来做聚合啊,来做聚合这个是可以的,那这个是可以的,主要问题在于啊,如果说。因为我们这个跨机器了。啊,跨机器了,假如说啊,你采集的日志跟这个采集的端口数据都在同一台机器上面。 
- 15:02 - 假如说都在同一台机器上面,那我们非得用这个多层的这种。内容吗?能听懂来,假如说之前我们是不是在102上面去采集日志,在103去采集端口数据,然后把这个数据都发到104。这个时候是不是要跨机器一定要用多台吧?啊一定要用多台,OK,那假如说这一套东西日志是102的。这个端口呢,也是幺零二传回来的数据,同时呢,我这个东西还是在想102的这个窗口就是客户客户端控制台去打印一下。这个东西可以怎么配啊,我们直接把这个嫂子,这个嫂子直接是不配到这对吧,在幺上这样也可以吧,要注意啊,我们所说的多个圆这个S不一定非得是阿波罗S能听懂。任何扫帚都可以。对吧,啊,任何操损,因为我们今天说了,这里边任何东西呢,都可以干什么。 
- 16:03 - 混着用的任意搭配,任意搭配啊,只要是里边这个组件就可以任意搭配啊,之后呢,是我们所讲的这个自定义拦截器,那我们回忆一下自定义拦截器要做哪些事情。第一步实现一个这个接口啊,这个什么这个包下的啊,这没问题,然后实现里边的几个方法,四个方法。对吧,四个方法,一个初始化的,一个什么close的,这两个哎,分别调用于次中间有两个方法都是对这个even的进行处理的,一个是对单个疑问的,一个是对一个list,一个批量疑问的做处理,对吧?啊,这两个东西好不要漏了,还有一个点,还有一个进单六类来帮助他去构建拦截器的什么对象,对吧?最后一个build的,我们说了这个build呢,名字你随便取啊,其实你小写大写,你叫me的都无所谓,因为你自己写的累。 
- 17:05 - 但是你写成什么东西的时候,在配置文件里面注意在你拦截器的全类名后面加一个刀乐福,再加上你丢的那个类的类名啊,不需要全类名,就要类名就行了。能听懂啊,那个不一定非得是大写的那个什么丢了啊,你无所谓,你可以做测试啊,你改成小写,那个B改成小写也可以,但是你不要忘了修改你的配置文件,假如说你改成小写了,你配置文件也要改什么小写,要不然他就找不到了,能听懂啊,是这意思啊,这个是拦截器,千万不要把最后面那个东西丢了。啊,无论是面试的时候,还是自己写代码的时候,因为丢了那个东西就起不来了啊来因为就构建不了对象啊,它是通过那个类来构建它的一个对象的,之后呢,是我们所讲的自定义的一个source啊,自定义S,那这个东西呢,是我们所说的,假如说你公司当中业务比较特殊,对吧?啊拿到业务系统呢,假如说你公司比较厉害,这个文件系统自己开发的,不是用的什么HDS。 
- 18:04 - 对吧,你公司当中自己开发的,那你芙蓉姆说他他能有一个S,说能用到你公司当中提供一个这种这种S吗。不可能吧,啊这种是不可能,因为你公司就你自己一个人用的啊,不是大众的,所以呢,那这个时候你想读你这个文件系统里的东西,你就开始吃。叫自定义了,还想一下我们自定义的一个流程。首先它是不是要继承一个什么tract的source这个抽象类,同时实现一个con这个什么接口,对吧?啊,其实它是来用于读这个什么。配置文件的,那这个抽象的这个类呢,就是关心我们最核心的那个什么流程的啊,最重要的方法,我们所说的是哪个方法process对吧?啊这个方法呢,被循环调用的啊,它是被循环调用,被系统循环调用的,那在这个里边我们核心的要做三件事情,还记得吗? 
- 19:01 - 获取第一获取数据对吧?我们在代码里边只是写了一个循环自己来获取的,但是你要知道你可以写IO流来获取数据是不是。对吧,而且注意这个IO流,这个IO的资源,输入流的资源是不是应该在初始化里面,是不是全局有一个就行了,对吧,你每一次在process里边呢,去做一个校验,说这个东西有没有被关,或者说有没有坏,如果说坏了的话干什么。重新建一个啊,如果没坏了,就用一下这个内容,注意要要做这个事啊,因为你这个process是被循环调用的,假如说它中间由于什么资源问题啊,这个流断了,你接着用的时候是不是控制针啊。对吧,你拿了一个流断了,那那个里面就等于no控制帧了,所以呢,你要在process里面写一套代码,If说什么。假如说你写的是IO流。S,对吧,Los等于什么,那你就干什么,把这个流重新去创建一个吧,啊就做这个事,开头呢,做这个事儿啊,假如说你要用到这个流资源的话啊,你要注意啊,好,那你通过流把这个数据读进来了,读到代码里边了。 
- 20:09 - 啊,是不是一行一行读进来,然后接下来呢,第二步就是我们所说的三部里的第二步,把你读进来的数据封装成一个一个的even,对吧?啊封装成事件,接下来把这个事件。是不是传递给China process对吧,注意这个时候不是说你在自己写的这个S里边就直接传给China,他还要做很多事吧,我们当时看到了这个地方呢,我们只是将数据传给了。Process对吧,去处理这个even的啊,处理的点进来之后,第一步就看见了他要对他做什么事,拦截进链去拦截一下我们even的。啊,看你有没有背,你没背的话,这一步走出来是不是大家还一样的数据没有更改吧,啊数据没有更改好,那拦截器之后,它需要判断一下你这个因是不是过滤掉的,假如说你里面写的一个是过滤来电器呢。 
- 21:05 - 对吧,你有的数据不想要,假如说这个字段没有,你给他过滤掉了,他判断一个。为如说因为为下面这些东西就不需要走了吧,没有意义了,是不是啊,不需要走了,好经过拦截机之后,它接下来经过什么。是不是选择器啊,啊China选择器,那之后呢,假如说经过China选择器,因为我们所说的里面呢,有replicating,有multileing,那replicating当前那个事件是不是要传给多个什么。传给多个传导板啊,经过拦截机之后,诶,他发现了这个选择器,在经过选择器之后,他发现了将来这个even呢,要传递给多个什么。看对吧,它返回值你也能看出来,其实可能会多个,但是。有同学在想,哎,那我有的里边配了一个产能,但你要注意,这个是一个粒子集合,我里面放一个值行不行? 
- 22:01 - 可以吧啊,你不能说我是历史集合,我必须有多个吧,就像我们之前最开始做的案例里边,是不是south China跟sing都只有一个呀?对吧,那你照样返回是例子,只不过说我把你一个值放在例子里面封装了一下而已,对吧?啊,就做了这个事好OK,那后面是我们所能看到,因为我们之前讲到的过程当中讲到了。里边有什么?事物吧,而且呢,这个China跟soft之间是什么事啊。说的失误对吧?啊说的时候,那这里面呢,就能看到他,就获取他的一个事误,然后呢,开启事误,然后去往里面放数据啊,然后去提交,如果提交失败,假如说这里边有异常,就干回滚吧,啊就做回滚啊,就做这个事儿啊这里面呢,我们也能看到这个事物,而且我们也说了,这个地方的事物呢,并不是我们自己来完成的,我们自定义的SS只需要跟谁呀。跟China process这个东西打交道就行了啊,其他的事情使用框架来做的啊,是用框架来做的,OK,那这个呢,是我们所讲的自定义一个source啊,这里边呢也有一个呃,PPT我们所要做的一个需求,然后呢是集成相应的一个类,里边呢有一些方法啊,有一些方法是干成事情的啊,都可以去了解一下啊,这个呢,是我们前一天所讲的一些主要的一个内容啊,主要的个内容。 
我来说两句