Netty
- [P1 Netty-导学](#P1 Netty-导学)
-
- 分布式
-
-
- [网络返回 异步结果](#网络返回 异步结果)
- [dubbo rabbitmq](#dubbo rabbitmq)
- [test 测试案例](#test 测试案例)
- [多线程 日志](#多线程 日志)
-
- 第1章_01_nio三大组件-channel-buffer
-
-
-
- [网络编程 框架](#网络编程 框架)
- [jdk 1.4 之后才有 nio这个 API](#jdk 1.4 之后才有 nio这个 API)
- [Channel 数据传输通道 (双向)](#Channel 数据传输通道 (双向))
- [Buffer 内存缓冲区 (暂存Channel 的 数据)](#Buffer 内存缓冲区 (暂存Channel 的 数据))
-
-
- [P3 第1章_02_nio三大组件-服务器设计-多线程版](#P3 第1章_02_nio三大组件-服务器设计-多线程版)
-
-
-
- Selector
- [服务器 端 应用开发](#服务器 端 应用开发)
- [线程数 的 前提条件 CPU (执行线程的)](#线程数 的 前提条件 CPU (执行线程的))
-
-
- [P4 第1章_03_nio三大组件-服务器设计-线程池版](#P4 第1章_03_nio三大组件-服务器设计-线程池版)
-
-
-
- [线程池 控制 最大线程数量 (解决 太多 线程 出现)](#线程池 控制 最大线程数量 (解决 太多 线程 出现))
-
-
- [P5 第1章_04_nio三大组件-服务器设计-selector版](#P5 第1章_04_nio三大组件-服务器设计-selector版)
-
- [channel (通道) 事件](#channel (通道) 事件)
- 非阻塞模式
- [P6 第1章_05_bytebuffer-基本使用](#P6 第1章_05_bytebuffer-基本使用)
-
- [Channel 数据读写通道](#Channel 数据读写通道)
-
- [获得 Channel](#获得 Channel)
- [静态 获得 一个 缓冲区 (划分内存)](#静态 获得 一个 缓冲区 (划分内存))
- [从channel 读取数据](#从channel 读取数据)
-
- [加入 lombok 日志记录器](#加入 lombok 日志记录器)
- [P7 第1章_06_bytebuffer-内部结构](#P7 第1章_06_bytebuffer-内部结构)
-
- [bytebuffer 内部结构](#bytebuffer 内部结构)
- [P8 第1章_07_bytebuffer-方法演示](#P8 第1章_07_bytebuffer-方法演示)
P1 Netty-导学
分布式
数据库 消息队列 二进制框架
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-方法演示