开发知识点-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-方法演示






相关推荐
异常君1 小时前
Netty Reactor 线程模型详解:构建高性能网络应用的关键
java·后端·netty
次元2 小时前
初识Netty的奇经八脉
netty
南客先生7 小时前
马架构的Netty、MQTT、CoAP面试之旅
java·mqtt·面试·netty·coap
异常君3 天前
一文吃透 Netty 处理粘包拆包的核心原理与实践
java·后端·netty
猫吻鱼4 天前
【Netty4核心原理】【全系列文章目录】
netty
用户90555842148055 天前
AdaptiveRecvByteBuAllocator 源码分析
netty
菜菜的后端私房菜6 天前
深入剖析 Netty 中的 NioEventLoopGroup:架构与实现
java·后端·netty
码熔burning9 天前
【Netty篇】Channel 详解
netty·nio·channel
Pitayafruit16 天前
📌 Java 工程师进阶必备:Spring Boot 3 + Netty 构建高并发即时通讯服务
spring boot·后端·netty
猫吻鱼18 天前
【Netty4核心原理④】【简单实现 Tomcat 和 RPC框架功能】
netty