ty指南 编程语言 李林锋 新华正版
¥
54.3
6.1折
¥
89
全新
库存12件
作者李林锋
出版社电子工业出版社
ISBN9787121258015
出版时间2015-04
版次1
装帧平装
开本16
页数572页
字数758千字
定价89元
货号xhwx_1201087547
上书时间2024-10-23
商品详情
- 品相描述:全新
-
正版特价新书
- 商品描述
-
主编:
1、hadoop、torm、park、facebook、twitter、阿里巴巴都在使用java高能nio通信框架ty,本书告诉你why,通过本书你可以全面、系统地理解ty架构设计理念,以及异步nio编程。
2、本书作者为一线专家,在产品中广泛应用了ty等nio框架,具有丰富的多年实践经验,这使得本书内容带有很强的实践,让你更全面快速掌握java高并发异步通信的框架——ty的用法。
3、本书版出版后受到业界的一致,应读者的要求,第2版增加了meagepack编解码、服务端创建、客户端创建、高能之道、可靠、安全等内容,内容更精彩。
ty是什么?使用ty能够做什么?为什么要从传统的ocket开发切换到nio进行编程?为什么不直接基于k的nio类库编程而选择ty?如何全面系统地掌握ty进行tynio开发、ty编解码开发、ty多协议开发?如何通过对ty源码的学获得更深入地知识?掌握了ty后,如何将其应用到实际架构中?ty工程师的业前景和可涉足的行业是怎样的?本书都会一一解答。
目录:
基础篇 走进java nio
章 java 的i/o 演进之路......2
1.1 i/o 基础入门......3
1.1.1 linux 网络i/o 模型简介......3
1.1.2 i/o 多路复用技术......6
1.2 java 的i/o 演进......8
1.3 结...... 10
第2 章 nio 入门...... 11
2.1 传统的bio 编程...... 11
2.1.1 bio 通信模型图...... 12
2.1.2 同步阻塞式i/o 创建的timeserver 源码分析...... 13
2.1.3 同步阻塞式i/o 创建的timeclient 源码分析...... 16
2.2 伪异步i/o 编程...... 18
2.2.1 伪异步i/o 模型图...... 19
2.2.2 伪异步i/o 创建的timeserver 源码分析...... 19
2.2.3 伪异步i/o 弊端分析...... 21
2.3 nio 编程...... 24
2.3.1 nio 类库简介...... 24
2.3.2 nio 服务端序列图...... 28
2.3.3 nio 创建的timeserver 源码分析...... 30
2.3.4 nio 客户端序列图...... 36
2.3.5 nio 创建的timeclient 源码分析...... 39
2.4 aio 编程...... 45
2.4.1 aio 创建的timeserver 源码分析...... 46
2.4.2 aio 创建的timeclient 源码分析...... 51
2.4.3 aio 版本时间服务器运行结果...... 56
2.5 4 种i/o 的对比...... 58
2.5.1 概念澄清...... 58
2.5.2 不同i/o 模型对比...... 59
2.6 选择ty 的理由...... 60
2.6.1 不选择java 原生nio 编程的原因...... 61
2.6.2 为什么选择ty ...... 62
2.7 结...... 63
入门篇 ty nio 开发指南
第3 章 ty 入门应用...... 66
3.1 ty 开发环境的搭建...... 66
3.1.1 下载ty 的软件包...... 67
3.1.2 搭建ty 应用工程...... 67
3.2 ty 服务端开发...... 68
3.3 ty 客户端开发...... 73
3.4 运行和调试...... 76
3.4.1 服务端和客户端的运行...... 76
3.4.2 打包和部署...... 77
3.5 结...... 77
第4 章 tcp 粘包/拆包问题的解决之道...... 79
4.1 tcp 粘包/拆包...... 79
4.1.1 tcp 粘包/拆包问题说明...... 80
4.1.2 tcp 粘包/拆包发生的原因...... 80
4.1.3 粘包问题的解决策略...... 81
4.2 未虑tcp 粘包导致功能异常案例...... 82
4.2.1 timeserver 的改造...... 82
4.2.2 timeclient 的改造...... 83
4.2.3 运行结果...... 84
4.3 利用linebasedframedecoder 解决tcp 粘包问题...... 85
4.3.1 支持tcp 粘包的timeserver ...... 86
4.3.2 支持tcp 粘包的timeclient...... 88
4.3.3 运行支持tcp 粘包的时间服务器程序...... 90
4.3.4 linebasedframedecoder 和stringdecoder 的分析...... 91
4.4 结...... 92
第5 章 分隔符和定长的应用...... 93
5.1 delimiterbasedframedecoder 应用开发...... 94
5.1.1 delimiterbasedframedecoder 服务端开发...... 94
5.1.2 delimiterbasedframedecoder 客户端开发...... 97
5.1.3 运行delimiterbasedframedecoder 服务端和客户端...... 99
5.2 fixedlengthframedecoder 应用开发...... 101
5.2.1 fixedlengthframedecoder 服务端开发...... 101
5.2.2 利用tel 命令行测试echoserver 服务端...... 103
5.3 结...... 104
中级篇 ty 编解码开发指南
第6 章 编解码技术...... 106
6.1 java 序列化的缺点...... 107
6.1.1 无法跨语言...... 107
6.1.2 序列化后的码流太大...... 107
6.1.3 序列化能太低...... 110
6.2 业界主流的编解码框架...... 113
6.2.1 google 的protobuf 介绍...... 113
6.2.2 facebook 的thrift 介绍...... 115
6.2.3 jboss marshalling 介绍...... 116
6.3 结...... 117
第7 章 messagepack 编解码...... 118
7.1 messagepack 介绍...... 118
7.1.1 messagepack 多语言支持...... 119
7.1.2 messagepack java api 介绍...... 119
7.1.3 messagepack 开发包下载...... 120
7.2 messagepack 和开发...... 120
7.2.1 messagepack 开发...... 120
7.2.2 messagepack 开发...... 121
7.2.3 功能测试...... 121
7.3 粘包/半包支持...... 124
7.4 结...... 127
第8 章 google protobuf 编解码...... 128
8.1 protobuf 的入门...... 129
8.1.1 protobuf 开发环境搭建...... 129
8.1.2 protobuf 编解码开发...... 131
8.1.3 运行protobuf 例程...... 133
8.2 ty 的protobuf 服务端开发...... 133
8.2.1 protobuf 版本的图书订购服务端开发...... 134
8.2.2 protobuf 版本的图书订购客户端开发...... 136
8.2.3 protobuf 版本的图书订购程序功能测试...... 139
8.3 protobuf 的使用注意事项...... 140
8.4 结...... 142
第9 章 jboss marshalling 编解码...... 143
9.1 marshalling 开发环境准备...... 143
9.2 ty 的marshalling 服务端开发...... 144
9.3 ty 的marshalling 客户端开发...... 147
9.4 运行marshalling 客户端和服务端例程...... 149
9.5 结...... 150
篇 ty 多协议开发和应用
0 章 协议开发应用...... 154
10.1 协议介绍...... 155
10.1.1 协议的url ...... 155
10.1.2 请求消息(request)...... 155
10.1.3 响应消息(response) ...... 158
10.2 ty 服务端入门开发...... 159
10.2.1 服务端例程场景描述...... 160
10.2.2 服务端开发...... 160
10.2.3 ty 文件服务器例程运行结果...... 166
10.3 ty +xml 协议栈开发...... 170
10.3.1 开发场景介绍...... 171
10.3.2 +xml 协议栈设计...... 174
10.3.3 高效的xml 绑定框架jibx ...... 175
10.3.4 +xml 编解码框架开发...... 183
10.3.5 +xml 协议栈测试...... 199
10.3.6 小结...... 201
10.4 结...... 202
1 章 websocket 协议开发...... 203
11.1 协议的弊端...... 204
11.2 websocket 入门...... 204
11.2.1 websocket 背景...... 205
11.2.2 websocket 连接建立...... 206
11.2.3 websocket 生命周期...... 207
11.2.4 websocket 连接关闭...... 208
11.3 ty websocket 协议开发...... 209
11.3.1 websocket 服务端功能介绍...... 209
11.3.2 websocket 服务端开发...... 210
11.3.3 运行websocket 服务端...... 218
11.4 结...... 219
2 章 私有协议栈开发...... 221
12.1 私有协议介绍...... 221
12.2 ty 协议栈功能设计...... 223
12.2.1 网络拓扑图...... 223
12.2.2 协议栈功能描述...... 224
12.2.3 通信模型...... 224
12.2.4 消息定义...... 225
12.2.5 ty 协议支持的字段类型...... 226
12.2.6 ty 协议的编解码规范...... 227
12.2.7 链路的建立...... 229
12.2.8 链路的关闭...... 230
12.2.9 可靠设计...... 230
12.2.10 安全设计...... 232
12.2.11 可扩展设计...... 232
12.3 ty 协议栈开发...... 233
12.3.1 数据结构定义...... 233
12.3.2 消息编解码...... 237
12.3.3 握手和安全认证...... 241
12.3.4 心跳检测机制...... 245
12.3.5 断连重连...... 248
12.3.6 客户端代码...... 249
12.3.7 服务端代码...... 251
12.4 运行协议栈...... 252
12.4.1 正常场景...... 252
12.4.2 异常场景:服务端宕机重启...... 253
12.4.3 异常场景:客户端宕机重启...... 256
12.5 结...... 256
3 章 服务端创建...... 258
13.1 原生nio 类库的复杂...... 259
13.2 ty 服务端创建源码分析...... 259
13.2.1 ty 服务端创建时序图...... 260
13.2.2 ty 服务端创建源码分析...... 263
13.3 客户端接入源码分析...... 272
13.4 结...... 275
4 章 客户端创建...... 276
14.1 ty 客户端创建流程分析...... 276
14.2.1 ty 客户端创建时序图...... 276
14.2.2 ty 客户端创建流程分析...... 277
14.2 ty 客户端创建源码分析...... 278
14.2.1 客户端连接辅助类bootstrap...... 278
14.2.2 客户端连接作...... 281
14.2.3 异步连接结果通知...... 283
14.2.4 客户端连接超时机制...... 284
14.3 结...... 286
源码分析篇 ty 功能介绍和源码分析
5 章 bytebuf 和相关辅助类...... 288
15.1 bytebuf 功能说明...... 288
15.1.1 bytebuf 的工作...... 289
15.1.2 bytebuf 的功能介绍...... 294
15.2 bytebuf 源码分析...... 308
15.2.1 bytebuf 的主要类继承关系...... 309
15.2.2 abstractbytebuf 源码分析...... 310
15.2.3 abstractreferencecountedbytebuf 源码分析...... 319
15.2.4 unpooledheapbytebuf 源码分析...... 321
15.2.5 pooledbytebuf 内存池分析...... 326
15.2.6 pooleddirectbytebuf 源码分析...... 329
15.3 bytebuf 相关的辅助类功能介绍...... 332
15.3.1 bytebufholder...... 332
15.3.2 bytebufallocator ...... 333
15.3.3 itebytebuf ...... 334
15.3.4 bytebufutil ...... 336
15.4 结...... 337
6 章 channel 和unsafe ...... 338
16.1 channel 功能说明...... 338
16.1.1 channel 的工作...... 339
16.1.2 channel 的功能介绍...... 340
16.2 channel 源码分析...... 343
16.2.1 channel 的主要继承关系类图...... 343
16.2.2 abstractchannel 源码分析...... 344
16.2.3 abstractniochannel 源码分析...... 347
16.2.4 abstractniobytechannel 源码分析...... 350
16.2.5 abstractniomessagechannel 源码分析...... 353
16.2.6 abstractniomessageserverchannel 源码分析...... 354
16.2.7 nioserversocketchannel 源码分析...... 355
16.2.8 niosocketchannel 源码分析...... 358
16.3 unsafe 功能说明...... 364
16.4 unsafe 源码分析...... 365
16.4.1 unsafe 继承关系类图...... 365
16.4.2 abstractunsafe 源码分析...... 366
16.4.3 abstractniounsafe 源码分析...... 375
16.4.4 niobyteunsafe 源码分析...... 379
16.5 结...... 387
7 章 channelpipeline 和channelhandler...... 388
17.1 channelpipeline 功能说明...... 389
17.1.1 channelpipeline 的事件处理...... 389
17.1.2 自定义...... 391
17.1.3 构建pipeline ...... 392
17.1.4 channelpipeline 的主要特...... 393
17.2 channelpipeline 源码分析...... 393
17.2.1 channelpipeline 的类继承关系图...... 393
17.2.2 channelpipeline 对channelhandler 的管理...... 393
17.2.3 channelpipeline 的inbound 事件...... 396
17.2.4 channelpipeline 的outbound 事件...... 397
17.3 channelhandler 功能说明...... 398
17.3.1 channelhandleradapter 功能说明...... 399
17.3.2 bytetomessagedecoder 功能说明...... 399
17.3.3 messagetomessagedecoder 功能说明...... 400
17.3.4 lengthfieldbasedframedecoder 功能说明...... 400
17.3.5 messagetobyteencoder 功能说明...... 404
17.3.6 messagetomessageencoder 功能说明...... 404
17.3.7 lengthfieldprepender 功能说明...... 405
17.4 channelhandler 源码分析...... 406
17.4.1 channelhandler 的类继承关系图...... 406
17.4.2 bytetomessagedecoder 源码分析...... 407
17.4.3 messagetomessagedecoder 源码分析...... 410
17.4.4 lengthfieldbasedframedecoder 源码分析...... 411
17.4.5 messagetobyteencoder 源码分析...... 415
17.4.6 messagetomessageencoder 源码分析...... 416
17.4.7 lengthfieldprepender 源码分析...... 417
17.5 结...... 418
8 章 eventloop 和eventloopgroup...... 419
18.1 ty 的线程模型...... 419
18.1.1 reactor 单线程模型...... 420
18.1.2 reactor 多线程模型...... 421
18.1.3 主从reactor 多线程模型...... 422
18.1.4 ty 的线程模型...... 423
18.1.5 佳实践...... 424
18.2 nioeventloop 源码分析...... 425
18.2.1 nioeventloop 设计...... 425
18.2.2 nioeventloop 继承关系类图...... 426
18.2.3 nioeventloop...... 427
18.3 结...... 436
9 章 future 和promise ...... 438
19.1 future 功能...... 438
19.2 channelfuture 源码分析...... 443
19.3 promise 功能介绍...... 445
19.4 promise 源码分析...... 447
19.4.1 promise 继承关系图...... 447
19.4.2 defaultpromise ...... 447
19.5 结...... 449
架构和行业应用篇 ty 特
第20 章 ty 架构剖析...... 452
20.1 ty 逻辑架构...... 452
20.1.1 reactor 通信调度层...... 453
20.1.2 职责链channelpipeline ...... 453
20.1.3 业务逻辑编排层(service channelhandler)...... 454
20.2 关键架构质量属...... 454
20.2.1 高能...... 454
20.2.2 可靠...... 457
20.2.3 可定制...... 460
20.2.4 可扩展...... 460
20.3 结...... 460
第21 章 java 多线程编程在ty 中的应用...... 461
21.1 java 内存模型与多线程编程...... 461
21.1.1 硬件的发展和多任务处理...... 461
21.1.2 java 内存模型...... 462
21.2 ty 的并发编程实践...... 464
21.2.1 对共享的可变数据进行正确的同步...... 464
21.2.2 正确使用锁...... 465
21.2.3 volatile 的正确使用...... 467
21.2.4 cas 指令和原子类...... 470
21.2.5 线程安全类的应用...... 472
21.2.6 读写锁的应用...... 476
21.2.7 线程安全文档说明...... 477
21.2.8 不要依赖线程优先级...... 478
21.3 结...... 479
第22 章 高能之道...... 480
22.1 rpc 调用能模型分析...... 480
22.1.1 传统rpc 调用能差的三宗罪...... 480
22.1.2 i/o 通信能三原则...... 481
22.2 ty 高能之道...... 482
22.2.1 异步非阻塞通信...... 482
22.2.2 高效的reactor 线程模型...... 482
22.2.3 无锁化的串行设计...... 485
22.2.4 高效的并发编程...... 486
22.2.5 高能的序列化框架...... 486
22.2.6 零拷贝...... 487
22.2.7 内存池...... 491
22.2.8 灵活的tcp 参数配置能力...... 494
22.3 主流nio 框架能对比...... 495
22.4 结...... 497
第23 章 可靠...... 498
23.1 可靠需求...... 498
23.1.1 宕机的代价...... 498
23.1.2 ty 可靠需求...... 499
23.2 ty 高可靠设计...... 500
23.2.1 网络通信类故障...... 500
23.2.2 链路的有效检测...... 507
23.2.3 reactor 线程的保护...... 510
23.2.4 内存保护...... 513
23.2.5 流量整形...... 516
23.2.6 优雅停机接...... 519
23.3 优化建议...... 520
23.3.1 发送队列容量上限控制...... 520
23.3.2 回推发送失败的消息...... 521
23.4 结...... 521
第24 章 安全...... 522
24.1 严峻的安全形势...... 522
24.1.1 openssl heart bleed 漏洞.
— 没有更多了 —
正版特价新书
以下为对购买帮助不大的评价