尚硅谷Netty视频教程(B站超火,好评如潮)

作者: 尚硅谷分类: 计算机技术 发布时间: 2019-11-19 10:25:17 浏览:1279190 次

尚硅谷Netty视频教程(B站超火,好评如潮)

小米轰炸姬:
深夜有感而发想:作为一个曾经的数码(手机)爱好者,从另一个角度,写写自己的理解,仅供参考哈哈~[奸笑] 不知道大家有没有用过2010年左右(或许更早)2G时代的手机,可以运行那种基于J2ME的QQ,能聊天,看个空间,偷个菜(文字版)什么的。这种手机一般都有个缺点就是不能后台运行,一旦去做其他事情(玩游戏,看小说等),QQ就掉线了,就不能收到QQ消息了。如果想要实时接收到女神消息,就要一直保持打开着QQ,不能去做其他事情。这就类似于BIO,阻塞的。[微笑] 后来QQ出了一个手机业务,叫超级QQ(每月10块呢),可以伪实时在线,同时更快的升级(太阳月亮我的最爱[吃瓜])。之所以叫他伪实时在线,是因为它的实现方式是:当QQ收到消息时,腾讯会以短信的形式发到手机上,告诉你某某给你发消息了,请及时处理之类的(也可以直接回复短信,QQ上也会自动转发过去,不太相关暂时忽略)。此时再去登录QQ,就能立刻收到消息了。虽然手机同一时刻依然只能做一件事情,但是在没有QQ消息的时候也无需一直等待了,从而从容不铺去做别的事情。也就是非阻塞的了。 这个超级QQ的业务就像是NIO:人就是Selector,监听事件。短信就像是一个事件。QQ就像是Channel,建立沟通通道。人看到短信,根据短信内容,从而决定要不要打开QQ,处理消息(此处脑补女神&屌丝内心戏[囧]) 不知道有没有帮助到大家理解NIO呢[奸笑]

【回复】你这个例子我在一本小说上面看过,不能说毫不相关吧,就是一模一样而已
【回复】回复 @eeechoo- :一年了,你再看看自己这条评论,不感觉应该删了吗?新人看了怕坐火入魔
【回复】只能说举例 不仅没有加深理解,反而混淆了太多东西 阻塞就是 线程 调用 read,线程卡住了,最终返回时,已经读出来 非阻塞就是 线程调用 read,线程立即能拿到返回值 一个线程使用 非阻塞方式 read 多个channel,得到操作系统内核提供的一个select支持,就是JAVA NIO 的核心思想
陈欢喜儿:
古有张龙netty,今有硅谷netty,这两大神的品质有保证

【回复】回复 @春一夏一秋一冬 :真的,张龙老师讲的深入浅出,蕴含着自学的一些思想。 而韩老师总结的会比较系统
【回复】回复 @NoSeeFlowerName :张龙的课听了感觉会了,其实啥也没学会
宇佐见莲子QUQ:
有的同学做http服务器的时候,ServerBootStrap在bind端口之后,可能收不到浏览器请求,可能是由于某些端口(6665-6669等)是浏览器的默认非安全端口,浏览器给拦截了

【回复】我都快把代码查遍了,幸亏有您说这一句,感谢
【回复】回复 @客舟聽雨 :8081最稳,基本不会被其他应用占用
【回复】使用谷歌浏览器会被拦截,但是360浏览器不会
宽松之民:
韩老师真的是什么都会啊[蛆音娘_滑稽]

【回复】超级全能编程老师 我辈之楷模
【回复】回复 @高高飞起的勇敢麦当 : 你把余胜军放到哪里了?
--桑榆--:
打比方: 五个人写作业,,BIO是五个老师看着写,学生直接在书上写,相当于没有buffer NIO是一个老师看着写,要求学生全写在本子上(buffer),并且一直问(selector),写好的交上来! 学生写完作业是写到了最后一行 老师改作业需要从头开始看(flip)

RrazzmatazZ:
在整个都刷了一遍之后来做一下评论,这个系列的教程仅适用于快速入门,很多东西包括源码的讲解部分都是浅尝辄止,所以如果想要深入了解NIO以及Netty的相关内容,建议看完之后再去搜索一下相关扩展知识或相关书籍。

