Netty原理解析与开发实战

Netty原理解析与开发实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-01
ISBN: 9787301318072
  • 本书介绍新Netty框架核心概念、设计原理,并通过详细示例对知识点进行讲解。该书分为以下几部分: 
    入门(第1-2章):介绍Netty基本概念、架构。使读者对Netty有初步的认识; 
    进阶(第3-6章):介绍Netty核心组件及线程模型,包括Channel、缓冲、引导等。使读者可以上手开发Netty应用; 
    高阶(第7-12章):介绍Netty高级用法及综合案例分析。使读者能够理解网络编码中的高级用法; 
    实战(第13章):演示基于Netty构建真实应用的过程。使读者能够掌握设计和开发Netty应用的能力。 
    本书主要面向的是对Java高并发、高性能网络编程感兴趣的学生、开发人员和架构师。 柳伟卫,网名老卫、waylau,在 IT 公司担任项目经理、架构师、高级技术顾问等职位,是 CSDN、 开源中国、云栖社区等技术社区专家,慕课网特邀讲师。具有多年软件开发管理及系统架构经验。负责过多个省、国家大型分布式系统的设计与研发,参与了多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的微服务架构以及性能调优经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢开源,长期跃于各大开源社区,编著了《Netty 4.x 用户指南》《Netty 实战(精髓)》等近30余本技术教程,广受网友好评。已出版《分布式系统常用技术及案例分析》《Spring Boot 企业级应用开发实战》《Spring Cloud 微服务架构开发实战》等专著。 第1章 Netty 概述........... 1 
    1.1 Java 网络编程进化史 ...............2 
    1.2 Netty 的优势............ 18 
    1.3 Netty 核心概念.......... 22 
    1.4 Netty 开发环境的搭建................... 24 
    1.5 实战:快速开启第一个 Netty 应用...................... 30  

    第2章 Netty 架构设计 ...........39 
    2.1 理解 Selector 模型.................. 40 
    2.2 事件驱动.......................... 44 
    2.3 责任链模式...................... 47  

    第3章 Channel ...........51 
     
    3.1 Channel 详解 ................... 52 
    3.2 ChannelHandler 接口 ................ 59 
    3.3 ChannelInboundHandler 接口 ....................... 61 
    3.4 ChannelOutboundHandler 接口........................ 63 
    3.5 ChannelHandlerAdapter 抽象类..................... 64 
    3.6 适配器的作用................... 68 
    3.7 ChannelPipeline 接口 ................ 69 
    3.8 ChannelPipeline 中的 ChannelHandler .................... 78 
    3.9 ChannelHandlerContext 接口........................ 79 
    3.10 Channel 异常处理 .............. 82 
    3.11 NIO 传输....................... 87 
    3.12 OIO 传输 ........................ 93 
    3.13 epoll 传输 .................... 98 
    3.14 本地传输 ......................... 103 
    3.15 内嵌传输 ..................... 106  

    第4章 字节缓冲区 ..............107 
     
    4.1 ByteBuf 类 ....................... 108 
    4.2 ByteBufAllocator 接口 .............. 123 
    4.3 ByteBufUtil 类.................. 125 
    4.4 ByteBufHolder 接口.................. 130 
    4.5 CompositeByteBuf 类 .............. 134 
    4.6 ReferenceCounted 接口 ........... 137 
    4.7 Unpooled 类 .................. 139 
    4.8 零拷贝 ........................... 151 
    4.9 动态扩容......................... 159  

    第5章 引导程序 ..............161 
    5.1 引导程序类.................. 162 
    5.2 实战:引导服务器 ....................... 173 
    5.3 实战:引导客户端 ....................... 176 
    5.4 实战:引导无连接协议........................ 178  

    第6章 线程模型........ 195 
    6.1 Java 线程模型的不足 .................. 196 
    6.2 线程模型的类型 ..................... 201 
    6.3 EventLoop 接口........................ 219 
    6.4 EventLoopGroup 接口 .............. 221 
    6.5 任务调度................. 224 
    6.6 Future ........................ 227 
    6.7 Promise ................... 232  

    第7章 编解码 ........248 
     
    7.1 编解码概述................... 249 
    7.2 解码器 ................ 250 
    7.3 实战:自定义基于换行的解码器 ...... 258 
    7.4 编码器 ................... 267 
    7.5 实战:自定义编码器..................... 273 
    7.6 编解码器................................... 283 
    7.7 实战:自定义编解码器.................. 291 
    7.8 序列化数据................. 295 
    7.9 实战:基于 Netty 的对象序列化...... 298 
    7.10 实战:基于 Jackson 的 JSON 序列化 .......... 304  

    第8章 ChannelHandler ........314 
     
    8.1 ChannelHandler 概述 ............... 315 
    8.2 消息流程控制............................. 317 
    8.3 flush 行为控制................. 325 
    8.4 I/O 事件记录................... 332 
    8.5 IP 地址过滤................ 337 
    8.6 超时处理....................... 340 
    8.7 大数据流处理...................... 351 
    8.8 数据加密....................... 359 
    8.9 流量整形....................... 375  

    第9章 常用网络协议 ........389 
     
    9.1 了解 HTTP.......................... 390 
    9.2 Netty 对于 HTTP 的支持 ............. 396 
    9.3 实战:基于 HTTP 的 Web 服务器 ........................... 404 
    9.4 了解 HTTP/2....................... 408 
    9.5 Netty 对于 HTTP/2 的支持........... 415 
    9.6 实战:基于 HTTP/2 的 Web 服务器和客户端...................... 428 
    9.7 了解 WebSocket ...................... 448 
    9.8 Netty 对于 WebSocket 的支持................................. 457 
    9.9 实战:基于 WebSocket 的聊天室............................. 461  

    第10章 测试 ........472 
     
    10.1 EmbeddedChannel 类............. 473 
    10.2 实战:EmbeddedChannel 测试入站信息 ................ 474 
    10.3 实战:EmbeddedChannel 测试出站信息 .................. 477 
    10.4 使用 Apache JMeter 进行性能测试 .......................... 479 
    10.4.5 添加测试报告................ 482 
    10.4.6 执行测试...................... 483  

    第 11 章 案例分析 ........484 
    11.1 高性能消息中间件――Apache RocketMQ..................... 485 
    11.2 异步编程框架――Eclipse Vert.x ............................... 499 
    11.3 高性能 PRC 框架――Apache Dubbo..................... 510 
    11.3.1 入门示例 Provider ............................... 511  

    第 12 章 实战:实现监控系统整体设计 ........523 
    12.1 监控系统概述........................ 524 
    12.2 架构设计 ........................ 524 
    12.3 通信协议设计........................ 531 
    12.4 数据库设计..................... 535  

    第 13 章 实战:实现监控系统数据采集 ........539 
     
    13.1 基于 OSHI 数据采集功能实现 ....... 540 
    13.2 实现数据采集客户端 ................... 543 
    13.3 实现数据采集服务器 ................... 546 
    13.4 运行测试 ....................... 549 
    13.5 程序改进:指定启动参数.............. 551 
    13.6 程序改进:使用 fat jar 启动应用............................. 554  

    第 14 章 实战:实现监控系统数据存储 ........557 
     
    14.1 基于 DBCP 的连接池实现............ 558 
    14.2 使用 DbUtils 简化数据库操作 ....... 564 
    14.3 实现数据存储功能 .............. 569  

    第 15 章 实战:实现监控系统数据展示 ........571 
     
    15.1 基于 Lite 的 Web 服务器............. 572 
    15.2 创建基于 Lite 的 Web 服务器 ....... 574 
    15.3 提供采集数据 REST API ............ 576 
    15.4 使用 Angular 创建客户端............ 582 
    15.5 使用 HTTP 客户端访问 REST API .................. 596  

    第 16 章 实战:实现监控系统高可用部署 ........605 
    16.1 NGINX 概述.................. 606 
    16.2 部署 Angular 应用 .................... 610 
    16.3 实现负载均衡及高可用................. 613  

     附录 ...........617  

     参考文献 ........618
  • 内容简介:
    本书介绍新Netty框架核心概念、设计原理,并通过详细示例对知识点进行讲解。该书分为以下几部分: 
    入门(第1-2章):介绍Netty基本概念、架构。使读者对Netty有初步的认识; 
    进阶(第3-6章):介绍Netty核心组件及线程模型,包括Channel、缓冲、引导等。使读者可以上手开发Netty应用; 
    高阶(第7-12章):介绍Netty高级用法及综合案例分析。使读者能够理解网络编码中的高级用法; 
    实战(第13章):演示基于Netty构建真实应用的过程。使读者能够掌握设计和开发Netty应用的能力。 
    本书主要面向的是对Java高并发、高性能网络编程感兴趣的学生、开发人员和架构师。
  • 作者简介:
    柳伟卫,网名老卫、waylau,在 IT 公司担任项目经理、架构师、高级技术顾问等职位,是 CSDN、 开源中国、云栖社区等技术社区专家,慕课网特邀讲师。具有多年软件开发管理及系统架构经验。负责过多个省、国家大型分布式系统的设计与研发,参与了多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的微服务架构以及性能调优经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢开源,长期跃于各大开源社区,编著了《Netty 4.x 用户指南》《Netty 实战(精髓)》等近30余本技术教程,广受网友好评。已出版《分布式系统常用技术及案例分析》《Spring Boot 企业级应用开发实战》《Spring Cloud 微服务架构开发实战》等专著。
  • 目录:
    第1章 Netty 概述........... 1 
    1.1 Java 网络编程进化史 ...............2 
    1.2 Netty 的优势............ 18 
    1.3 Netty 核心概念.......... 22 
    1.4 Netty 开发环境的搭建................... 24 
    1.5 实战:快速开启第一个 Netty 应用...................... 30  

    第2章 Netty 架构设计 ...........39 
    2.1 理解 Selector 模型.................. 40 
    2.2 事件驱动.......................... 44 
    2.3 责任链模式...................... 47  

    第3章 Channel ...........51 
     
    3.1 Channel 详解 ................... 52 
    3.2 ChannelHandler 接口 ................ 59 
    3.3 ChannelInboundHandler 接口 ....................... 61 
    3.4 ChannelOutboundHandler 接口........................ 63 
    3.5 ChannelHandlerAdapter 抽象类..................... 64 
    3.6 适配器的作用................... 68 
    3.7 ChannelPipeline 接口 ................ 69 
    3.8 ChannelPipeline 中的 ChannelHandler .................... 78 
    3.9 ChannelHandlerContext 接口........................ 79 
    3.10 Channel 异常处理 .............. 82 
    3.11 NIO 传输....................... 87 
    3.12 OIO 传输 ........................ 93 
    3.13 epoll 传输 .................... 98 
    3.14 本地传输 ......................... 103 
    3.15 内嵌传输 ..................... 106  

    第4章 字节缓冲区 ..............107 
     
    4.1 ByteBuf 类 ....................... 108 
    4.2 ByteBufAllocator 接口 .............. 123 
    4.3 ByteBufUtil 类.................. 125 
    4.4 ByteBufHolder 接口.................. 130 
    4.5 CompositeByteBuf 类 .............. 134 
    4.6 ReferenceCounted 接口 ........... 137 
    4.7 Unpooled 类 .................. 139 
    4.8 零拷贝 ........................... 151 
    4.9 动态扩容......................... 159  

    第5章 引导程序 ..............161 
    5.1 引导程序类.................. 162 
    5.2 实战:引导服务器 ....................... 173 
    5.3 实战:引导客户端 ....................... 176 
    5.4 实战:引导无连接协议........................ 178  

    第6章 线程模型........ 195 
    6.1 Java 线程模型的不足 .................. 196 
    6.2 线程模型的类型 ..................... 201 
    6.3 EventLoop 接口........................ 219 
    6.4 EventLoopGroup 接口 .............. 221 
    6.5 任务调度................. 224 
    6.6 Future ........................ 227 
    6.7 Promise ................... 232  

    第7章 编解码 ........248 
     
    7.1 编解码概述................... 249 
    7.2 解码器 ................ 250 
    7.3 实战:自定义基于换行的解码器 ...... 258 
    7.4 编码器 ................... 267 
    7.5 实战:自定义编码器..................... 273 
    7.6 编解码器................................... 283 
    7.7 实战:自定义编解码器.................. 291 
    7.8 序列化数据................. 295 
    7.9 实战:基于 Netty 的对象序列化...... 298 
    7.10 实战:基于 Jackson 的 JSON 序列化 .......... 304  

    第8章 ChannelHandler ........314 
     
    8.1 ChannelHandler 概述 ............... 315 
    8.2 消息流程控制............................. 317 
    8.3 flush 行为控制................. 325 
    8.4 I/O 事件记录................... 332 
    8.5 IP 地址过滤................ 337 
    8.6 超时处理....................... 340 
    8.7 大数据流处理...................... 351 
    8.8 数据加密....................... 359 
    8.9 流量整形....................... 375  

    第9章 常用网络协议 ........389 
     
    9.1 了解 HTTP.......................... 390 
    9.2 Netty 对于 HTTP 的支持 ............. 396 
    9.3 实战:基于 HTTP 的 Web 服务器 ........................... 404 
    9.4 了解 HTTP/2....................... 408 
    9.5 Netty 对于 HTTP/2 的支持........... 415 
    9.6 实战:基于 HTTP/2 的 Web 服务器和客户端...................... 428 
    9.7 了解 WebSocket ...................... 448 
    9.8 Netty 对于 WebSocket 的支持................................. 457 
    9.9 实战:基于 WebSocket 的聊天室............................. 461  

    第10章 测试 ........472 
     
    10.1 EmbeddedChannel 类............. 473 
    10.2 实战:EmbeddedChannel 测试入站信息 ................ 474 
    10.3 实战:EmbeddedChannel 测试出站信息 .................. 477 
    10.4 使用 Apache JMeter 进行性能测试 .......................... 479 
    10.4.5 添加测试报告................ 482 
    10.4.6 执行测试...................... 483  

    第 11 章 案例分析 ........484 
    11.1 高性能消息中间件――Apache RocketMQ..................... 485 
    11.2 异步编程框架――Eclipse Vert.x ............................... 499 
    11.3 高性能 PRC 框架――Apache Dubbo..................... 510 
    11.3.1 入门示例 Provider ............................... 511  

    第 12 章 实战:实现监控系统整体设计 ........523 
    12.1 监控系统概述........................ 524 
    12.2 架构设计 ........................ 524 
    12.3 通信协议设计........................ 531 
    12.4 数据库设计..................... 535  

    第 13 章 实战:实现监控系统数据采集 ........539 
     
    13.1 基于 OSHI 数据采集功能实现 ....... 540 
    13.2 实现数据采集客户端 ................... 543 
    13.3 实现数据采集服务器 ................... 546 
    13.4 运行测试 ....................... 549 
    13.5 程序改进:指定启动参数.............. 551 
    13.6 程序改进:使用 fat jar 启动应用............................. 554  

    第 14 章 实战:实现监控系统数据存储 ........557 
     
    14.1 基于 DBCP 的连接池实现............ 558 
    14.2 使用 DbUtils 简化数据库操作 ....... 564 
    14.3 实现数据存储功能 .............. 569  

    第 15 章 实战:实现监控系统数据展示 ........571 
     
    15.1 基于 Lite 的 Web 服务器............. 572 
    15.2 创建基于 Lite 的 Web 服务器 ....... 574 
    15.3 提供采集数据 REST API ............ 576 
    15.4 使用 Angular 创建客户端............ 582 
    15.5 使用 HTTP 客户端访问 REST API .................. 596  

    第 16 章 实战:实现监控系统高可用部署 ........605 
    16.1 NGINX 概述.................. 606 
    16.2 部署 Angular 应用 .................... 610 
    16.3 实现负载均衡及高可用................. 613  

     附录 ...........617  

     参考文献 ........618
