00:00
呃,到目前为止呢,到目前为止对吧,就是咱们现在呢,其实如果要从上课上来讲,咱们呢,已经吧,这是我们第八天课对吧,那么其中呢,咱们这八天课,那其实前面讲的什么ready对吧,包括咱们一天我们SPA training对吧,包括咱内核一些回顾啊,其实我们真对新的东西red这是一个啊吧,那么对于我red这一块呢,那么我相信啊同学们,你们搭建过主从搭建过集群对吧,现在应该也忘的差不多了对吧,所以说呢,对于我re来讲对吧,那我希望大家最起码这五种数据类型对吧,你得够知道,然后大概的命令呢,什么时候咱们选择那个数据类型,那你应该知道。另外一个我现写代码的话呢,咱们其实使用的是我们这red它的一个啊Java客户端工具真ice啊,诶这个呢,就是我对你要求短的应该不是特别高啊,然后接下来呢,咱们red完成之后呢,那么到了我们实施项目这里,那么其实我们首先第一天。
01:00
它是干什么的?第一天我们是对吧,这个模拟生成数据对吧?那模拟数据生成呢,那么首先我们有一个账框,这个账号运行啊,它会把这个数据给模拟出来,对吧?这就是为什么大家看到师老师我现在我怎么在生成日志的时候,这个日志呢,它的时间数都是一样的,因为咱们数据模拟出来的嘛,对吧,他在咱们这一个时间,然后呢,把这个数据呢给我模拟出来,对吧?然后接下来,那么咱们现在呢,把这数据啊模拟出来之后,把把这数据模拟出来之后,那么接着再往下对吧,那么咱们呢,要对我的数据呢进行处理对吧?他把数据发送到我们指定的一个服务器的端口上,然后呢,我们对我的数据呢,来做一个处理,对吧?然后接下来,那么处理完之后呢,同学们对吧,处理完之后对吧,那我们现在可以干什么呢?我们现在可以是吧,这个对吧,把它做完或者是保存到我们这个课法里面去,对吧?那么我们在这儿呢,给大家介绍一个知识点,其实这一块同学们那有可能呢,是Java干的,对,就是我们之所以放在。
02:00
这块啊,对,就原来我们这个数据,其实在做离线的时候,直接一生成,呃,遗落盘啊,这就OK了啊,那我们现在呢,把它给单独拿回来,我们自己处理,就因为呢,有可能啊,那么咱们以后会做这块的工作对吧?可能呢,会写一些账va代码对吧?所以说呢,那么在我的项目里边对吧?那么对于我们现在教人处理呢,那我们也加入一些内容,而且这内容呢,是循序渐进的,对吧,我们说我们在使用spring SM开发的时候,它有分层对吧?有什么咱们那这个表志层啊,业务层啊,什么持久层啊,对,其实我们现在呢,在咱们那个短推日志处理的时候,我们这里呢,就来了一个controller,就一个表示层,对业务层呢,还有持久层,我们慢慢的加,对吧,随便啊,过两天加一个,过两天加一层进来对吧?哎,就让大家呢,对咱这个处理过程呢,有一个了解对吧,然后接下来那么咱们现在呢,那么处理的时候一台服务器呢,那可能对处理不过来是吧,那么咱们呢,在这里我可以使用多台服务器。
03:00
来分担咱们的压力,那这样的话呢,就需要对我们现在呢,它的请求来进行负载均衡,那么给大家介绍了我们这个NG对吧,NG做负载均衡,那么NG做负载均衡的首先第一件事,咱们是通过location对吧去拦截我的请求路径,然后接下来通过一个叫做pro pass对吧来指定对吧,然反向代理服务器对吧,然后接下来通过一个upstream吧来指定我到底代理了哪些东西啊,我到底代理哪些东西对,然后接下来把咱们这数据啊发送到我们这卡夫卡去,对吧?那我们会根据我当前生成的一个日志,它的一个类型是启动日志还是事件日志来发送到卡夫卡它的一个不同的主题上,对吧,然后接下来咱们呢,通过我们的SPA streaming程序来对它进行处理,对吧?呃,那么接下来咱们来看一看啊,关于我们现在SPA streaming这个程序的处理,就是咱们前一天讲的东西,对吧?啊,那么在这里呢?我们呀去对创建了一个实之项对吧?那么我们在这里呢?
04:00
先去封装的一些工具类,那么到目前为止,那么到目前为止呢,咱们在开发代码之前呀,我们先去准备的一些我们这工具类对吧?那么这个工具类呢,对吧,有操作elect设的对吧,有操作我们这个卡不卡的,有读取我们现在这配置文件的,以及呢,我们现在有我们这个对获取客户端的短作工具类,然后工具类准备好之后呢,那么咱们专门写了一个我们的daily active user对吧,这样的一个APP,主要呢,来处理我们这个日活业务对吧,来处理日活业务,然后接下来,那么如果你要想处理我们现在这活业务的话,首先第一件事呢,那你应该从卡夫卡呀里面来拿数据,对吧?那么如果要从卡法拿数据的话,那么咱们现在在这里,我们呢,调的是我自己封装的一个工具类啊卡法U,然后它里边提供了几个我们的方法对吧,Get卡stream,那么这里呢,我们的方法呀,那应该是重载的形式是吧,那么一共呢。
05:00
有这么三个,那么这个三方方法区别是什么呢?第一个方法对吧?那么只是把咱们现在主题以及呢,我们string刚态度传过来了,那么这个时候呢,我会使用默认的消费者组对咱们主题的数据呢来进行消费,那么第二个方法呢,那么你除了我们这个主题还有谁,还有我们现在呢,它的一个我们这个啊视频康泰之外,那么他传了一个什么呢?他传了一个我们的group对吧,还传了一个我们的消费者组的ID对吧?那么咱们现在呢,可以通过我们指定的消费者组对你主题数据呢来进行消费,那么第三个方法呀,那么他除了传ID之外,那么还传了一个东西什么呢?就是我们现在呢,它的一个啊主题以及我们这个分区,它的一个偏移量,也就是说我第三个方法其实要从指定的偏移量的位置来开始进行消费,对吧,那么这块呢,对吧,那么我们要注意了对吧,后续呢,我肯定对要从指定的偏移量位置来开始消费,因为我们要手动维护偏移量。
06:00
老为什手动油便亮,后面给大家说对吧,然后接下来啊,那么咱们现在呢,把这个东西给它获取了一下,获取到之后呢,它其实封装的是一个我们离散化硫,比如说叫卡夫卡streamam,然后接下来我们对这个离散化硫呢来进行处理,那么大家在处理这离散化硫的时候呀,那首先你要弄明白一点,同学们,我们现在呢,说一般我这个发的消息往卡发里发送,那么卡发卡在存档消息的时候,它以什么形式存的呀,其实是不是以咱们KV键字形式来存量呀,对吧,就是我现在卡夫卡在处理的时候,对吧,它其实呢,是有一个K和V这样建对的形式,对吧,说老师那我现在我在发送的时候,我也没有给它指定对吧,什么咱们现在这个key呀,对吧?那么你们当初在学咱们这卡夫卡的时候对吧?那么如果要给卡卡发送消息,那么这个时候呢,那应该有什么卡夫卡product对吧,是不是有一个这样的一个对象对吧?应该有一个咱们这个对吧,这个pro product对象,然后接下来呢,那么咱们现在呢,在咱们。
07:00
这个对象里边,那我要发送消息,你是不是应该要封装一个什么record的这样一记录,然后调什么散的方法,那么在调散的方法的时候呢,那么你可以给我传可过来对吧?它也可以传分区过来,对呢,也可以不给传K过来,那么如果不传K的话,它默认为什么呢?会生成一个随机整数对吧?然后接下来并且在咱们随机整数的基础上呢,来递增对吧?然后呢,去取我们的这个和我们当前分级数来做一个模运算,对,如果要是传K的话,它会用咱们的K的哈希值和你当前它的分级数来做某运算,对吧?哎,那么这块呢,其实它会指定于K对吧?那么咱们现在呢,那么你拿的话对吧?那么咱们拿的其实也是一个建对的形式,但是我们这个真正的我们这个消息,它的值其实存在我们这个value中,所以说呢,那我们对我们这个消息啊,来进行处理,它本身这里边放的是consumer record对象啊,那么接下来咱们现在呢,在这里把它呢,都去给它读到,那么读到之后呢。
08:00
那么它本身这里是一个字符串,咱们把这字符串呢,给做一个我们的一个转换啊,做一个转换,转换成我们现在呢,给接层对象转换接对象的目的是什么?就是我方便对我们现在里论数据来进行操作,对吧?那么我可以从它里边呢,拿到一个叫时间戳的东西,那么因为我们最终要统计的是啊,我们现在啊,每天啊,然后某一个每一个小时啊,它的一个我们这个啊,这个日活数的这日活数,所以说呢,那么咱们需要把这个天和小时给我拿到。啊,需要把咱们天还有咱们的小时呢给拿到对吧?但是我现接对象里没有,所以说呢,我现在把咱们现在得到的天和小时啊给它放到我们这个杰森啊这个对象里面去,对,然后做一个打印啊做一个打印,那么接下来咱们现在呢,就对我们这个程序呢做一个测试,那么如果说你要想测试的话,那么你现在呢,得来到我们这里对吧?注意啊,这个代码呢,我觉得现在目前还没有什么难度,对吧?但是呢,我希望每个人呢,把这个流程都得给我弄明白啊,把流程也弄明白对吧?那么如果你现在想测试的话,大家想一想,咱们现在的流程是不是应该是模拟什么数据,然后交给NEX来处理,然后转发给咱这三台机器,对吧?然后接下来,那么咱们现在呢,对吧,这个交给我们这个卡夫卡,然后SPA timing对卡来做一个分的采集啊,对吧,那么整个咱们先要执行的话,那么这里我需要起一些内容,起一些东西,对吧?那么首先咱们这个ZK对吧,电梯在起起来。
09:35
啊,JK也提起来啊吧,那么JK提完之后呢,那么咱们卡不卡是不是要提起来呀,对吧?KF那么咱们现在呢,把卡不卡对吧?那也要把它给提起来,然后查看一下咱们现在呢,它的一个技能启动情况,对吧?那么我现在这里边这个CK卡不卡启动起来之后,那么咱们是不是就开始启咱们这块内容了,这个是干什么的,是不是对日志行处理里边,那我们现在把它启动呢,放在一个小本里边,那应该是我们这个log.sh,然后呢,Star对吧?把这个呢咱们提起来对吧?那么这起完之后呢,那么你再来一看,应该在每个节点上面呢,它都多了一个我们这个价包,对这个价包呢,来处理你的日志,同时呢,咱们现在你可以通过加EF,然后看一下咱们NG个呀,那应该是记起来了对吧,然后记起来,那么咱们现在这些东西都准备好了对吧,那么准备开始对吧,发送数据呗,那么如果发送数据的话,那么咱们这呢,再去做接收对吧?那么如果做接收的话,咱们现该把这个程。
10:35
去的给运行起来对吧,所以说我现在在这里把这个呢运行一下啊。好了,那接下来来到这里,我们现在呢去执行,那么要执行模拟生数据,那应该在o BT model,然后接下来FT,我们现在这里边是不是有一个APP到呀,对吧,然后接下来咱们现在呢,在这里我们去改一下我们的个OB,然后practice,那这里呢,我生成的一个日期对应该是我们这个23号吧,对吧,23号然后接下来执行我们的Java这啊地梦对吧,然后呢,我现在把这加包来执行一下啊来执行一下,那么咱现在返回收到success对吧,那么你可以看到我们现在这里对吧,每一个采集周期对吧,每个采集周期对吧,是不是可以采集到哪数据啊对吧,好了,那这个呢,是我们原来啊这个前面讲的整个流程对吧,讲整个流程呃,那么咱们现在呢,把这个视频呢,暂时停一下嘛。
我来说两句