1.0 Netty简介

2017-01-02 22:07:02 55,536 0

  Netty是由JBOSS提供的一个开源的java网络编程框架,主要是对java的nio包进行了再次封装。Netty比java原生的nio包提供了更加强大、稳定的功能和易于使用的api。 netty的作者是Trustin Lee,这是一个韩国人,他还开发了另外一个著名的网络编程框架,mina。二者在很多方面都十分相似,它们的线程模型也是基本一致 。不过netty社区的活跃程度要mina高得多。

Netty的应用案例:

apache storm ,这是一个分布式实时计算框架

logo.png

hadoop,其RPC框架Avro就使用了Netty作为底层通信框架

hadoop-logo.jpg

apache rocketmq,这是阿里巴巴的一个消息中间件,现在已经捐赠给apache了

68747470733a2f2f6173736574732d63646e2e6769746875622e636f6d2f696d616765732f69636f6e732f656d6f6a692f756e69636f64652f31663638302e706e67.png


apache dubbo,这是阿里巴巴开发的一个SOA服务治理框架

...


Netty版本选择

3.x 目前企业使用最多的版本,最为稳定。例如dubbo使用的就是3.x版本

4.x 引入了内存池等重大特性,可以有效的降低GC负载,rocketmq使用的就是4.x

5.x 已经被废弃了,具体可参见https://github.com/netty/netty/issues/4466


本教程使用4.1.22.Final进行讲解,最后会补充一些3.x的内容

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.22.Final</version>
</dependency>