![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Netty
文章平均质量分 69
netty
努力学习,努力爱你!
这个作者很懒,什么都没留下…
展开
-
Netty-RPC
RPC(Remote Procedure Call)— 远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程两个或多个应用程序都分布在不同的服务器上,它们之间的调用都像是本地方法调用一样。原创 2022-09-12 12:46:41 · 113 阅读 · 0 评论 -
Tcp粘包和拆包
TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样做虽然提高了效率,但是接收端就难于分辨出完整的数据包了,因为面向流的通信是无消息保护边界的由于TCP无消息保护边界, 需要在接收端处理消息边界问题,也就是我们所说的粘包、拆包问题,原创 2022-09-10 19:05:47 · 117 阅读 · 0 评论 -
Netty编解码器和handler的调用机制
不论解码器handler 还是 编码器handler 即接收的消息类型必须与待处理的消息类型一致,否则该handler不会被执行在解码器进行数据解码时,需要判断缓存区(ByteBuf)的数据是否足够 ,否则接收到的结果和期望结果可能不一致。原创 2022-09-10 15:09:27 · 303 阅读 · 0 评论 -
Netty-编码和解码
编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码codec(编解码器) 的组成部分有两个:decoder(解码器)和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据Protobuf 是 Google 发布的开源项目,全称 Google Protocol Buffers,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。原创 2022-09-09 22:35:17 · 586 阅读 · 0 评论 -
Netty 通过WebSocket编程实现服务器和客户端长连接
利用WebSocketServerProtocolHandler 进行实现 其原理是利用101状态码讲http协议转换为websocket协议。//相当于channelReado ev收到服务器端会送的消息。//判断当前浏览器支不支持 websocket。//先判断webSocket是否创建好了。"当前浏览器不支持websocket"如有问题,欢迎指正!原创 2022-09-09 16:26:27 · 492 阅读 · 0 评论 -
Netty 心跳机制
如有问题,欢迎指正!原创 2022-09-08 21:05:48 · 134 阅读 · 0 评论 -
Netty-群聊系统
如有问题,欢迎指正!原创 2022-09-08 17:20:03 · 127 阅读 · 0 评论 -
Netty 核心模块组件
组成的双向链表,并且每个 ChannelHandlerContext 中又关联着一个 ChannelHandler • 入站事件和出站事件在一个双向链表中,入站事件会从链表 head 往后传递到最后一个入站的 handler,ChannelHandler 是一个接口,处理 I/O 事件或拦截 I/O 操作,并将其转发到其ChannelPipeline(业务处理链)中的下一个处理程序。ChannelHandler 本身并没有提供很多方法,因为这个接口有许多的方法需要实现,方便使用期间,可以继承它的子类。原创 2022-09-08 16:07:01 · 129 阅读 · 0 评论 -
Neety快速入门实例-HTTP服务
http原创 2022-09-08 14:47:14 · 258 阅读 · 0 评论 -
异步模型-Netty
异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的组件在完成后,通过状态、通知和回调来通知调用者。Netty 中的 I/O 操作是异步的,包括 Bind、Write、Connect 等操作会简单的返回一个ChannelFuture。调用者并不能立刻获得结果,而是通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知机制获得 IO 操作结果Netty 的异步模型是建立在 future 和 callback 的之上的。原创 2022-09-08 11:08:14 · 89 阅读 · 0 评论 -
Netty模型
Netty 主要基于主从 Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 Reactor。Netty 主要基于主从Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 Reactor。如有问题,欢迎指正!原创 2022-09-08 09:53:28 · 610 阅读 · 0 评论 -
Netty 线程模型介绍
目前存在的线程模型有:传统阻塞 I/O 服务模型Reactor 模式根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现• 单 Reactor 单线程;• 单 Reactor 多线程;• 主从 Reactor 多线程Netty 线程模式(Netty 主要基于主从 Reactor 多线程模型做了一定的改进,其中主从Reactor 多线程模型有多个 Reactor单 Reactor 单线程,前台接待员和服务员是同一个人,全程为顾客服。原创 2022-09-07 14:53:18 · 115 阅读 · 0 评论 -
Netty初始
Netty 对 JDK 自带的 NIO 的 API 进行了封装,解决了上述问题。官网:https://netty.io/如有问题,欢迎指正!原创 2022-09-07 11:29:48 · 107 阅读 · 0 评论 -
NIO与零拷贝
零拷贝是网络编程的关键,很多性能优化都离不开。在 Java 程序中,常用的零拷贝有 mmap(内存映射) 和 sendFile。那么,他们在OS 里,到底是怎么样的一个的设计?我们分析 mmap 和 sendFile 这两个零拷贝另外我们看下NIO 中如何使用零拷贝。原创 2022-09-07 11:05:32 · 107 阅读 · 0 评论 -
NIO实现简单群聊系统
如有问题,欢迎指正!原创 2022-08-31 17:35:05 · 116 阅读 · 0 评论 -
selector
Java 的 NIO,用非阻塞的 IO 方式。可以用一个线程,处理多个的客户端连接,就会使用到Selector(选择器)Selector 能够检测多个注册的通道上是否有事件发生(注意:多个Channel以事件的方式可以注册到同一个Selector),如果有事件发生,便获取事件然后针对每个事件进行相应的处理。这样就可以只用一个单线程去管理多个通道,也就是管理多个连接和请求。【示意图】...原创 2022-08-26 16:41:52 · 237 阅读 · 0 评论 -
Channel
NIO的通道类似于流,但有些区别如下:• 通道可以同时进行读写,而流只能读或者只能写• 通道可以实现异步读写数据• 通道可以从缓冲读数据,也可以写数据到缓冲BIO 中的 stream 是单向的,例如 FileInputStream 对象只能进行读取数据的操作,而 NIO 中的通道(Channel)是双向的,可以读操作,也可以写操作。Channel在NIO中是一个接口public interface Channel extends Closeable{}...原创 2022-08-26 11:12:36 · 112 阅读 · 0 评论 -
Buffer
缓冲区(Buffer):缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个容器对象(含数组),该对象提供了一组方法,可以更轻松地使用内存块,,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况。Channel 提供从文件、网络读取数据的渠道,但是读取或写入的数据都必须经由 Buffer。原创 2022-08-25 15:51:17 · 204 阅读 · 0 评论 -
Java BIO
Java BIO 就是传统的java io 编程,其相关的类和接口在 java.ioBIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器)。【后有应用实例】BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,程序简单易理解。原创 2022-08-24 16:04:51 · 383 阅读 · 0 评论 -
Netty(一)
Java AIO(NIO.2) : 异步非阻塞,AIO 引入异步通道的概念,采用了 Proactor 模式,简化了程序编写,有效的请求才启动线程,它的特点是先由操作系统完成后才通知服务端程。Java NIO : 同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理。I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。如有问题,欢迎指正!原创 2022-08-22 10:07:10 · 55 阅读 · 0 评论