00:00
来同学们,那么接下来我们NIO的配置和编码给大家演示完成,那么接下来我们来看一下NIO增强,那什么意思呢?NIO已经性能不错了,那么再强大对吧?我们调程序嘛,都是希望压榨它出最佳的性能,那么所以说你在面试的时候跟人家讲这个NIO。增强这种案例,人家才会相信你确确确实实有过实践的一线工程经验,而不是说只会撸个代码,只会撸个这样的什么hello word入门级别的。说难听点,这个东西在我看来,百度上一查,渣就完了。根本。啊,不说了是吧,咱们来过来还是什么不浮躁,别人说什么什么这个简单那个简单,这个简单那个简单,我就很奇怪,杨哥玩了十多年了,看官网这么多,顺着这么翻下来,我感觉好多东西我自己是没吃透不懂的,越学的越多,我不懂的越多,我是根本不敢说什么自己是什么高手,但是反倒现在有些九零后呢,自以为自己聪明。
01:03
半瓶水患。不是你聪明你,我们大家都不聪明,我们都是普通人,需要的是勤奋、踏实、持之以恒的努力。说难听点,你聪明是因为你选择了上硅谷,你在这儿听杨哥讲课,不是说那你就这些,我给你官网,我们都拿官网说你现在就看通了以后,那NI刚才的case也跑到这了,就这么一派,你怎么知道能够把这个case跑通。所以说呢,希望同学们呢,咬咬牙,不许浮躁,踏踏实实的搞,多跟自己说干嘛,求知若渴。那么我们不聪明,我们只有勤奋和踏实。对着城墙口冲锋,撕开一个口子,好,那不废话。那么接下来我们来看NIO解决了性能的提升,那么它还有一些什么问题呢?也即URL它的格式啊,我们刚才也已经看到了是什么。
02:03
我们这块是不是以我们的这个开头啦,OK,那带来的问题是什么呢?表示这个端口是使用以TCP协议为基础的网络IO模型,那么从bio变成NIO,但是这样的设置方式只能使这个端口仅仅是支持open y啊,也就是只支持TCP协议,那么我们怎么能够让这个端口既支持IO的网络模型,又让它支持多个协议呢?那么同学们言下之意就是什么?我们想美美的是吗?完美无瑕,那么一步一步的完善。那么言下之意。第一个我们呢,是用默认的哈。第二个我们生成NIO了,那么现在要第三个,那么什么意思呢?兄弟们请看杨哥来给大家解释啊,我们第一次啊,我们用的是什么bio?听懂了吗?家?TCP这么一种通信和协议,也就是我们的默认,那么什么叫bio呢?前面我们弟兄们,我们是这个,刚才大家给杨哥给大家看过了吧,什么意思啊,如果不是特别指定的话呢,这些端口都将使用什么bio就是前五个,这么说能理解什么open y啊,S top,还有AQP等等,那么言下之意就是我们的出厂默认是。
03:27
Bio加TCP协议,然后呢,现在呢,杨哥呢,给它调成了是NIO,其实说白了底层还是TCP协近了一步,那么现在我们是什么呢?N nio。加TCP加MQTT这么说能理解,那么再加什么什么等等到s top啊这些,也就是说这堆协议让你通通都支持啊,并且还是NIO模式啊,那么是不是比第二种这种东东单一的NIO加TCP功能更强大?
04:01
OK,一步一步初级中级高级,那么所以说这个时候我们呢。就要来解决的问题是怎么既让这个端口支持IO又支持多协议呢?那么这种情况下就是最高境界对吧?那么来吧,那么这种情况下active MQ要求我们使用凹凸和加来设置,好,那么听我慢慢道来,首先。干嘛开启ni凹凸TCP?那么来吧。什么意思呢?我们的配置activity自动的什么?匹配我们侦测侦测到的一个NIO的网络连接,我们要使用凹凸加IO的什么传输前缀,比如说按照这么一个配置啊,这个auto就是自动的意思啊,就说你什么协议过来,我会底层给你做自动适配,并且以NIO的模式啊,那么这个时候说穿了是不是就是多协议支持啊,不再是仅仅支持TCP,那么第二个干嘛用加号,那么什么意思呢?我们既需要某一个端口支持NIO的。
05:07
网络要支持多协议咋配?那么来吧兄弟们请看,在这块我们的配置就变成了是凹凸加NIO,那么来兄弟们,那么这个时候我们的配置啊就稍微有点啰嗦,我们来看一下我们的官网,那么打开了以后。什么意思呢,凹凸这个配置等等啊,它哪来的,你大家搂一眼,我们这儿是不是有一个凹凸凹凸凹凸呢?诶。嗯,找找吧,在哦在前面了,你看是不是放在首页了,传输这用out,我一点这跑到这了哈,这一页,那它的意思呢,就是说从5.13以后,那么我们现在用的版本是多少,5.15,那么也就说杨哥用的是最新的,那么activity支持了什么?各种协议的这种侦测和检测,知支持多协议,巴拉巴拉巴拉,这一堆open外啊,那么呢,都可以能够自动的被发现,那么这个呢,就允许全数协议。
06:05
共享四种类型,听懂可以把它理解为就是四合一,那么言下之际,你用auto拓这样的话呢,就有点类似于以前你要用哪一个12345,给我明确说明白了,但是从5.13以后,Active t MQ呢也没闲着,我自己底层呢做了优化,你给我写个auto拓,那么干嘛,我就可以自动的侦测到这些东东,那么好斜议用auto,就像是一个什么极限口一样哈,一个插板。那么现在我们这边一个插板,好,我们只有一头。对吧,对外暴露。但是呢,这个考是USB接口,这个考是HDMI,这个考是Type C,这个考又是蓝牙接口,那么言下之际,是不是外面就有一个叫凹凸的盒子啊,屏蔽了这些接口和协议的差距,我外面就暴露一个东东叫凹凸就可以了,好那么接下来那么由于凹凸以后,那自然而然牵扯到一些什么,是不是又是一些这些性能啊,那么这些参数啊,那么巴拉巴拉,那么请看配置及ne怎么配。
07:15
就这么着out干嘛?然后默认是不是开启了我们的TC线,然后干嘛也可以被识别到。好了,那么接下来我们呢,就按照生产的要求来,同学们给大家配了这么一条,那么开始吧,那么我们干了一件什么事呢?来。那么这个时候,那么同学们老规矩,我们呢,把我们的active MQ干嘛stop先停止一下,然后呢,这个时候我们呢,先退出。然后呢,我们的vim active MQ过来,那么。这个时候的话呢,我们呢。
08:01
编辑。那么来。这些都是我们曾经拥有的配过的,对吧,那么由于现在呢,我呢,直接。要配。凹凸了,那么我现在呢,就把这个重复的干掉,然后呢,把我这边呢,直接过来的粘贴,那么来吧。同学们请看一眼,现在是不是凹凸加n nio,凹凸加n nio,注意端口号又变成多少61608了,这么说能理解好,那么这个时候我们呢,直接将它保存。好,那么保存完了以后我们呢,来试试,那么保存完了以后我们呢,首先要看看如果配置正确,如果配置文件出错,那么是不是启动会有问题,那么现在我们来看看我们能不能启动那么好。正常启动,那么接下来那么同学们,我们访问我们的这个东东,那么。
09:03
好,能访问到,那么这个时候关闭队列,这些通通关掉,那么来找到我们的连接,大家请看是不是凹加NIO这样的一种连接协议也出来了,说明我们的配置成功,那么这个时候,那么来吧,那么同学们注意,这个端口号就变成了多少啊,那么来。我们刚才看了以后,我就不打开了吧,多少了,是不是61608了,那么这边我们这些协议就61608,就增加了更多的匹配和适配性,那么NIO。以前。这么写,那么我们把它全部调到我们的凹加NIO上面,那么来吧,同学们,我们呢,假设啊,这个叫传输协议的I啊,这就叫这个吧,那么就叫这个NIO。凹吧,那么这个时候呢,可能给大家看着呢,好看一点点哈。来吧,老规矩。那么是不是生产三条?
10:01
来兄弟们O了吧,那么来吧,队列这3030没错吧,那么来这边消费三条,那么这个时候大家请看干嘛0133没问题吧?好了,那么如果现在我们又给它换成TCP,那么这个时候我们再来看哈,又给它换成TCP。那么来看一下,这个时候它又不能不能自动的这样适配过去呢,61608端口好,那么来同学们,这是0133,现在哈,我再生产三条过来。OK吧,那么同学们再看我再消费三条过来。OK吧,那么这个时候同学们请看,那是不是0166啊,那么言下之意,这个时候是不是我们的协议的适配性就获得了极大的提升,而且干什么呢?我们的端口基本上是不是就有点像有这么一个集限器的盒子就给我们统一了,那么你可能说那杨哥我懂了,举一反三,我这把它改成别的协议行不行呢?这个不OK,那么可能会报错,因为哈,这些协议支持的他的客户端访问的代码干嘛不一样的,我们只是这块是以加码为例哈,如果你换成其他的协议就有可能呢?不OK,好,那么因为那不是协议底层配置问题,是代码的问题。
11:23
好,那么同学们请只需要记住TCP和NIO,那么我们的这个底层配置,现在呢,我们呢已经换成了我们的凹,那么这个是非常。适用的一个东东,凹加NIO好,那么对于我们的IO加强,就给大家介绍到这儿。来同学们,那刚才下课呢,有同学上来了,这个问了一些问题和讨论了一下哈,那么这边呢,我对于这个传输协议再给大家做一些这个进一步的说明和扩张,那么首先第一个啊,因为我们时间有限,从学习的角度而言,同学们勤奋好学是对的啊,这个没问题,要求大家TCP和n IO Java的必须掌握,其他的你了解了,如果后面用到了,请自行再去深入,或者来问杨哥,那么接下来我们来看一下啊,因为有这么一些问题,同学们问的,那杨哥你自己说了,有这么多协议。
12:21
那么我刚才在演示的过程当中,有些同学呢,就很聪明是吧,他说那杨哥你不配了这个凹凸加IO了吧,凹凸是不是支持前面这写些,那么当然这个是默认天生的,对不对,它是支持这些,那么有些同学就把它换成了MQTT或者STN线,但是一跑是不是报错不好使啊,那么这个时候呢,我们呢,要注意这么一些问题。那什么意思呢?那有些同学把这些协议改了以后就频繁的报错,那么首先哈,再次强调第一个,比方说像MQTT这个协议是一种什么消息队列遥测传说。那么请大家看哈。
13:01
人家直接说的MQ,它支持这种协议,那么呢,可以自动的检测并映射到在GMSNMS和MQTT这些协议之间切换,MQTT是一种machine to machine是不是m to m的协议,那么可以支持发布和订阅消息的传输,那么这个时候哈,它跟Java应用不一样,那么这个时候呢,我从get上面呢,给给大家找了个MQTT或者是其他协议的一些小案例,我们就以MQTT为例大家看。假设我们这一个MQ t t server,那么来哈。来broke是不是还是我们的消息MQ的这么一个动刀来吧,Client。发布到哪一个topic主题订阅,比方说这个DEMO是一个Java用MQTT程序写的,连安卓的一个,那么这个时候大家请看它有个什么m Qt t client,我们现在这些程序里面是不是根本就没有引用这些东西啊,它是另外一套模板和套路程序,那么来吧。
14:00
那么请看,那么这个时候MQTT,什么new m q t t client,我们是不是根本就没有new这么一个动道,我们现在new的是个啥?是不是new的是activity MQ connection factory呀,OK,那么所以说这个程序完全是两套不一样的,不同的协议有不同的程序,所以说你跑不对这个呢不奇怪,而且大家从Java程序我们讲过了,TCP和IO用的比较多,那么大家呢,没有必要再去抠其他的了,那么用到了咱们再说,那么第二个,那么。我们刚才演示了以后,大家看哈,那么现在我们是不是有这么多的这么多多的协议了,那么你还可以干狠一点哈,那么干嘛呢,同学们呢,可以这么玩,那么假设啊。现在我们的配置是不是这些啊,那么nil我把它干掉了,那么我们现在是不是要的是凹加n nio,那么上面这些呢?如果你胆胆子大一些哈,那么这个时候你也可以这么配。来,同学们。
15:01
那么注掉来,兄弟们,没有注之前你懂的,我们这儿是不是有各种传输协议,那么现在如果你可不可以把它注掉呢?那我们凹凸是支持后面这些了,那么来吧,你要是这样的话呢,你也可以用,只用这么一个,但这个呢,可能呢,就是说稍微呢,在生产上你要做好充分的测试啊,那么我个人呢,还是喜欢呢,就说是你就把它留着,当然我们来看一下,你如果现在把它注掉呢。那么来吧,同学们,保存,那么你懂不得?保存了以后我们要干什么?是不是先stop?好看好啊,没有注掉之前是支持这么多的,那么蛀掉之后呢,那么来吧,同学们,我们给他。重新启动,那么启动完了以后注意揉眼,现在我们是不是只配了凹凸了,因为凹凸它是有一种自动识别的功能啊,那么O了,那么过了,那么退出来了以后,请大家看啊,现在我们的连接现在连上来的。
16:04
几个了,是不是只有out IO了,OK,因为其他那些住掉了哈,你要玩狠一点的话,就是这样,那么来吧,那么这什么都没有,那么我们试试啊,那么我们以前的程序NIO对不对呢?那么来。哎。我跑。大家搂一眼,发没发错?妥了,有没有3030,那么好了三个。发送三个消费没问题吧,那么一样,我们现在改成TCP,那么我们再改成我们的TC来吧,那么第二次生产又是三条过去。那么大家请看发没发烧,那么再来,我们呢,再干。OK,消没消费,那么所以说这个时候大家请看0166,那么OK,退出去了,变00066,好,那么所以说各种配置都支持都OK,那么这边的话呢,我们呢,一定要明白,我们这个凹拓是非常非常重要的一个特性哈,那么言下之的,所以说直接告诉你,从5.13以后,他们就支持这些协议的固定格式化的配置,这个TCP的STNP的。
17:16
MQP的和MQTT的这四大斜议能够被自动的侦测到明白了,所以说用auto凸的话,那么再来说一下,我们说过这个一个接口是不是管了四个接口啊,OK,那么这呢,那么请大家呢,对这个呢再做好更深入的了解啊,就是其他的这个你就不要去再去这个费时间了,因为我们现在先把基于TCP的Java的搞明白好,那么对于我们的传输协议就给大家做一点补充,我们来聊到这。
我来说两句