Fork me on GitHub

随笔分类 -  java-io-nio

java io和nio相关文章
摘要:简介 UDT给了你两种选择,byte stream或者message,到底选哪一种呢?经验告诉我们,只有小学生才做选择题,而我们应该全都要! 类型的定义 UDT的两种类型是怎么定义的呢? 翻看com.barchart.udt包,可以发现这两种类型定义在TypeUDT枚举类中。 STREAM(1), 阅读全文
posted @ 2022-02-10 15:27 flydean 阅读(360) 评论(1) 推荐(0)
摘要:简介 UDT是一个非常优秀的协议,可以提供在UDP协议基础上进行高速数据传输。但是可惜的是在netty 4.1.7中,UDT传输协议已经被标记为Deprecated了! 意味着在后面的netty版本中,你可能再也看不到UDT协议了. 优秀的协议怎么能够被埋没,让我们揭开UDT的面纱,展示其优秀的特性 阅读全文
posted @ 2022-01-21 13:55 flydean 阅读(584) 评论(1) 推荐(0)
摘要:简介 我们知道netty的基础是channel和在channel之上的selector,当然作为一个nio框架,channel和selector不仅仅是netty的基础,也是所有nio实现的基础。 同样的,我们知道netty很多种不同的协议,这些协议都是在channel上进行通讯的,那么对于不同的协 阅读全文
posted @ 2022-01-19 13:49 flydean 阅读(406) 评论(1) 推荐(0)
摘要:简介 在之前的文章中,我们介绍了在同一个netty程序中支持多个不同的服务,它的逻辑很简单,就是在一个主程序中启动多个子程序,每个子程序通过一个BootStrap来绑定不同的端口,从而达到访问不同端口就访问了不同服务的目的。 但是多个端口虽然区分度够高,但是使用起来还是有诸多不便,那么有没有可能只用 阅读全文
posted @ 2022-01-12 16:35 flydean 阅读(1072) 评论(0) 推荐(0)
摘要:简介 爱因斯坦说过:所有的伟大,都产生于简单的细节中。netty为我们提供了如此强大的eventloop、channel通过对这些简单东西的有效利用,可以得到非常强大的应用程序,比如今天要讲的代理。 代理和反向代理 相信只要是程序员应该都听过nginx服务器了,这个超级优秀nginx一个很重要的功能 阅读全文
posted @ 2021-12-24 08:13 flydean 阅读(1245) 评论(1) 推荐(0)
摘要:简介 其实软件界最赚钱的不是写代码的,写代码的只能叫马龙,高级点的叫做程序员,都是苦力活。那么有没有高大上的职业呢?这个必须有,他们的名字就叫做咨询师。 咨询师就是去帮企业做方案、做架构、做优化的,有时候一个简单的代码改动、一个架构的调整都可以让软件或者流程更加高效的运行,从而为企业节省上亿的开支。 阅读全文
posted @ 2021-12-16 13:53 flydean 阅读(1275) 评论(5) 推荐(3)
摘要:简介 在之前的文章中,我们提到了在netty的客户端通过使用Http2FrameCodec和Http2MultiplexHandler可以支持多路复用,也就是说在一个连接的channel基础上创建多个子channel,通过子channel来处理不同的stream,从而达到多路复用的目的。 既然客户端 阅读全文
posted @ 2021-12-14 10:18 flydean 阅读(815) 评论(3) 推荐(0)
摘要:简介 netty为我们提供了很多http2的封装,让我们可以轻松的搭建出一个支持http2的服务器。其中唯一需要我们自定义的就是http2 handler。 在之前的文章中,我们介绍了自定义http2handler继承自Http2ConnectionHandler并且实现Http2FrameList 阅读全文
posted @ 2021-11-25 06:59 flydean 阅读(441) 评论(1) 推荐(0)
摘要:简介 对于http2协议来说,它的底层跟http1.1是完全不同的,但是为了兼容http1.1协议,http2提供了一个从http1.1升级到http2的方式,这个方式叫做cleartext upgrade,也可以简称为h2c。 在netty中,http2的数据对应的是各种http2Frame对象, 阅读全文
posted @ 2021-11-03 18:41 flydean 阅读(516) 评论(1) 推荐(1)
摘要:简介 HTTP2相对于http1.1来说一个重要的提升就是流控制flowcontrol。为什么会有流控制呢?这是因为不管是哪种协议,客户端和服务器端在接收数据的时候都有一个缓冲区来临时存储暂时处理不了的数据,但是缓冲区的大小是有限制的,所以有可能会出现缓冲区溢出的情况,比如客户端向服务器端上传一个大 阅读全文
posted @ 2021-10-29 14:25 flydean 阅读(737) 评论(1) 推荐(0)
摘要:简介 无论是什么协议,如果要真正被使用的话,需要将该协议转换成为对应的语言才好真正的进行应用,本文将从http2消息的结构出发,探讨一下netty对http2消息的封装,带大家领略一下真正的框架应该做到什么程度。 http2消息的结构 http2和http1.1不同的是它使用了新的二进制分帧,通过客 阅读全文
posted @ 2021-10-25 09:33 flydean 阅读(1296) 评论(1) 推荐(0)
摘要:简介 上一篇文章中,我们提到了如何在netty中配置TLS,让他支持HTTP2。事实上TLS并不是https的一个必须要求,它只是建议的标准。那么除了TLS之外,还需要如何设置才能让netty支持http2呢?一起来看看吧。 基本流程 netty支持http2有两种情况,第一种情况是使用tls,在这 阅读全文
posted @ 2021-10-22 14:25 flydean 阅读(1727) 评论(2) 推荐(1)
摘要:简介 我们知道虽然HTTP2协议并不强制使用HTTPS,但是对大多数浏览器来说,如果要使用HTTP2的话,则必须使用HTTPS,所以我们需要了解如何在netty的TLS中支持http2。 TLS的扩展协议NPN和ALPN HTTP2协议是从spdy协议发展而来的,无论是spdy还是http2都为了能 阅读全文
posted @ 2021-10-20 09:06 flydean 阅读(881) 评论(1) 推荐(0)
摘要:简介 在网速快速提升的时代,浏览器已经成为我们访问各种服务的入口,很难想象如果离开了浏览器,我们的网络世界应该如何运作。现在恨不得把操作系统都搬上浏览器。但是并不是所有的应用都需要浏览器来执行,比如服务器和服务器之间的通信,就需要使用到自建客户端来和服务器进行交互。 本文将会介绍使用netty客户端 阅读全文
posted @ 2021-10-08 11:18 flydean 阅读(6462) 评论(1) 推荐(1)
摘要:简介 在上一篇文章中,我们使用了netty构建了可以处理websocket协议的服务器,在这个服务器中,我们构建了特制的handler用来处理HTTP或者websocket请求。 在一个handler中处理两种不同的请求,对于某些有代码洁癖的人可能忍受不了。那么,有没有可能将普通的HTTP请求和we 阅读全文
posted @ 2021-09-29 10:25 flydean 阅读(967) 评论(1) 推荐(0)
摘要:简介 websocket是一个优秀的协议,它是建立在TCP基础之上的,兼容HTTP的网络协议。通过Websocket我们可以实现客户端和服务器端的即时通讯,免除了客户端多次轮循带来的性能损耗。 既然websocket这么优秀,那么怎么在netty中使用websocket呢? netty中的webso 阅读全文
posted @ 2021-09-27 09:22 flydean 阅读(16694) 评论(2) 推荐(3)
摘要:简介 CORS的全称是跨域资源共享,他是一个基于HTTP-header检测的机制,通过对HTTP-header进行控制,可以实现对跨域资源的权限管理功能。在之前的CORS详解文章中,我们已经对CORS有了基本的解释。 本文将会从netty的实现角度,讲解如何在netty中实现CORS。 服务端的CO 阅读全文
posted @ 2021-09-17 09:45 flydean 阅读(658) 评论(1) 推荐(1)
摘要:简介 上一篇的文章中,我们讲到了如何从HTTP服务器中下载文件,和搭建下载文件服务器应该注意的问题,使用的GET方法。本文将会讨论一下常用的向服务器提交数据的POST方法和如何向服务器上传文件。 GET方法上传数据 按照HTTP的规范,PUT一般是向服务器上传数据,虽然不提倡,但是也可以使用GET向 阅读全文
posted @ 2021-09-06 12:56 flydean 阅读(1617) 评论(1) 推荐(0)
摘要:简介 上一篇文章我们学习了如何在netty中搭建一个HTTP服务器,讨论了如何对客户端发送的请求进行处理和响应,今天我们来讨论一下在netty中搭建文件服务器进行文件传输中应该注意的问题。 文件的content-type 客户端向服务器端请求一个文件,服务器端在返回的HTTP头中会包含一个conte 阅读全文
posted @ 2021-09-03 10:12 flydean 阅读(1094) 评论(1) 推荐(1)
摘要:简介 netty中有很多适配不同协议的编码工具,对于流行的google出品的protobuf也不例外。netty为其提供了ProtobufDecoder和ProtobufEncoder两个工具还有对应的frame detection,接下来我们会通过一个例子来详细讲解如何在netty中使用proto 阅读全文
posted @ 2021-08-25 07:34 flydean 阅读(755) 评论(1) 推荐(0)