【回复】回复 @别杀那头猪_ :想学netty肯定就是开篇时候老师推荐的那两本了 ,netty实战还有一个是什么我忘了,不过建议先刷一波视频再看书会好点,什么都不知道直接看书到最后会给你一种挫败感的
视频怪物:
可以返回底层操作系统的情况这个其实不太好理解. 可能是说目前操作系统对IO设备的控制方式一共有四种,按时间线依次是轮询、中断、DMA、和通道方式 其中通道方式有三种: 字节多路通道(Byte Multiplexor Channel), 数组选择多路通道(Block Selector Channel), 数组多路通道(Block Multiplexor Channel) 韩老师的意思是不是表达的Java里的NIO是跟操作系统中的通道方式呼应?

23579855558_bili:
顶我上楼! netty绑定端口中的sync是意思是:主动阻塞当前调用方的线程,等待操作结束,也就是说异步转同步!

【回复】这种细节课程里面遗漏挺多的 包括unpool也没说太明白
疯狂的大白萝卜:
视频里面在讲和浏览器通信那节,基本上和老师的情况不一样啊。。首先我获取的连接是DefaultHttpRequest类型的,并不是HttpRequest,而且老师的请求每次都会断开(明明他使用的也是1.1版本的http,默认应该是长连接),然后每次的处理器对象都不同,而我的处理器对象每次都相同,看了浏览器的请求头信息,显示的也是长连接。。不知道咋回事,netty版本的问题吗

【回复】你换一个浏览器试试,同一个浏览器上的请求应该就是相同的,不同的浏览器上的才是不同的吧
Dinny浅风:
硅谷啥时候能用md 文档的格式整理下笔记呢? PPT 看这是真的不舒服,word 格式又太乱[笑哭]

【回复】大佬有文档吗?分享一下呗!
【回复】在哪里能拿到尚硅谷的netty 整理的PDF文档
莫遣佳期:
31讲没有搞懂,客户端就只连一个服务器为什么还要有选择器呢,客户端不应该就用普通的阻塞来处理么,还有就是Bytebuffer写数据后为什么不filp就能读出数据呢?

【回复】好处是,客户端可以连发好几个请求,而不是在得到响应后再发送下一个
【回复】客户端接收数据怎么办?
【回复】是的,对于单个的客户端来说使用NIO并不能提升性能
GxD-:
粘包问题并没有真正解决。c语言并不是面向对象的。和c设备通信都是以tcp为一个包。真正处理粘包可能需要再加一个缓存然后按照字节遍历找帧头了。

不给资本家做牛马:
P53,浏览器显示服务端返回的中文乱码解决方案,把text/plain 改成 application/json 即可: // 设置response的相关信息 response.headers().set(HttpHeaderNames.CONTENT_TYPE,"application/json");

【回复】无响应的可以试试这个, FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("hello, 我是服务器", CharsetUtil.UTF_8));
【回复】回复 @划水砂糖 :大佬厉害啊,想请教下为什么加上Unpooled.copiedBuffer("hello, 我是服务器", CharsetUtil.UTF_8) 这个就可以的?
【回复】response.headers().set(HttpHeaderNames.CONTENT_TYPE, "text/plain; Charset=UTF-8");就好了
无须时时:
通俗易懂,言简意赅,听一遍就会,极其适合初学者!强烈推荐!!!!!

无须时时:
鞭辟入里,入木三分,不要因为刚开始的不解而放弃学习,越到最后就越会有豁然开朗的感觉。讲的真棒!!!!!!!

liuyanjun528:
关于定时消息推送,服务端如何拿到用户的标识呢?比如说用户ID

讥诮这庸尘:
跟着视频做的笔记,课件有的笔记都有(除了源码部分),我自己还加了很多东西。可以给后面的人当做参考[tv_doge] 1、csdn:https://blog.csdn.net/youth_lql/category_10959696.html 2、电子书在线阅读:https://youthlql.gitee.io/javayouth/#/ 3、博客:https://imlql.cn/categories/Netty/%E5%85%A5%E9%97%A8/

【回复】就凭这 优先择偶权让给你了
【回复】有没有源码资料 pdf文档?
【回复】回复 @tqk001 :有pdf文档哇?
guang19-R:
学习Netty建议一定要看 《Netty in Action》(Ntty实战), 网上有大神也翻译了 : https://waylau.com/essential-netty-in-action/index.html 我也写了一份文档,各位同学可以看一些,持续更新:https://github.com/guang19/framework-learning

【回复】回复 @杰哥给你好康的 :是的
【回复】回复 @不小心得温柔 :为啥看黑马那个啊 那个不是短吗?

Netty netty netty技术 netty教程 netty视频

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读