Netty源码分析系列之二:为什么选择Netty

简介: 本文主要介绍了使用Netty的好处与原因,它支持的协议越来越多,紧随JDK更新。从下文开始我们要对Netty的使用以及源码进行介绍。

引言

通信框架其实有很多,再不济可以使用JDK NIO。为什么很多框架以及自己做项目开发的会使用Netty作为通信框架呢?本文将就此展开阐述。

  • 为什么不直接使用NIO
  • Netty现状
  • 总结


一、为什么不直接使用NIO

(1)Netty支持的功能比JDK NIO更多,如以下:

  • 支持多种常用的通信协议(HTTP、 WebSocket 、Protobuf、 Binary TCP |和UDP),不需要自己实现相关协议的编解码;
  • 解决网络传输问题,如半包、粘包现象;
  • 完善的异常处理,如断连重试等;
  • 实现更多的定制功能,如流量控制,黑白名单等;

(2)Netty规避了很多JDK NIO存在的Bug

(3)Netty框架中的相关实现API更加友好以及易用;

(3)Netty框架屏蔽了底层通信实现细节,兼容JDK NIO的版本变化;


二、Netty现状

NettyGithub地址:Netty

目前使用的版本是4.1版本,4.1支持Android。

使用Netty的框架:

  • Spark
  • RocketMQ
  • ElasticSearch
  • Dubbo
  • Zookepper
  • Spring5


三、Netty特性

四、总结

本文主要介绍了使用Netty的好处与原因,它支持的协议越来越多,紧随JDK更新。从下文开始我们要对Netty的使用以及源码进行介绍。

相关文章
|
3月前
|
传感器 物联网 微服务
Netty的源码分析和业务场景
【8月更文挑战第2天】Netty 是一款高性能的异步事件驱动网络框架,其源码深邃且复杂。通过采用Reactor模式与主从多线程设计,Netty能高效处理网络事件。例如,`NioEventLoop`负责I/O事件及任务执行,内置线程循环机制。内存管理方面,Netty提供高效内存池与`ByteBuf`类来减少开销并优化内存操作。在业务场景上,Netty广泛应用于分布式系统、微服务架构中的高效通信,以及实时通信场景如在线游戏和直播中的大量并发连接处理,同时也在物联网领域发挥重要作用,确保设备与服务器间稳定快速的数据传输。
|
3月前
|
网络协议 大数据 Linux
Netty的源码分析和业务场景
通过深入分析 Netty 的源码和理解其在不同业务场景下的应用,开发者可以更好地利用这一强大的网络编程框架,构建高效、稳定且可扩展的网络应用。
222 1
|
6月前
|
监控 网络协议 调度
Netty Review - 深入探讨Netty的心跳检测机制:原理、实战、IdleStateHandler源码分析
Netty Review - 深入探讨Netty的心跳检测机制:原理、实战、IdleStateHandler源码分析
411 0
|
编解码 前端开发 Java
源码分析Netty:核心组件及启动过程分析
本篇从实例出发,了解Netty核心组件的概念、作用及串联过程。从概念到设计原理,再到深入了解实现细节,从而能够清晰地掌握Netty的技术细节甚至存在的问题,才能最终更好地支持我们实际的各项业务。
349 0
|
负载均衡 算法 Java
Netty源码分析系列之五:Netty多线程模型
本文主要介绍了Netty的多线程模型,它采用的是Reactor模型。处理连接请求与处理IO操作的线程隔离。基于事件轮询监听,不断获取处于就绪状态的通道。其中Boss线程池的线程负责处理连接请求,接收到accept事件之后,将对应的socket进行封装生成NioSocketChannel对象,并将其提交到workBoss线程池中,处理IO的read以及write事件。
Netty源码分析系列之五:Netty多线程模型
|
Java API 调度
Netty组件EventLoopGroup和EventLoop源码分析
Netty组件EventLoopGroup和EventLoop源码分析
74 0
|
监控 网络协议 Java
Netty源码分析之NIO
Socket是两台主机之间逻辑连接的端点。TCP/IP是传输层协议,定义数据如何在忘了中进行传输。HTTP是应用成协议,主要用来定义规范,包装数据,方便数据处理。Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。
165 0
|
网络协议 API 调度
Netty「源码分析」之 Idle 检测
Netty「源码分析」之 Idle 检测
217 0
|
安全 Java
Netty「源码阅读」之 EventLoop 简单介绍到源码分析
Netty「源码阅读」之 EventLoop 简单介绍到源码分析
212 0
|
网络协议 Java 程序员
Netty源码分析(一) backlog 参数
Netty源码分析(一) backlog 参数
300 0