00:00
好,接下来呢,我们来看一下卡普卡的异步发送,那这个异步发送其实咱们并不陌生啊,咱们之前在讲这个消息队列的时候,是不是看到它的一个应用场景,其中一个就是异步发送场景,那稍微回忆一下什么叫异步发送,什么叫同步发送。所谓的异步发送啊,他就是把核心的这个任务把写入数据库,操作做完了就进行回调。那你像那个发送短信这个过程,诶,由其他的这个模块来慢慢的发送来完成。那像这个同步发送呢,他就是把所有的任务必须得全部完成之后,再进行一个返回,说白了就是死磕。是吧,哎,这通常情况下在企业里面,诶,这个异步发送要这个呃多一些啊,因为把核心任务做完了,其他任务交给别人做就可以了。那行,那下面我们来看一下这个再回来啊看这块儿。对应的叫异步发送。好,打开。打开之后,那所谓的异步发送是谁和谁之间的一个发送呢?记住是将外部的数据发送到这个队列里面。
01:06
这块的一个发送啊,那比如说发送过来,发送过来,如果是一步发送,你看第一批数据过来之后,那我第二批数据再进来。1PPT。那他就不管你这波数据有没有发送到卡卡机群,我就是一波一波的往里面放,这个就是一步发生。那大家可以思考一下,如果同步发送怎么办呢?哎,如果是同步发送的话,那就是必须得这波数据都发送完了,那接下来这波数据。再进行发送,然后再来一波数据。是吧,哎,这是不同的一个区别啊行,那下面呢,我们就来,哎做一下这个异步发送,那现在呢,我们要打开idea,在idea里面进行相关操作啊,先把D打开。他打他的再来看。那下面编写代码呢,我们要创建一个卡法的工程,然后呢,在里面添加上对应的这个依赖。哎,那这里的依赖呢,就是卡卡这个客户端的依赖就可以了,那下面呢,在创建报名,然后进行一个编写客户端代码。
02:07
大家看有没有打开啊,打开之后我们新创建一个啊。又一个。新的工程。新的工程呢,我们创建的是内容工程啊,然后next。那下一步我再给他放到这个二这包啊。那这个呢,也改个名字。行,现在我们就新创建了一个卡瓦的项目,那创建完毕之后,哎,我们在里面导入对应的这个依赖哈。Dependency啊,比如说所有的依赖啊,然后dependency。那这里面我们要打的是这个卡普卡,卡普卡客户端对应的依赖,那对应的这个呃格数和ID就是or RG阿卡奇啊对应的卡普卡,那这个版本呢,我们选择这个3.0.0,这样这个依赖啊就已经导入成功了,那下面呢,我们要创建这个包名啊,那创建包名啊,其实海哥这个笔记呢,是非常非常细的啊,所有的步骤复制粘贴都能够搞定哈。
03:10
那这里面比较难的就是创建报名了,那我就复制过来哈。啊,右键。还可。好,那这个报名就创建完了,创建完之后,接下来我们在这里面要创建一个客户端啊,后端customer produce啊,自定义的啊,那行。右键创建一个类名。有了这个类名之后,创建一个main方法,在这里面我们要创建一个卡法的生产者。那我们要分几步呢?第一步。创建。好不好生产者对象?创建完毕之后,第二步发送数据。第三步。关闭之源。你看这样就OK了,比如说我们希望在这边创建一个扩散对象,把数据发送到卡瓦集群,哎,去干这事。
04:05
那行,那我们需要一个卡把对象那就拗一个呗,拗一个卡不卡。诶,你发现这里面,诶这个没有任何提示啊,那这个没关系啊,干什么呢,你把这里面的包拿过来。拿过来之后放在这里面啊,它这个自动导包啊,有点小问题,然后呢,妹妹这块刷新。看这个红色啊,看现在已经OK了吧,对吧,哎,第一次呢,它都会这样啊,那行,那再把它删除掉啊咔吧,你看现在就有对应的提示了,叫KA producer。大家看这里面有对应的这个KV类型,那这个KV类型啊,就是你传过来的K对应的类型,以及value对应的类型啊。那我们还记得我们传过来数据长什么样了吗?之前我们传过来的是不是这个hello啊,哎,相当于只有这个数据内容,那K呢,K其实是空。
05:01
啊,那这两个呢,无论是谁,他其实都是这个啊,实罪类型。啊,实对性。那这样就给他一个实类型就OK了,那再把鼠标放在这CTRL加P。你会发现啊,这里面要求你传入一个集合,或者是一个PU属性,那这里面我就传这个属性啊,那你需要一个属性配置,那就来一个。配着。又一个parties。啊,别倒书包了啊,好,拿过来。行,那现在呢,就有一个它,那下面我们就直接把它放到这里面去就OK了点。来了一个,这呢就是kaa producer,你看就OK了。那大家想哈,现在我创建的这个卡法producer,它跟我们未来的集群,他们之间有关系吗?目前没有任何关系吧。哎,那接下来我们要做的事儿,是不是让他们两个之间产生点儿火花啊?
06:01
它怎么产生呢?嗯。非常简单,第一个你是不是得连接上对应的集群呢,连接集群。那连接集群这个配置应该怎么写呢?你说海哥这个机型配置不是这用啊boot啊TRP。啊,然后杠SE server是这样吗?哎,不是这样的哈,那这个呢,一般我们不会这样去写,一般怎么写呢?哎,我们这样写。叫。Producer。看这第二,然后呢,BOO。看这个what server con,哎,然后放上。那这个他是谁呢?点过去。啊,按住CTRL键啊点回去再点你发现,哎,这里面就是boot serve。哎,你可以去写这个,当然也可以通过这种方式去做,那建议大家生产环境当中是不是采用这种方式啊,哎,不容易写错啊,不容易写错,那下面我们就连接上叫HIOOP102,然后9092,那如果生产环境当中呢,建议大家啊,再加一个103,然后9092,防止任何一个客户端挂掉,另一个仍然能够正常工作。
07:08
这就连接上集群了。那连接上它之后,下面还需要干一个什么事呢?还需要指定。对应的key。和。Value。的序列化。类型相当于什么呢?你看一下这张图当中。看下这个位置。你数据过来之后,这个序列化类型必须得指定,因为你看你前面发送的时候啊,啊,或者是你前面这个这个创建这个客户端对象的时候,它的KV是我们用户自己指定的。那这个指定的话,那这块呢,你需要再次指定它对应的去硫化器,比如说必须手动指定,那手动指定,那我们就指定一下啊,非常简单。
08:01
office.foot啊,perfect.k你打1K,你看这里面就有一个k sable啊。打开。打开之后。点进去你看这里就是这个K的序列化啊,序列化我来。K的序,那这个K的序列话,我们应该怎么写呢?哎。Liable。好点,Class get name。这样就可以了,其实这个相当于什么呢?诶你按住鼠标左键点开。点开之后右键copy,复制它的全类名。拿过来,拿来之后再写一下,点put。它相当于跟上面这个是等价。比如说你复制这个so large包啊,对应的这个权利名。哎,你也可以通过点class这种方式获取,那建议大家用哪一个,很显然建议大家用下边这个是不是不容易出错呀。
09:04
那我们再来下一个啊,Part点。啊,这个。叫Y流啊,Y流的序列化,那Y流的序列化仍然也是这个实际类型啊,直接往下。这呢就搞定了啊,就搞定了啊,那记住这两个参数呢,是必须要配置的啊,无论是哪一个卡帕的生产者都需要配置这两个参数行。那这个配置完毕之后,下面呢,我们就调用这个散的方法来发送数据。那producer点算了。哎,你一点这个散的时候,你发现这里面它有两个方法。一个方法呢,是直接producer record,哎,传进来K啊,Record数据发送,那另一个呢,是带回调的。比如说你发送过完数据之后,哎,他给你来一个回调信息,那我们先来哪一个呢?先来这个最普通的第一个啊,之后呢,下一回再讲下一个好吧啊。那三呢,进来,那进来之后按住CTRL加P,我需要一个produce,需要啥你就创建啥就对了啊来你看这不就来了吗?然后按住CTRL加P。
10:06
你会发现啊,这个producer record里面的参数有这么多。P啊。那上面首先你要第一个参数都一样。你要把这波数据发送到哪一个主题?之后就不一样了,后面呢,说你可以把这个数据啊,哎,发送到哪一个分区。还可以呢,来指定key,然后对应卖掉。啊,那这呢,后面我们都会有详细讲解,那我们先来一个最简单的,就是发生value,也不关心你的key和这个partan。哎,就是比如说放一个哈,发过去就可以了哈,那行,那我们先来最简单的,那最简单的就是第一个是first。主题。第二个呢,是我们要发送的数据,比如说我们发送的数据呢,艾特硅谷可以吧,就完事。这是我发送一条数据,那我要想发送。一批数据呢,比如说for I循环啊,我一次呢发送五条数据,这来循环呗。
11:00
把他。拿过来。哎,这不就OK了吗?啊,那只不过在这呢,我们再加上一个这个I,让它看起来更好一点。是吧,来发出去,那最后呢,别忘了这个关闭资源好吧,Producer点。Hello,啊,关闭。行,那整个代码呢,我们就写完了,嗯,稍微回忆一下啊,我们首先呢,是创建了一个卡卡生产者,之后呢,创建生产者的时候,我需要一个属性配置,那这个属性配置当中我们添加了对应的连接集群地址,以及对应的T和Y流的序列化。只要呢,我们调用的这个散的方法进行发送,只不过散的方法呢,用的是最普通的,哎,直接主题和对应的value就完事,那我们来测试一下看行不行是不是。那测试一下,看我们这个集群啊。哎,我们这个基金当中啊,是不是已经开了一个first主题的一个消费者啊,对吧,这消费者那我们就来发送,看他能不能把数据发送到这里面去。看这边能不能接收到啊。
12:04
啊,你看这边就已经收到了对应的这个数据是吧,艾特501234啊,那这个呢,就是这个采用这个异步的方式把数据发送到好吧集群啊。
我来说两句