netty
我会努力变强的
这个作者很懒,什么都没留下…
展开
-
基于Netty的RPC框架
概述RPC(Remote Procedure Call),远程过程调用,是一个计算机通信协议,该协议允许运行一个进程调用另一个进程,而程序员无需额外为这个交互作用编程。两个或者多个应用程序分布在不同的服务器上,他们之间的调用在客户端看来,就跟调用本地方法一样。场景的RPC框架用阿里的dubbo、Google的gRPC,Apache的thrift、spring 的SpringCloud等。调用流程:clientsub是客户端本地调用的代理,ServerSub是服务端的代理。流程解释:服务消费原创 2020-12-30 17:20:35 · 690 阅读 · 2 评论 -
使用Netty编写一个简单的群聊系统
概述具体业务跟下面文章的一样,只是下面文章用的是NIO,这里使用Netty改造。https://blog.csdn.net/qq_40837310/article/details/111248486目的是为了熟悉Netty基本API使用。原创 2020-12-27 17:30:08 · 173 阅读 · 1 评论 -
Netty空闲心跳检测机制
概述Netty提供了一个读写空闲心跳检测机制的Handler,用于检测读空闲、写空闲、读写空闲。如果服务端在一定时间内没有执行读请求,就会触发读空闲事件,一定时间内没有执行写请求,就会触发写空闲事件,如果在一定时间内既没有执行读请求,也没有执行写请求,就会触发读写空闲事件。案例服务端:public class NettyHeartBeatServer { private int port; public NettyHeartBeatServer(int port){原创 2020-12-26 19:40:23 · 567 阅读 · 0 评论 -
Netty粘包拆包问题说明、演示拆包粘包情况代码以及解决
概述TCP传输协议是面向连接的,面向流提供高可靠的服务。收发两端(服务端和客户端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效地发给对方,使用了优化算法(Nagle算法),将多次间隔时间较小且数据较小的数据包,合成一个大的数据块,然后进行封包,这样做虽然提高了传输的效率,但是这样接收端就难以分辨出一个个完整的包的大小了,因为面向流的通信时无消息保护边界的。由于TCP无消息保护边界,需要在接收端处理消息边界问题,也就是粘包、拆包问题。示意图:说明:服务端给客户端发送原创 2020-12-26 19:05:16 · 504 阅读 · 1 评论 -
Netty核心组件 ChannelPipeline和ChannelHandler与ChannelHandler的入站出站规则
概述Netty中ChannelPipeline与Channel的对应关系是一一对应,也就是每个Channel中有且仅有一个ChannelPipeline,可以通过Channel获取唯一的ChannelPipeline,也可以通过ChannelPipeline获取唯一的Channel。由上图可得,每个Channel维护了一个ChannelPipeline,而ChannelPipeline中又维护了一个由ChannelHandlerContext组成的双向链表,这个链表的表头是HeadContext,链表原创 2020-12-25 17:49:26 · 595 阅读 · 1 评论 -
Netty核心模块组件
Bootstrap ServerBootstrapBootstrap的意思是引导,一个Netty应用通常由一个Bootstrap开始,主要作用是配置整个Netty程序,串联各个组件,Netty的Bootstrap是客户端的引导开始类,ServerBootstrap是服务端的引导开始类。常用的API有://该方法用于设置服务器端的BossGroup和WorkerGroup,第一个参数是BossGroup,第二个参数是WorkerGrouppublic ServerBootstrap group(Eve原创 2020-12-24 15:56:46 · 150 阅读 · 0 评论 -
Netty线程模型
概述前提:要对Reactor线程模型有比较好的理解才行。Netty主要基于主从Reactor多线程模型做了一定的改进,传统的是一主多从,这个是Netty是多主多从,可以有多个MainReactor。简单版说明:BossGroup是MainReactor组集合,为何selector,只关注IO的ACCEPT连接事件。相当于MainReactor组。WorkerGroup是SubReactor组集合,关注除ACCEPT以外的IO事件,比如READ、WRITE。当接收到ACCEPT事件后,得到对原创 2020-12-18 19:02:55 · 146 阅读 · 1 评论