当前位置: 首页 > news >正文

Netty学习(一):Netty概述

一、原生NIO存在的问题

  1. NIO 的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。
  2. 需要具备其他的额外技能:要熟悉Java 多线程编程,因为NIO编程涉及到Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的NIO程序。
  3. 开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。
  4. JDK NIO 的 Bug:例如臭名昭著的 Epoll Bug,它会导致Selector 空轮询,最终导致CPU 100%。直到JDK 1.7版本该问题仍旧存在,没有被根本解决。

二、netty官网的说明

        官网:https://netty.io/

        官网对于netty的说明:

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

        官网提供的netty结构图:

 

三、netty的优点

        Netty 对JDK自带的NIO 的API进行了封装,解决了上述问题。

        它的优点:

  1. 设计优雅:适用于各种传输类型的统一API阻塞和非阻塞Socket;基于灵活且可扩展的事件模型,可以清晰地分离关注点;高度可定制的线程模型–单线程,一个或多个线程池
  2. 使用方便:详细记录的Javadoc,用户指南和示例;没有其他依赖项,JDK5(Netty 3.x)或6(Netty 4.x)就足够了。
  3. 高性能、吞吐量更高:延迟更低;减少资源消耗;最小化不必要的内存复制
  4. 安全:完整的SSL/TLS和 StartTLS支持
  5. 社区活跃、不断更新:社区活跃,版本迭代周期短,发现的 Bug 可以被及时修复;同时,更多的新功能会被加入
http://www.lryc.cn/news/24736.html

相关文章:

  • 【论文精读】Benchmarking Deep Learning Interpretability in Time Series Predictions
  • 自己第一次在虚拟机完整部署ssm项目心得体会
  • 操作系统权限提升(二十二)之Linux提权-SUDO滥用提权
  • 操作系统权限提升(二十四)之Linux提权-明文ROOT密码提权
  • Linux基本命令复习-面试急救版本
  • 随想录二刷Day09——字符串
  • 正点原子IMX6ULL开发板-liunx内核移植例程-uboot卡在Starting kernel...问题
  • 使用手工特征提升模型性能
  • 【运维有小邓】Oracle数据库审计
  • JDK下载安装与环境
  • FPGA纯verilog代码实现4路视频缩放拼接 提供工程源码和技术支持
  • Spark on YARN运行过程,YARN-Client和YARN-Cluster
  • NLP中一些工具列举
  • 面试官:给你一段有问题的SQL,如何优化?
  • 嵌入式 Linux 文件IO操作
  • 植物大战 二叉搜索树——C++
  • [MatLab]矩阵运算和程序结构
  • 【Leedcode】栈和队列必备的面试题(第四期)
  • Windows Server 2016搭建文件服务器
  • 零基础学SQL(十一、视图)
  • web,h5海康视频接入监控视频流记录三(后台node取流)
  • 网络安全从入门到精通:30天速成教程到底有多狠?你能坚持下来么?
  • 世界上最流行的编程语言,用户数超过Python,Java,JavaScript,C的总和!
  • 杂谈:created中两次数据修改,会触发几次页面更新?
  • 原生JS实现拖拽排序
  • Coredump-N: corrupted double-linked list
  • 5个好用的视频素材网站
  • 使用码匠连接一切|二
  • 3.1.1 表的相关设计
  • Vue3 企业级项目实战:认识 Spring Boot