
netty
一直学习一直爽
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
nio回顾
在nio中是面向块(block)或者缓冲区(buffer)编程的, selector(是一个线程) :这个线程可以对channel进行来回切换(通过事件来决定) channel (可以将nio中的channel理解成io中的stream):指的是可以向其中写入对象或者读取对象, 但是所有数据的读写都是通过buffer来进行的,永远不会出现直接向channel写如数据的情况或者从Channel读取数...原创 2019-04-22 18:43:50 · 155 阅读 · 0 评论 -
netty注册流程
//1. // 2 //3 ChannelFuture regFuture = config().group().register(channel); if (regFuture.cause() != null) { if (channel.isRegistered()) { ...原创 2019-05-16 14:19:13 · 529 阅读 · 0 评论 -
serverBootstrap.bind(8899)
public ChannelFuture bind(SocketAddress localAddress) { validate(); //1 if (localAddress == null) { throw new NullPointerException("localAddress"); } ret...原创 2019-05-10 18:30:07 · 480 阅读 · 0 评论 -
ChannelPipeline
//Channel是socket的连接点 public interface Channel extends AttributeMap, ChannelOutboundInvoker, Comparable<Channel> 所有的事件都是由channelPiple来处理的,具体的实现是EventHandler,channelPiple将netty中若干的EventHandler组合...原创 2019-05-15 15:59:33 · 540 阅读 · 0 评论 -
Future
public interface Future<V> extends java.util.concurrent.Future<V> 等待future的完成 Future<V> sync() throws InterruptedException; 监视 /** * Listens to the result of a {@link Future}....原创 2019-05-10 17:34:46 · 235 阅读 · 0 评论 -
EventLoopGroup
EventLoopGroup bossGroup=new NioEventLoopGroup();//接收客户端连接转发到worker EventLoopGroup workerGroup=new NioEventLoopGroup();//真正处理业务逻辑 package io.netty.channel; import io.netty.util.concurrent.Ev...原创 2019-05-14 15:04:30 · 451 阅读 · 0 评论 -
nettybuffer内存分配
AdaptiveRecvByteBufAllocator.class static final int DEFAULT_MINIMUM = 64; static final int DEFAULT_INITIAL = 1024; static final int DEFAULT_MAXIMUM = 65536; private static final int...原创 2019-05-14 14:29:21 · 361 阅读 · 0 评论 -
Reactor模式
Reactor模式(反应器模式)分发恰当的handler来对io event 进行response(netty中的assetExtension就是一个Reactor) 客户端向Reactor线程发起连接,然后Reactor线程将客户端的请求派发给其他xia线程进行请求,在其他请求中完成解码。计算,编码,响应等 Proactor模式 netty整体架构是Reactor模式的体现 ...原创 2019-05-13 17:48:44 · 200 阅读 · 0 评论 -
netty的长连接
websocket是解决http协议的缺陷 http协议是无状态基于请求和响应的协议 这种无状态的协议会出现一种问题,无法知道请求来自于哪个客户端,所以用cookie和session或者redis解决这种问题 服务端收到客户端的请求会进行处理,比如servlet的doget和dopost,处理完之后服务端就会构造出响应对象,response响应给客户端, 如果是基于http1.0的话,短连接,连接...原创 2019-04-19 22:14:05 · 1519 阅读 · 0 评论 -
(四)netty建立连接的心跳检测
public class IdleStateHandler extends ChannelDuplexHandler netty 提供了 IdleStateHandler 类来对连接进行心跳检测,防止建立的无用长连接占用系统资源 public IdleStateHandler( //读的时间 int readerIdleTimeSeconds, ...原创 2019-04-18 19:25:12 · 271 阅读 · 0 评论 -
(二)第二个netty程序(使用netty的websocket)
先创建server public class MyServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup bossGroup=new NioEventLoopGroup(); EventLoopGroup workerGroup...原创 2019-04-18 18:45:08 · 119 阅读 · 0 评论 -
第一个netty程序(使用netty进行http开发)
学习目的:了解netty服务器端的基本构建过程 public class TestServer { public static void main(String[] args) throws InterruptedException { //事件循环组 两个死循环 EventLoopGroup bossGroup =new NioEve...原创 2019-04-18 16:04:52 · 332 阅读 · 0 评论 -
netty学习(学习大纲)
Netty介绍 netty架构实现 Netty模块分析 Netty Http Tunnel Netty对socket的实现 Netty压缩与解压缩 Netty对于RPC的支援 WebSocket实现与原理分析 WebSocket连接建立方式与生命周期分解 WebSocket服务端与客户端开发 RPC框架分析 Google Prtobuf使用方式分析 Apache Thirft使用方式与文件编写方...原创 2019-04-18 13:40:28 · 309 阅读 · 0 评论 -
netty中的Future
ChannelFuture() 和 ChannelPromise(可写入的 setsuccess)区别 JDKFuture只能通过手工方式检查执行结果,而这个结果是阻塞的, netty对ChanelFuture增强,通过addListener以回调的方式执行结果,去除了手工检查阻塞的操作, Future 是如何知道他里面的异步操作执行完了: 通过Promise的setSuccess方法 适配器模...原创 2019-05-23 13:21:18 · 268 阅读 · 0 评论