Netty环境搭建 (源码死磕2)

【正文】netty源码  死磕2: 环境搭建linux

本小节目录


1. Netty为何火得屌炸天?
1.1. Netty是什么?
1.2. Netty火到什么程度呢?
1.3. Netty为何这么火?
2. Netty是面试的必杀器吗?
3. 获取源码的注意事项
4. Netty工程
5. 运行 examplegit



1. Netty为何火得屌炸天?

1.1. Netty是什么?


Netty是JBOSS提供的一个Java开源框架NIO框架,用以快速开发高并发、高可用、高可靠性的网络服务器程序,和也能开发高可用、高可靠客户端程序。github

1.2. Netty火到什么程度呢?


Netty已经获得成百上千的分布式中间件、开源项目、商业项目的应用。好比火爆的kafka、RocketMQ等消息中间件。如火热火热的ElasticSearch开源搜索引擎,都使用了Netty。如大数据处理Hadoop的RPC框架Avro以及主流的分布式通讯框架Dubbo,都使用了Netty。面试

应该来讲,使用Netty的火爆项目,已经有点数不过来了..........编程


1.3. Netty为何这么火?


Netty提供异步的、事件驱动的网络应用程序框架和工具,相比JDK原生NIO,Netty提供了相对十分简单易用的API,很是适合网络编程。Netty是彻底基于NIO实现的,因此Netty是异步的。windows

做为一个异步NIO框架,Netty的全部IO操做都是异步非阻塞的,经过Future-Listener机制,用户能够方便的主动获取或者经过通知机制得到IO操做结果。服务器

Netty的优势能够总结以下网络

一、API使用简单,开发门槛低;并发

二、功能强大,预置了多种编解码功能,支持多种主流协议;框架

三、定制能力强,能够经过ChannelHandler对通讯框架进行灵活地扩展;

四、性能高,经过与其余业界主流的NIO框架对比,Netty的综合性能最优;

五、成熟、稳定,Netty修复了已经发现的全部JDK NIO BUG,业务开发人员不须要再为NIO的BUG而烦恼;

六、社区活跃,版本迭代周期短,发现的BUG能够被及时修复,同时,更多的新功能会加入;


2. Netty是面试的必杀器吗?


Netty 是互联网中间件领域使用最普遍最核心的网络通讯框架。几乎全部互联网中间件或者大数据领域均离不开 Netty,掌握 Netty 是做为一名初中级工程师迈向高级工程师最重要的技能之一。

目前来讲,主要的互联网公司,好比阿里、腾讯、美团、新浪、淘宝等,在高级工程师的面试过程当中,也常常会问一些高性能通信框架的方面的问题,还会问一些“你有没有读过什么著名框架的源代码?”等相似的问题。

若是掌握了Netty 相关的技术问题,更进一步说,若是你能全面地阅读和掌握 Netty源码,相信面试大公司时,底气十足,成功在握。

闲话少说,进入正题。

代码研究以前,第一步就是要准备环境。


3. 获取源码的注意事项


本系列博客中,以就拿github上的4.0分支进行。源码的获取有两种方式,一种是直接下载,一种是git clone。若是经过直接下载zip文件的方式获取4.0分支的代码的话,在编译的时候,有可能报错。

建议经过git的方式获取,命令以下:

git clone -b netty-4.0.33.Final --single-branch git@github.com:netty/netty.git

在git命令以前,若是是在windows环境,建议执行一条git换行符配置指令,命令以下:

git config --global  core.autocrlf  true

为何呢?

git上提交代码的人用的系统不同。有的人用windows,有的人用linux,两个系统对换行符的使用不同,windows下是/r/n,可是linux下换行是/n。使用git config指令配置以后,git会自动屏蔽换行符的差别。若是没有上面的指令,编译代码是,可能会有line endings的错误。


4. Netty工程


下载源码后,就能够打开netty工程。

使用IDEA工具,打开后,以下:

wpsAC46.tmp_thumb1

5. 运行 example


netty源码中,有不少example例子程序,在example目录下。


wpsAC57.tmp_thumb1

打开 example 目录, 运行下面的例子了。能够打开,而且运行最简单的例子 example 下的 EchoServer 例子。

wpsAC58.tmp_thumb1


运行例子以前,若是遇到 Maven 依赖下不全的问题, 能够刷新Maven依赖后,再运行。


疯狂创客圈


疯狂创客圈:若是说Java是一个武林,这里的汇集一群武痴, 交流编程体验心得
QQ群连接:
疯狂创客圈QQ群


无编程不创客,无案例不学习。 必定记得去跑一跑案例哦