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

发布时间:2024年01月05日

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_33608000/article/details/135415712
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。