随笔分类 -  Netty

摘要:文章链接:http://www.tianshouzhi.com/api/tutorials/netty/343 阅读全文
posted @ 2020-01-19 15:36 codedot 阅读(206) 评论(0) 推荐(0) 编辑
摘要:一、什么是Decoder和Encoder 在Netty里面,有四个核心概念,它们分别是: Channel:一个客户端与服务器通信的通道。 ChannelHandler:业务逻辑处理器, 通常情况下,业务逻辑都是存在于ChannelHandler之中。 ChannelInboundHandler:输入 阅读全文
posted @ 2020-01-19 14:53 codedot 阅读(2689) 评论(0) 推荐(0) 编辑
摘要:一、Future Netty的Future接口继承了JDK的Future接口,同时提供了更多的方法: 任务成功完成后isSuccess()返回true任务执行过程中有异常,cause()会返回异常对象任务被取消执行,父接口方法isCancelled返回true以上3种情况isDone()均为true 阅读全文
posted @ 2020-01-19 14:48 codedot 阅读(1314) 评论(0) 推荐(0) 编辑
摘要:Channel是Netty网络通信的主体,由它负责同对端进行网络通信、注册和数据操作等功能。 AbstractChannel是Channel的一个抽象类。 1) 通道状态主要包括:打开、关闭、连接2) 通道主要的IO操作,读(read)、写(write)、连接(connect)、绑定(bind)。3 阅读全文
posted @ 2020-01-19 14:45 codedot 阅读(1139) 评论(0) 推荐(0) 编辑
摘要:ChannelInitializer的类图: 通道初始化器ChannelInitializer实际上为Inbound通道处理器,主要目的是为程序员提供了一个简单的工具,用于在某个Channel注册到EventLoop后,对这个Channel执行一些初始化操作。ChannelInitializer虽然 阅读全文
posted @ 2020-01-19 14:39 codedot 阅读(3109) 评论(0) 推荐(0) 编辑
摘要:ChannelHandler类似于Servlet的Filter过滤器,负责对I/O事件或者I/O操作进行拦截和处理,它可以选择性地拦截和处理自己感兴趣的事件,也可以透传和终止事件的传递。基于ChannelHandler接口,用户可以方便地进行业务逻辑定制,例如打印日志、统一封装异常信息、性能统计和消 阅读全文
posted @ 2020-01-19 14:33 codedot 阅读(690) 评论(1) 推荐(1) 编辑
摘要:ChannelOption的各种属性在套接字选项中都有对应,下面简单的总结一下ChannelOption的含义已及使用的场景。 (1) ChannelOption.SO_BACKLOG ChannelOption.SO_BACKLOG对应的是tcp/ip协议listen函数中的backlog参数,函 阅读全文
posted @ 2020-01-19 11:44 codedot 阅读(1341) 评论(0) 推荐(0) 编辑
摘要:ChannelPipeline不是单独存在,它肯定会和Channel、ChannelHandler、ChannelHandlerContext关联在一起。 一、ChannelHandler ChannelHandler下主要是两个子接口: ChannelInboundHandler(入站): 处理输 阅读全文
posted @ 2020-01-19 11:35 codedot 阅读(769) 评论(0) 推荐(1) 编辑
摘要:ServerBootStrap是Netty服务端启动配置类,BootStrap是Netty客户端启动配置类。 一、BootStrap 绑定线程组,设置react模式的主线程池 以及 IO 操作线程池:group(bossGroup, workerGroup) channel(Class<? exte 阅读全文
posted @ 2020-01-19 10:56 codedot 阅读(5213) 评论(0) 推荐(2) 编辑
摘要:一、EventLoop和EventLoopGroup EventLoop如同它的名字,它是一个无限循环(Loop),在循环中不断处理接收到的事件(Event)。 Netty线程模型的基石是建立在EventLoop上的,从设计上来看,EventLoop采用了一种协同设计,它建立在两个基本的API之上: 阅读全文
posted @ 2020-01-19 10:54 codedot 阅读(7299) 评论(0) 推荐(0) 编辑
摘要:对手新手而言,莫过于项学习一个框架,但是苦于框架的API一点都不认识,看别人写代码,又看不懂,真痛苦。 本节就列举一下Netty的API: 线程组:NioEventLoopGroup 【 https://www.cnblogs.com/myitnews/p/12212796.html】 启动配置类: 阅读全文
posted @ 2020-01-19 10:43 codedot 阅读(907) 评论(2) 推荐(1) 编辑
摘要:Netty支持单线程、主线程模型、主从多线程模型。 我们在创建线程组的时候,如果不传递参数,则默认构建的线程组线程是CPU核心数量。 一、单线程模型 在ServerBootstrap调用方法group时,传递的参数是同一个线程组,且在构造线程组的时候,构造参数为1,这种开发方式,就是一个单线程模型。 阅读全文
posted @ 2019-09-01 10:11 codedot 阅读(356) 评论(0) 推荐(0) 编辑
摘要:maven创建project,引入依赖: 一、服务端程序 Handler处理逻辑: 二、客户端程序 Handler处理逻辑: 阅读全文
posted @ 2019-09-01 10:08 codedot 阅读(485) 评论(0) 推荐(0) 编辑
摘要:Netty是由JBOSS提供给的一个java开源框架。Netty提供异步的、事件驱动的网络应用框架和工具,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty在消息处理上使用责任链模式,用户可以轻松方便的对它进行扩展。官方也提供了大量的优秀的扩展。 也就是说,Netty是一个基于NIO的客 阅读全文
posted @ 2019-08-31 16:46 codedot 阅读(2710) 评论(0) 推荐(1) 编辑