
Netty网络编程
文章平均质量分 90
Netty底层原理分析&实战
Howinfun
不断深造
展开
-
Netty学习知识点总结
Netty知识点总结大全:包含I/O模型、Java NIO、Netty底层基础与原理原创 2022-08-09 17:51:57 · 623 阅读 · 0 评论 -
如何解读 Java IO、NIO 中的同步阻塞与同步非阻塞?
从 Linux 网络 I/O 模型和 Java 网络编程,解读 IO 的同步阻塞和 NIO 的同步非阻塞!原创 2020-09-03 17:18:16 · 549 阅读 · 0 评论 -
Netty处理TCP粘包、拆包问题之DelimiterBasedFrameDecoder
熟悉TCP编程的可能都知道,无论是服务器还是客户端,当我们读取或者发送数据的时候,都需要考虑TCP低层的粘包/拆包机制。TCP一个“流”协议,所谓流就是没有界限的传送数据。大家可以想象一下,如果河里的水就好比数据,他们是连成一片的,没有分界线,TCP低层并不了解上层的业务数据具体的含义,它会根据TCP缓冲区的实际情况进行包的划分,就是说,在业务上,我么一个完成的包可能会被TCP分成多个包进行发...原创 2018-07-07 18:04:27 · 2008 阅读 · 0 评论 -
NIO的Selector介绍和例子代码
上一篇已经说到了缓冲区,NIO编程需要用到的。但是说到NIO编程的基础和重点,还是非Selector莫属,就是多路复用器。下面先简单介绍一下Selector,然后再放个NIO编程的例子。多路复用器(Selector),他是NIO编程的基础,非常的重要,它提供选择已经就绪的任务的能力。简单点说,就是Selector会不断地轮询注册在其上的通道(Channel),当然包括服务端和客户端的。如果...原创 2018-07-06 09:48:20 · 985 阅读 · 0 评论 -
Netty之心跳检测(可应用在分布式架构)
这次继续上一篇说到的心跳检测 我们使用Socket通信一般经常会处理多个服务器之间的心跳检测,一般来讲我们去维护服务器集群,肯定要有一台或者N台服务器主机(Master),然后还应该有N台(Slave),那么我们的主机肯定要时时刻刻知道自己下面的从服务器的各方面情况,然后进行实时监控的功能,这个在分布式架构里叫做心跳检测或者是心跳监控。最佳处理方案还是觉得是使用...原创 2018-08-01 18:07:40 · 1420 阅读 · 0 评论 -
Netty之基于Http协议通信(HelloWorld&文件服务器)
1、简单介绍HTTP协议: Http协议即超文本传输协议,是建立在TCP传输协议之上的应用层协议,他目前主流是针对WEB开发,HTTP协议应用非常广泛,因此掌握HTTP协议的开发非常之重要。我们主要讲解Netty如何基于HTTP协议进行开发,那么使用Netty的HTTP协议也是异步非阻塞的。2、HTTP协议的特点: 简单:客户端请求服务器时主需要指定URL和...原创 2018-08-05 11:50:27 · 1955 阅读 · 0 评论 -
Netty序列化之Jboss Marshalling
距离上一篇Netty的文章已经一个星期了,哈哈哈。周末学习了一下关于序列化的,先做个笔记先。Java序列化,就那么两个目的,第一是进行网络传输,第二就是对象持久化到磁盘。虽然在Netty传输中我们可以继续使用Java进行对象序列化,但是Java序列化的硬伤太多了。比如无法跨语言,序列后码流太大,序列化性能太低等等。现在主流的编解码框架有: JBoss的Marshalli...原创 2018-07-23 09:52:02 · 969 阅读 · 0 评论 -
Netty的数据通信场景(实用)
又一个星期,上周一直忙着做项目,都没时间学习了。。。趁着周末女朋友和闺蜜去约会,我自己在家继续学习一下Netty了,感觉已经学了好久了哈哈哈。之前关于Netty的基础基本已经学得差不多了。但是我们需要了解下在真正项目应用中如何去考虑Netty的使用,大体上对于一些参数都是根据服务器性能决定的。这个不是最主要的。我们需要考虑的问题是两台机器(甚至是多台)使用Netty是怎样进行通信的。下面大...原创 2018-07-30 14:24:22 · 2500 阅读 · 0 评论 -
Netty的TCP粘包、拆包问题之FixedLengthFrameDecoder
上一篇说到Netty在处理TCP粘包拆包问题的三种解决方案。消息定长、分隔符和自定义协议(消息头和消息体),也给分隔符一个例子了,现在下面我们就弄一个消息定长的例子和说一下需要注意的地方。详细代码就不放了,代码和上个例子的是一样的。1.1、首先用到定长解码器服务端是在childHandler方法的初始化通道方法里面.childHandler(new ChannelInitializer<So...原创 2018-07-16 09:37:38 · 1858 阅读 · 2 评论 -
NIO编程之三次握手成功而服务器不响应客户端
下面这篇推文转自微信公众号《阿里技术》:https://mp.weixin.qq.com/s/yH3PzGEFopbpA-jw4MythQ这篇文章写的是NIO的socket通信,三次握手成功,但是出现Server没有响应Client,是因为backlog过小。我前篇文章<Netty之HelloWorld>就写到对于ChannelOption.SO_BACKING的解释,而Netty确实...原创 2018-07-12 09:43:22 · 1742 阅读 · 0 评论 -
关于NIO中的Buffer缓冲区
Buffer是一个对象,它包含一些要写入或者读取的数据。在NIO类库中加入Buffer对象,体现了新库与原IO的一个重要的区别。在面向流的IO中,可以将数据直接写入或者读取到Stream对象中。在NIO库中,所有的数据都是用缓冲区处理的(读写)。缓冲区实质上是一个数组,通常它是一个字节数组(ByteBuffer),也可以使用其他类型的数组。这个数组为缓冲区提供了数据的访问读写等操作属性,如位置、容...原创 2018-07-02 18:24:13 · 888 阅读 · 0 评论