开发知识点-Java网络编程-Netty

开发知识点-Java网络编程-Netty_第1张图片

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

开发知识点-Java网络编程-Netty_第2张图片

分布式

数据库 消息队列 二进制框架

NIO
阻塞 非阻塞 同步 异步 多路复用

Netty
流水线
事件循环
高并发

网络返回 异步结果

开发知识点-Java网络编程-Netty_第3张图片

开发知识点-Java网络编程-Netty_第4张图片
开发知识点-Java网络编程-Netty_第5张图片

dubbo rabbitmq
test 测试案例
多线程 日志

第1章_01_nio三大组件-channel-buffer

网络编程 框架

开发知识点-Java网络编程-Netty_第6张图片

jdk 1.4 之后才有 nio这个 API

开发知识点-Java网络编程-Netty_第7张图片

Channel 数据传输通道 (双向)

IO
输入流 数据 临时存储 在 内存中
输出流
单向

Buffer 内存缓冲区 (暂存Channel 的 数据)

应用程序 — 文件 — 网络 之间的 桥梁
开发知识点-Java网络编程-Netty_第8张图片
文件
UDP
TCP
(服务器)

开发知识点-Java网络编程-Netty_第9张图片

  • 字节 缓冲区 (抽象类)(实现类)
  • 不同数据类型 缓冲区

P3 第1章_02_nio三大组件-服务器设计-多线程版

开发知识点-Java网络编程-Netty_第10张图片

Selector

开发知识点-Java网络编程-Netty_第11张图片

服务器 端 应用开发

客户端 建立连接 Socket 读写操作 新的线程
输入流 读
输出流 写

开发知识点-Java网络编程-Netty_第12张图片

  • 1M 内存 1000 连接 1G
  • 内存 容易溢出
线程数 的 前提条件 CPU (执行线程的)

eg:16h 同时跑 16线程 其他 等待(记录保存 )

P4 第1章_03_nio三大组件-服务器设计-线程池版

开发知识点-Java网络编程-Netty_第13张图片

线程池 控制 最大线程数量 (解决 太多 线程 出现)

可以处理 多客户端的 操作 但 有限制
开发知识点-Java网络编程-Netty_第14张图片

  • 利用率 不高
  • 适合短连接 HTTP

P5 第1章_04_nio三大组件-服务器设计-selector版

开发知识点-Java网络编程-Netty_第15张图片
开发知识点-Java网络编程-Netty_第16张图片
开发知识点-Java网络编程-Netty_第17张图片
在这里插入图片描述

channel (通道) 事件

  • 可连接
  • 可读
  • 可写

非阻塞模式

  • 利用率 高
  • 连接数多 流量低(交互不频繁)

P6 第1章_05_bytebuffer-基本使用

开发知识点-Java网络编程-Netty_第18张图片
开发知识点-Java网络编程-Netty_第19张图片

  • maven demo

lombok getset
gson json
guava 工具类 合集
logback 日志打印

开发知识点-Java网络编程-Netty_第20张图片
开发知识点-Java网络编程-Netty_第21张图片

Channel 数据读写通道

获得 Channel

new 一个 对象
资源释放 java7 的
开发知识点-Java网络编程-Netty_第22张图片

将 channel关闭

静态 获得 一个 缓冲区 (划分内存)

开发知识点-Java网络编程-Netty_第23张图片
可以 设置 容量 capacity 字节

从channel 读取数据

开发知识点-Java网络编程-Netty_第24张图片

buffer get 无参 读 一个 字节
开发知识点-Java网络编程-Netty_第25张图片
开发知识点-Java网络编程-Netty_第26张图片
在这里插入图片描述

  • 所以 要 分 多次 读取 开发知识点-Java网络编程-Netty_第27张图片
    开发知识点-Java网络编程-Netty_第28张图片
    开发知识点-Java网络编程-Netty_第29张图片
    开发知识点-Java网络编程-Netty_第30张图片
    开发知识点-Java网络编程-Netty_第31张图片
加入 lombok 日志记录器

开发知识点-Java网络编程-Netty_第32张图片
开发知识点-Java网络编程-Netty_第33张图片
开发知识点-Java网络编程-Netty_第34张图片
开发知识点-Java网络编程-Netty_第35张图片
开发知识点-Java网络编程-Netty_第36张图片
开发知识点-Java网络编程-Netty_第37张图片
开发知识点-Java网络编程-Netty_第38张图片

P7 第1章_06_bytebuffer-内部结构

开发知识点-Java网络编程-Netty_第39张图片

bytebuffer 内部结构

像数组结构
开发知识点-Java网络编程-Netty_第40张图片
容量 capacity
指针位置 索引下标 position
限制 limit
开发知识点-Java网络编程-Netty_第41张图片

读模式

开发知识点-Java网络编程-Netty_第42张图片
开发知识点-Java网络编程-Netty_第43张图片
开发知识点-Java网络编程-Netty_第44张图片
开发知识点-Java网络编程-Netty_第45张图片

P8 第1章_07_bytebuffer-方法演示

开发知识点-Java网络编程-Netty_第46张图片
开发知识点-Java网络编程-Netty_第47张图片
开发知识点-Java网络编程-Netty_第48张图片
开发知识点-Java网络编程-Netty_第49张图片
开发知识点-Java网络编程-Netty_第50张图片
开发知识点-Java网络编程-Netty_第51张图片

你可能感兴趣的:(netty)