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






相关推荐
hanxiaozhang20182 天前
Netty面试重点-2
面试·netty
9527出列3 天前
Netty源码分析--客户端连接接入流程解析
网络协议·netty
马尚来4 天前
【韩顺平】尚硅谷Netty视频教程
后端·netty
马尚道6 天前
【韩顺平】尚硅谷Netty视频教程
netty
马尚道6 天前
Netty核心技术及源码剖析
源码·netty
moxiaoran57536 天前
java接收小程序发送的protobuf消息
websocket·netty·protobuf
马尚来7 天前
尚硅谷 Netty核心技术及源码剖析 Netty模型 详细版
源码·netty
马尚来7 天前
Netty核心技术及源码剖析
后端·netty
失散1313 天前
分布式专题——35 Netty的使用和常用组件辨析
java·分布式·架构·netty
hanxiaozhang201815 天前
Netty面试重点-1
网络·网络协议·面试·netty