查看详情
12
相关图书 / 更多
Netty原理解析与开发实战
NewandSelectedPoems,VolumeOne
Mary Oliver 著
Netty原理解析与开发实战
Netty原理剖析与实战
傅健
Netty原理解析与开发实战
Neuroscience For Dummies
Amthor, Frank
Netty原理解析与开发实战
NewEraofMedicalEmpowerment:BestCaseSharin
谷成明、毛京梅、贺李镜 著
Netty原理解析与开发实战
Neo4j图数据库扩展指南:APOC和ALGO(图数据库技术丛书)
俞方桦 著
Netty原理解析与开发实战
Neonatal Family Care 新生儿家庭护理
王莉;朱丽辉
Netty原理解析与开发实战
Netty实战
王金柱
Netty原理解析与开发实战
Neuberg-Pedoe定理:距离几何分析导引(2015数学基金)
张晗方 著;王梓坤 编
Netty原理解析与开发实战
New Textile Yarns(2nd edition) 新型纺织纱线(2版)
覃小红 王善元
Netty原理解析与开发实战
NetLogo多主体建模入门
集智俱乐部
Netty原理解析与开发实战
Netty源码剖析与应用
刘耀林
Netty原理解析与开发实战
Netty 4核心原理与手写RPC框架实战
谭勇德(Tom) 著