
Netty
文章平均质量分 73
Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
y_bccl27
这个作者很懒,什么都没留下…
展开
-
Netty 基础
比如很经典的TCP读包写包问题,或者是数据接收的大小,实际的通信读取与应答的处理逻辑等等一些细节问题需要我们认真的去思考,而这些我们都需要大量的时间和经历,以及丰富的经验。我们再也不必去编写复杂的代码逻辑去实现通信,我们再也不需要去考虑性能问题,不需要考虑编解码问题,半包读写问题等,这些强大的Netty已经帮我们实现好了,我们只需要使用即可。原创 2022-10-07 21:57:45 · 367 阅读 · 0 评论 -
Netty中的TCP粘包、拆包问题
大家可以想象下如果河里的水就好比数据,他们是连成一片的,没有分界线,TCP底层并不了解上层的业务数据具体的含义,它会根据TCP缓冲区的实际情况进行包的划分,也就是说,在业务上,我们一个完整的包可能会被TCP分成多个包进行发送,也可能把多个小包封装成一个大的数据包发送出去,这就是所谓的TCP粘包、拆包问题。熟悉TCP编程的可能都知道,无论是服务器端还是客户端,当我们读取或者发送数据的时候,都需要考虑TCP底层的粘包/拆包机制。原创 2022-10-16 13:53:51 · 749 阅读 · 0 评论 -
Netty最佳实践-数据通信
使用一种特殊的长连接,在指定某一时间之内,服务器与某台客户端没有任何通信,则断开连接。下次连接则是客户端向服务器发送请求的时候,再次建立连接。原创 2022-10-16 20:58:58 · 661 阅读 · 0 评论 -
Netty最佳实践-心跳检测
我们使用Socket通信一般经常会处理多个服务器之间的心跳检测,一般来讲我们去维护服务器集群,肯定要有一台或(几台)服务器主机(Master),然后还应该有N台(Slave),那么我们的主机肯定要时时刻刻知道自己下面的从服务器的各方面情况,然后进行实时监控的功能,这个在分布式架构里叫做心跳检测或者说心跳监控。最佳处理方案我还是觉得是使用一些通信框架进行实现,我们的Netty就可以去做这样一件事。原创 2022-10-18 11:18:26 · 380 阅读 · 0 评论 -
Netty-Http文件上传下载
HTTP(超文本传输协议)是建立在TCP传输协议之上的应用层协议,它目前主流是针对于WEB开发,HTTP协议应用非常广泛,因此掌握HTTP协议的开发非常之重要。原创 2022-10-18 22:51:38 · 1149 阅读 · 0 评论 -
从实践角度重新理解BIO和NIO
要讲明白BIO和NIO,首先我们应该自己实现一个简易的服务器,不用太复杂,单线程即可。因为在单线程环境下可以很好地对比出BIO和NIO的一个区别,当然我也会演示在实际环境中BlO的所谓一个请求对应一个线程的状况。我们首先创建了一个服务端类,在类中实现实例化了一个SocketServer并绑定了8080端口。之后调用accept方法来接收连接请求,并且调用read方法来接收客户端发送的数据,最后将接收到的数据打印。......原创 2022-08-16 21:37:55 · 129 阅读 · 0 评论 -
NIO Buffer
java.nio包下的Buffer是一个抽象类,它本身是一个容器,称作缓冲区。public abstract class Buffer { ......}其常见子类包括ByteBuffer、CharBuffer、LongBuffer、IntBuffer、DoubleBuffer、ShortBuffer、FloatBuffer(注意是没有Boolean类型的Buffer)Buffer中比较重要的4个属性:position、limit、capacity、mark。capacity(容量)原创 2020-08-25 21:45:37 · 170 阅读 · 0 评论 -
Netty中的@ChannelHandler.Sharable注解
添加一个StatusHandler,目的为了记录同时在线的设备数量原创 2020-08-14 10:59:33 · 6345 阅读 · 1 评论