Netty
- P1 Netty-导学
- 分布式
- 网络返回 异步结果
- dubbo rabbitmq
- test 测试案例
- 多线程 日志
- 第1章_01_nio三大组件-channel-buffer
- 网络编程 框架
- jdk 1.4 之后才有 nio这个 API
- Channel 数据传输通道 (双向)
- Buffer 内存缓冲区 (暂存Channel 的 数据)
- P3 第1章_02_nio三大组件-服务器设计-多线程版
- Selector
- 服务器 端 应用开发
- 线程数 的 前提条件 CPU (执行线程的)
- P4 第1章_03_nio三大组件-服务器设计-线程池版
- 线程池 控制 最大线程数量 (解决 太多 线程 出现)
- P5 第1章_04_nio三大组件-服务器设计-selector版
- channel (通道) 事件
- 非阻塞模式
- P6 第1章_05_bytebuffer-基本使用
- Channel 数据读写通道
- 获得 Channel
- 静态 获得 一个 缓冲区 (划分内存)
- 从channel 读取数据
- 加入 lombok 日志记录器
- P7 第1章_06_bytebuffer-内部结构
- bytebuffer 内部结构
- 读模式
- P8 第1章_07_bytebuffer-方法演示
P1 Netty-导学
https://www.bilibili.com/video/BV1py4y1E7oA?from=search&seid=380048128345779756&spm_id_from=333.337.0.0
分布式
数据库 消息队列 二进制框架
NIO
阻塞 非阻塞 同步 异步 多路复用
Netty
流水线
事件循环
高并发
网络返回 异步结果
dubbo rabbitmq
test 测试案例
多线程 日志
第1章_01_nio三大组件-channel-buffer
网络编程 框架
jdk 1.4 之后才有 nio这个 API
Channel 数据传输通道 (双向)
IO
输入流 数据 临时存储 在 内存中
输出流
单向
Buffer 内存缓冲区 (暂存Channel 的 数据)
应用程序 — 文件 — 网络 之间的 桥梁
文件
UDP
TCP
(服务器)
- 字节 缓冲区 (抽象类)(实现类)
- 不同数据类型 缓冲区
P3 第1章_02_nio三大组件-服务器设计-多线程版
Selector
服务器 端 应用开发
客户端 建立连接 Socket 读写操作 新的线程
输入流 读
输出流 写
- 1M 内存 1000 连接 1G
- 内存 容易溢出
线程数 的 前提条件 CPU (执行线程的)
eg:16h 同时跑 16线程 其他 等待(记录保存 )
P4 第1章_03_nio三大组件-服务器设计-线程池版
线程池 控制 最大线程数量 (解决 太多 线程 出现)
可以处理 多客户端的 操作 但 有限制
- 利用率 不高
- 适合短连接 HTTP
P5 第1章_04_nio三大组件-服务器设计-selector版
channel (通道) 事件
- 可连接
- 可读
- 可写
非阻塞模式
- 利用率 高
- 连接数多 流量低(交互不频繁)
P6 第1章_05_bytebuffer-基本使用
- maven demo
lombok getset
gson json
guava 工具类 合集
logback 日志打印
Channel 数据读写通道
获得 Channel
new 一个 对象
资源释放 java7 的
将 channel关闭
静态 获得 一个 缓冲区 (划分内存)
可以 设置 容量 capacity 字节
从channel 读取数据
buffer get 无参 读 一个 字节
- 所以 要 分 多次 读取
加入 lombok 日志记录器
P7 第1章_06_bytebuffer-内部结构
bytebuffer 内部结构
像数组结构
容量 capacity
指针位置 索引下标 position
限制 limit
读模式
P8 第1章_07_bytebuffer-方法演示