【闪电侠学netty】第2章 Netty是什么

【Netty】读书笔记 - 跟闪电侠学

1. 内容概要

2.1 IO编程

1. 什么是IO编程?

  • Input Stream :数据从外面(磁盘、网络)流进内存
  • Output Stream:数据从内存流到外面去
  • IO编程内存和磁盘/网络交互数据的编程

2.2 NIO编程

1. 什么是NIO编程?

  • NIOnew input/output
IONIO
线程一个连接一个线程

两个(均在服务器端

serverSelector:轮询是否有新的连接

clientSelector:轮询连接是否有可读数据

读写面向流Stream面向Buffer
读写效率低:一次性只能从流中读取一个或多个字节:任意读取任何数据
缓存数据需要自己缓存无须缓存,移动指针读写


2.3 Netty编程

1. 什么是Netty?

  • 异步事件驱动网络应用架构
  • 封装JDK的NIO,使用更方便

2. Netty不使用原生NIO的原因?

  • 简易性:原生NIO需要了解概念太多,API反人类,编程复杂,易出错
  • Netty底层NIO和IO模型随意切换
  • 自带拆包/粘包,异常检测等机制,程序员只需关心业务逻辑
  • 解决JDK的BUG,如空轮询
  • Reactor线程模型高效的并发处理
  • 自带各种协议栈:无须自己实现
  • 社区活跃
  • 健壮性:经历各大RPC框架、消息中间件、分布式通讯中间件的广泛验证

3. netty maven依赖 + Java 快速入门

点击进入

2. 心得

  • Netty完美封装NIO,代码优雅
  • Netty几乎不用操心网络通讯性能问题,尽情地让Netty榨干你的CPU吧。这句话不理解,后面再更新这里的心得
posted @ 2023-01-17 09:16  随风落木  阅读(16)  评论(0)    收藏  举报  来源