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






相关推荐
西京刀客5 天前
BIO、NIO、AIO的区别?
netty·nio·bio
潇雷9 天前
Netty(3)进阶篇|半包粘包、编解码器
java·后端·netty
WaaTong19 天前
Netty 组件介绍 - ByteBuf
java·开发语言·netty
@阿秋1 个月前
Netty入门基础:IO模型中BIO\NIO概念及区别【附演示代码】
netty
bin的技术小屋1 个月前
谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc(中)
java·后端·netty
艾特小小1 个月前
基于netty实现简易版rpc服务-理论分析
java·rpc·netty
我神级欧文1 个月前
Netty无锁化设计之对象池实现
java·netty·对象池·无锁化设计
dreamlike_ocean2 个月前
即将到来的Netty4.2版本模型的变化
netty
beiback2 个月前
Springboot + netty + rabbitmq + myBatis
spring boot·mysql·rabbitmq·mybatis·netty·java-rabbitmq
山塘小鱼儿2 个月前
Netty+HTML5+Canvas 网络画画板实时在线画画
java·前端·网络·netty·html5