最近实现服务端证书管理功能,就此分析关键功能点:
1、服务端手动生成客户端证书
2、服务端监听客户端Connect
3、客户端Connect 服务端并上传本地检测证书信息
4、服务端验证Client端信息是否下发
选型Netty 原因主要以下几点:
1、高性能高扩展的架色设计,大部分情况下只需关注业务本身
2、长连接心跳机制
3、Zero-Copy 技术尽量减少内存拷贝
简介
Netty和Mina是Java世界非常知名的通讯框架。它们都出自一个作者,Mina诞生略早,属于Apache基金会,而
Netty开始在Jboss名下,后来出来自产门户netty.io。
纵览Netty组件
EventLoopGroup实际上就是一个线程池
NioEventLoopGroup非阻塞线程池
Bootstrap:ChannelFactory, ChannelPipeline, ChannelPipeFactory
初如化Channel的辅助类
ServerBootstrap:bind()
创建服务端的Channel的辅助类,接受Connection的请求
Handler:处理器
Future or ChannelFutre:
在Netty中所有的IO操作都是异步的,因此,你不能立刻得知消息是否被正确处理,但是我们可以过一会等它执行完成或者直接注册一个监听,
具体的实现就是通过Futrue和ChannelFutures,他们可以注册一个监听,当操作执行成功或失败时监听会自动触发。总之,所有的操作都会返回一个
ChannelFuture.
Channel:代表一个Socket链接,或者其它和IO操作相关的组件,它和EventLoop一起用来参与IO处理。
EventLoops的目的是为Channel处理IO操作,一个EventLoop可以为多个Channel服务。
ChannelInboundHandler, 一个最常用的Handler.这个Handler的作用