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

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-导学

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-方法演示






相关推荐
9527出列1 天前
Netty源码分析(终)--关于WriteAndFlush
netty·源码阅读
C2H5OH6662 天前
Netty详解-02
java·websocket·网络协议·tcp/ip·tomcat·netty·nio
9527出列6 天前
Netty源码分析(六)--关于ChannelPipeline
netty·源码阅读
Luo_xguan8 天前
一、Netty-高并发IO底层原理(5种主要的IO模型)
java·服务器·netty·nio
戮戮16 天前
一次深入排查:Spring Cloud Gateway TCP 连接复用导致 K8s 负载均衡失效
tcp/ip·spring cloud·kubernetes·gateway·负载均衡·netty
fat house cat_16 天前
【netty】基于主从Reactor多线程模型|如何解决粘包拆包问题|零拷贝
java·服务器·网络·netty
Moe48819 天前
Netty技术:SimpleChannelInboundHandler<>的使用
netty
poemyang22 天前
jemalloc思想的极致演绎:深度解构Netty内存池的精妙设计与实现
rpc·netty
poemyang23 天前
“化零为整”的智慧:内存池如何绕过系统调用和GC,构建性能的护城河
rpc·netty
晓牛开发者24 天前
Netty4 TLS单向安全加密传输案例
netty