00:00
好,那还有最后一个点啊,最后一个点啊,是因为我们之前提到过整个生产者,它是不是采用异步发送的一个方式。对吧,啊,异步发送的一个方式,实际上这里面呢,你可以把它变成同步啊,变成同步那怎么做呢?是这样的,它现在不是两个线程吗?那如果说我可以做到send线程在工作发送这条数据的时候,我如果能把main线程给它阻塞起来。是不是也是类似于这种同步的一个发送啊。对吧,虽然你不是用一个线程来做这个事,但是两个线程是串行工作的,是不是也就等于同道?我等你这个三的发完了之后,我慢性能才往下走。对吧,有同学提到了教育,但教你还真不行,因为你没办法爬到这个线程。这线程它自己的,你没办法说改一下源码去校验一下吧,啊教育是可以把这个当年现相当教你那个东西干什么叫线程插队对吧,叫线城插队,你们学多线程的时候,我估计你们多线的知识全忘对吧?对,应该是全忘了,但是其实整个多线程这块,对于讲了肯定讲了,多线程学的时候绝对不讲了,怎么可能会不讲呢?
01:19
一定会讲的,一定会讲的,不可能不讲的,对,反正你们的一个特点就是这个东西,反正我不记得,我不记得呢,就是没讲对吧,实际上也是这个道理,因为你不记得跟没讲效果是一样的,对吧?啊其实是讲肯定会讲好多现场教育,但是这个地方呢,咱们没办法进行教育。没办法用教,因为这个三个线程是你自己用的吗?你自己构建的吗?如果说这个三的线程是你自己构建的,你是不是可以用教这种线程插队的一个方式,对吧?但是有一个好处在于呢,它系统在设计的过程当中啊,来其实同步发送其实用的比较少。
02:00
啊,比较少,OK,那这个地方就有一个AKL。注意这个地方的ACK呢,不是我们之前那个ACK不一样了,这个是你把它阻塞起来,告诉麦线程说我已经做完了,是这个的A,他们直接这种通信应答呢,都叫什么?都叫A你把混了啊,不要混了啊,就是这个意思啊,就是说呃,假如说一条消息在发送,是不是三个线程去发送数据发送这过程当中呢,他把麦线程阻塞起来,他发完了去通知一下,发送一个AK通知一下麦线程说哎,我已经把这个事做完了,你可以继续下走了啊,这个主要得益于这个东西做一个了解,因为市场环境当中,说实话写这个同步发送的比较少。很少,因为一步发送速度还是什么快很多的啊,同步发送还快很多的,这里面呢,呃,是这样的,来看一下三的方法呀,三导方法的一个返回值,主要用到这个内容。嗯,我们用最普通的吧。因为这个少一点来。
03:02
点。干。哎,这个地方是返回到这个地方应该不是。我看一下。Get a。加飞。点盖不对。呃,我调用的是三的方法。S的方法,最后去调用一个。Get,为什么给我返回的是呢?啊,对。Send返回的对象去调用的,我看一下啊,等会电。不是不是不是,嗯,这里边呢,有一个非对象,非对象用的,主要是用这个非对象,这个大家做一个了解,因为生产环境当中用的比较少啊,是这样的,就是它send方法返回的一个对象是future,然后去调用get,哦对,是这样,我用返回值啊,就是它本身,它本身返回的是一个什么。
04:10
就是一个非对象啊,应该是这样,然后你拿这个对象去调用get。first.get。加用get,然后得到它的返回值,其实返回值呃,到德加回车有异常对吧,有异常我们抓一下啊,这样就是它本身这个对像,因为由于它S的方法返回的是一个。非亚,这个是跟线程相关的一个类。啊,跟现场相关的做过开发的,或者说呃,对之前学习,我不知道之前这个东西讲没讲过,他真不确定也讲过是吧?啊也讲过他调用get的方法就干什么事。获取返回值,同时还做什么事呢?嗯。只想过获取返回值什么,那肯定那盖你看这肯定会取他的反回量,不是这个这个非对象跟现城相关的还有什么知识点没讲了吗?
05:07
他会阻塞前面的线。啊,调用get这个方法的时候,会阻塞前面那个线啊,他其实用的这块呢,同步的一个策略问题,其实就用到了这个对象。啊,用到多线程里边的一个对象。对吧,这个对象这个内容是在多线程里面讲的,对吧?啊,因为它跟多线程相关的,你调用get的方法的时候,就等于他把那个其他内容给它阻塞起来,其实这里边这个同步就用到了是这个对象啊,用到这个对象其实在原来的基础上,应该是在原来基础上之前来把这个干掉啊,我们说一下这个东西呢,我们给它退回去。这个比较少用啊,大家做一个了解,这不是我们最开始发送的数据吗?发送数据的方法,这个我们说了它是什么?异步发送的一个策略吧,你只需要在这后面调一个。钙的方法啊,这有异常你可以抛一下啊,你掉一个钙的方法,就加一个调用钙的方法,那它就变成了同步的,而且这个同步是我是我们人为导致的,你相当于我们所说的教育内容方式很类似的那种啊,线插对,那这种呢,咱们做一个了解啊,做一个了解就OK了,生产环境当中很少要写的,因为这种写法就效率太低了,其实你这个同步发送你做了。
06:22
就是你这个同步发送,对于我们当前这个发送有什么好处吗。对吧,有一种特定场景当中会用到这个点什么呢?就极少这种极少那一般的就不用卡夫卡这个内容了,因为我们说了卡夫卡这个东西啊,它是区内区。有印象吗?对吧,那有一个问题,那如果说我想保证全局有序,之前大家也提到过了是吗?一个分区,其实你用一个分区的时候,你还真并不能说保证它完全的说有序,因为是这样的来,你发送一不发送发送123。
07:01
发过去了,不用等发送456,好,456 123,不好意思,没收到456,已经接收到了123,重试123,又到456。后面了,尽管你用一个分区,还是解决不了这个问题,那这个时候你不仅要用一个分区,你还要用什么同步的方式,那这样就能保证消息的什么。有序啊,有序的有序,但如果说真的是这种场景的话,可能就不会选择卡夫卡这个。能听懂啊,就可能就不会选择卡卡这个消息队列了,但是如果说你想要卡夫卡实现这个功能,也就这个第一个一个分区,第二个呢。你要用同步发动的方式,也就这个人用的环境,而且生产环境当中这个特别少啊,你要知道一下防止在面试的,虽然你生产环境当中不用,但是面试的时候他可能会问这个问题对吧?啊,然后你要知道一下,它用的是这个非数量调用的这个get的方法,这形式来做的它的一个同步啊,实际上它还是两个线程,只不过说类似于我第二个线程工作的时候不好意思,你得干什么。
08:02
等着对吧,啊,你得等这个时候。
我来说两句