小知识及原理图(一)

netty 

netty版本大致版本分为  netty3.x  和  netty4.x、netty5.x
netty可以运用在那些领域?
1分布式进程通信
例如: hadoop、dubbo、akka等具有分布式功能的框架,底层RPC通信都是基于netty实现的,这些框架使用的版本通常都还在用netty3.x
2、游戏服务器开发
最新的游戏服务器有部分公司可能已经开始采用netty4.x 或 netty5.x

1、netty服务端hello world案例
SimpleChannelHandler 处理消息接收和写
{
 messageReceived接收消息
 channelConnected新连接,通常用来检测IP是否是黑名单
 channelDisconnected链接关闭,可以再用户断线的时候清楚用户的缓存数据等
}
2、netty客户端hello world案例
channelDisconnected与channelClosed的区别?
channelDisconnected只有在连接建立后断开才会调用
channelClosed无论连接是否成功都会调用关闭资源



1、一个NIO是不是只能有一个selector?
不是,一个系统可以有多个selector
2、selector是不是只能注册一个ServerSocketChannel?
不是,可以注册多个

1、如何去看一个开源的系统框架
一断点
二打印
三看调用栈
四搜索



一个thread + 队列 == 一个单线程线程池   =====> 线程安全的,任务是线性串行执行的

线程安全,不会产生阻塞效应 ,使用对象组
线程不安全,会产生阻塞效应, 使用对象池

netty之心跳
1、学习idleStateHandler
用来检测会话状态

2、心跳其实就是一个普通的请求,特点数据简单,业务也简单

心跳对于服务端来说,定时清除闲置会话inactive(netty5) channelclose(netty3)

心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!

小知识及原理图(一)小知识及原理图(一)小知识及原理图(一)小知识及原理图(一)