导读
原创文章,转载请注明出处。
本文源码地址:netty-source-code-analysis
为什么用netty?因为dubbo、sofa-rpc、rocketMQ、jetty等知名的的项目都在用,就是这么简单。平时我们在遇到技术难题的时候,第1个想法是什么呢:看看别人怎么搞的。我们在和同事争论技术方案的时候,最常说的一句话是什么:XXX(某知名框架/某知名公司)也是这么做的。思路没问题,看看别人怎么做的,尤其是知名权威的项目/公司是怎么做的,借鉴一下,这是最快速的解决问题的方式。
1 用netty 写个NIO Hello World
1.1 netty版本的NIO服务端
/**
* 欢迎关注公众号“种代码“,获取博主微信深入交流
*
* @author wangjianxin
*/
public class HelloNettyServer {
public static void main(String[] args) throws InterruptedException {
//相当于com.zhongdaima.netty.analysis.part0.jdk.nio.NioServerConnector中的线程
EventLoopGroup boss = new NioEventLoopGroup(1);
//相当于com.zhongdaima.netty.analysis.part0.jdk.nio.NioServerHandler中的线程
EventLoopGroup worker = new NioEventLoopGroup(1);
ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap.group(boss, worker)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<NioSocketChannel>() {
@Override
protected void initChannel(NioSocketChannel ch) throws Exception {
ch.pipeline().