栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【1. Netty简介】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【1. Netty简介】

1. 什么是Netty

Netty是由JBOSS提供的一个Java开源通讯框架,用以快速开发高性能,高可靠的网络IO程序。它底层很好的封装了Socket,处理网络通讯的一个开源通讯框架。通俗的说,Netty就是解决两个系统之间互相通信的一个框架。

在Java领域Netty被广泛的应用,Tomcat,Dubbo,RocketMQ,Zookeeper,ElasticSearch等等这些中间件的网络通讯框架都是Netty实现的。

其中Netty只是对Java原生的通讯框架进行了高度的封装,如下图所示:

2. 市场占比

在Java语言中Netty基本上是一只独大,涉及到网络停训基本上都是使用Netty,很少去直接使用NIO或者或者其它类似的第三方框架,目前和 Netty 同一级别的框架主要是 mina,其实 mina 和 Netty 都是同一个人开发的,Netty 比 mina 更晚出现,因此推荐 Netty。

相比 mina 那么 Netty 的优势是什么呢?

1. Mina 将内核和一些特性的联系过于紧密,使得用户在不需要这些特性的时候无法脱离,相比之下性能会有所下降,Netty 解决了这个设计问题;

2.Netty 的文档更清晰,很多 Mina 的特性在 Netty 里都有;

3.Netty 比 Mina 使用起来更简单,上手只需要掌握模板代码 + 自定义 Handler 即可;

4. 它们的架构差别不大,Mina 靠 apache 生存,而 Netty 靠 jboss。Netty 有对 google protocal buf 的支持,有更完整的 IOC 容器支持。

# 3. Netty的特性

特性说明
完美设计基于灵活、可扩展的事件驱动模型,可以灵活切换底层的线程模型、IO 模型等
高性能高吞吐量、低延迟,尽量减少不必要的内存拷贝
健壮性1. 消除由于慢,快,或重载连接产生的 OutOfMemoryError;2. 消除经常发生在 NIO 在高速网络中的应用中的不公平的读 / 写比
易用性1. 完善的文档;2. 活跃的社区;3. 简单的 API 让开发者能够快速入门
内置功能1. 支持多种协议;2. 内置很多的编解码器;3. 内置很多的拆包器
心跳检测I/O 超时和 idle 状态检测
安全性1. 解决了 NIO 存在的空轮询问题;2. 更可靠的 OutOfMemoryError 预防;3. 应用程序的关闭更简单,更安全

4. Netty版本

目前 Netty 主要有三个大的版本

3.x 版本;4.x 版本;5.x 版本;三大版本的差异比较大,目前项目开发的主流版本是 4.x,因此也建议大家主要学习 4.x 这个版本。

5. 为什么要学习Netty
    掌握 Netty 及其原理,可以为自己找工作、面试时加分。并且让自己的技能得到进阶,是初中级迈向高级的门槛;有助于学习和理解主流中间件的架构思想,很多的中间件都是基于 Netty 去开发的,比如:Dubbo;Netty 用来系统网络通信功能,是系统的基石,往往决定一个系统的性能,能否扛得住并发;对于学习和理解分布式架构会有很大的帮助,分布式架构下最核心环节就是应用之间的通讯。

6.学习基础

Netty 非常的复杂,不建议刚参加工作的同学直接学习它,这样会给自己在学习上增加难度。

列举一些学习 Netty 之前最好先掌握的技术点:

    掌握多线程、线程池的使用;掌握传统 IO(BIO)的使用,以及了解网络 IO 和磁盘 IO 的基本使用;掌握 Socket 的客户端和服务端之间通讯实现,了解其缺点是什么;掌握 NIO 的思想,和 BIO 比较 NIO 的优势以及如何基于 NIO 去操作磁盘文件和网络通讯,核心组件 Buffer、Channel、Selector 的使用;掌握什么是直接缓冲区、非直接缓冲区、零拷贝;掌握什么是序列化,序列化的原理、常用技术;了解 TCP 协议、Http 协议之间的联系、大概原理;了解 IO 的多路复用大致原理,Epoll 的大概原理;了解什么是长连接、短连接的概念和区别,以及它们的应用场景。
7.疑惑?

1. 什么是内存拷贝?

2. NIO 存在的空轮询问题?

3. IO 的多路复用大致原理?

4. Epoll 的大概原理?

5. 什么是长连接、短连接的概念和区别,以及它们的应用场景?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771158.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号