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


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

    本小节目录


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



    1. Netty为什么火得屌炸天?

    1.1. Netty是什么?


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

    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是异步的。

    作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。

    Netty的优点可以总结如下

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

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

    3、定制能力强,可以通过ChannelHandler对通信框架进行灵活地扩展;

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

    5、成熟、稳定,Netty修复了已经发现的所有JDK NIO BUG,业务开发人员不需要再为NIO的BUG而烦恼;

    6、社区活跃,版本迭代周期短,发现的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群


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


  • 相关阅读:
    # MYSQL 8.0 远程 clone
    MySQL-07-备份恢复
    迁移表空间
    2. MYSQL 数据库的介绍安装
    Percona Xrabackup 应用
    4.2.5 案例:通过mysqldump全备+binlog实现PIT数据恢复
    Mysql Innodb 表碎片整理
    关于_vsnprintf
    算法:华为面试代码题
    platform设备驱动框架
  • 原文地址:https://www.cnblogs.com/crazymakercircle/p/9832384.html
Copyright © 2020-2023  润新知