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






相关推荐
beiback3 天前
Springboot + netty + rabbitmq + myBatis
spring boot·mysql·rabbitmq·mybatis·netty·java-rabbitmq
山塘小鱼儿11 天前
Netty+HTML5+Canvas 网络画画板实时在线画画
java·前端·网络·netty·html5
学海无涯,行者无疆19 天前
通用接口开放平台设计与实现——(31)API服务线程安全问题确认与修复
接口·netty·开放平台·接口开放平台·通用接口开放平台
马丁的代码日记1 个月前
Netty中用到了哪些设计模式
java·开发语言·设计模式·netty
wang09071 个月前
netty编程之整合es实现存储以及搜索功能
大数据·elasticsearch·搜索引擎·netty
huisheng_qaq1 个月前
【netty系列-09】深入理解和解决tcp的粘包拆包
tcp/ip·网络编程·netty·网络通信·粘包拆包·粘包拆包解决方案
大作业管家1 个月前
netty开发模拟qq斗地主
netty·qq斗地主
huisheng_qaq1 个月前
【netty系列-08】深入Netty组件底层原理和基本实现
java·netty·context·eventloop·channelhandler·netty原理及实现
wang09071 个月前
netty编程之结合springboot一起使用
java·spring boot·netty
长安初雪1 个月前
第一个NIO开发演示
开发语言·netty·nio