netty權(quán)威指南 第二版是一本Netty架構(gòu)學(xué)習(xí)指南,由李林鋒編著。本書深入剖析了Netty,更全面系統(tǒng)講解底層架構(gòu)、實(shí)踐與源碼,能夠讓讀者更清晰地理解Netty 架構(gòu)設(shè)計(jì)理念,第2版增加了MessagePack 編解碼、服務(wù)端創(chuàng)建、客戶端創(chuàng)建、高性能之道、可靠性、安全性等內(nèi)容,內(nèi)容更精彩,非常適合架構(gòu)師、設(shè)計(jì)師、軟件開發(fā)工程師、測(cè)試人員以及其他對(duì)Java NIO 框架、Netty 感興趣的相關(guān)人士閱讀。通過閱讀netty權(quán)威指南 第二版,讀者不僅能夠掌握Netty基礎(chǔ)功能的使用和開發(fā),更能夠掌握Netty核心類庫的原理和使用約束,從而在實(shí)際工作中更好地使用Netty。
內(nèi)容介紹
《netty權(quán)威指南 第二版》是異步非阻塞通信領(lǐng)域的經(jīng)典之作,基于全新版本的Netty 5.0 編寫,是國(guó)內(nèi)首本深入介紹Netty 原理和架構(gòu)的書籍,也是作者多年實(shí)戰(zhàn)經(jīng)驗(yàn)的總結(jié)和濃縮。內(nèi)容不僅包含Java NIO入門知識(shí)、Netty 的基礎(chǔ)功能開發(fā)指導(dǎo)、編解碼框架定制等,還包括私有協(xié)議棧定制和開發(fā)、Netty 核心類庫源碼分析,以及Netty 的架構(gòu)剖析。
第2 版的主要變更如下,刪除第1 版中的如下章節(jié):
第7 章:Java 序列化;
第12 章:UDP 協(xié)議開發(fā);
第13 章:文件傳輸;
第22 章:Netty 行業(yè)應(yīng)用。
新增本書中的如下章節(jié):
第7 章:MessagePack 編解碼;
第13 章:服務(wù)端創(chuàng)建;
第14 章:客戶端創(chuàng)建;
第22 章:高性能之道;
第23 章:可靠性;
第24 章:安全性。
章節(jié)目錄
基礎(chǔ)篇 走進(jìn)Java NIO 第1 章 Java 的I/O 演進(jìn)之路......2 1.1 I/O 基礎(chǔ)入門......3 1.1.1 Linux 網(wǎng)絡(luò)I/O 模型簡(jiǎn)介......3 1.1.2 I/O 多路復(fù)用技術(shù)......6 1.2 Java 的I/O 演進(jìn)......8 1.3 總結(jié)...... 10 第2 章 NIO 入門...... 11 2.1 傳統(tǒng)的BIO 編程...... 11 2.1.1 BIO 通信模型圖...... 12 2.1.2 同步阻塞式I/O 創(chuàng)建的TimeServer 源碼分析...... 13 2.1.3 同步阻塞式I/O 創(chuàng)建的TimeClient 源碼分析...... 16 2.2 偽異步I/O 編程...... 18 2.2.1 偽異步I/O 模型圖...... 19 2.2.2 偽異步I/O 創(chuàng)建的TimeServer 源碼分析...... 19 2.2.3 偽異步I/O 弊端分析...... 21 2.3 NIO 編程...... 24 2.3.1 NIO 類庫簡(jiǎn)介...... 24 2.3.2 NIO 服務(wù)端序列圖...... 28 2.3.3 NIO 創(chuàng)建的TimeServer 源碼分析...... 30 2.3.4 NIO 客戶端序列圖...... 36 2.3.5 NIO 創(chuàng)建的TimeClient 源碼分析...... 39 2.4 AIO 編程...... 45 2.4.1 AIO 創(chuàng)建的TimeServer 源碼分析...... 46 2.4.2 AIO 創(chuàng)建的TimeClient 源碼分析...... 51 2.4.3 AIO 版本時(shí)間服務(wù)器運(yùn)行結(jié)果...... 56 2.5 4 種I/O 的對(duì)比...... 58 2.5.1 概念澄清...... 58 2.5.2 不同I/O 模型對(duì)比...... 59 2.6 選擇Netty 的理由...... 60 2.6.1 不選擇Java 原生NIO 編程的原因...... 61 2.6.2 為什么選擇Netty ...... 62 2.7 總結(jié)...... 63 入門篇 Netty NIO 開發(fā)指南 第3 章 Netty 入門應(yīng)用...... 66 3.1 Netty 開發(fā)環(huán)境的搭建...... 66 3.1.1 下載Netty 的軟件包...... 67 3.1.2 搭建Netty 應(yīng)用工程...... 67 3.2 Netty 服務(wù)端開發(fā)...... 68 3.3 Netty 客戶端開發(fā)...... 73 3.4 運(yùn)行和調(diào)試...... 76 3.4.1 服務(wù)端和客戶端的運(yùn)行...... 76 3.4.2 打包和部署...... 77 3.5 總結(jié)...... 77 第4 章 TCP 粘包/拆包問題的解決之道...... 79 4.1 TCP 粘包/拆包...... 79 4.1.1 TCP 粘包/拆包問題說明...... 80 4.1.2 TCP 粘包/拆包發(fā)生的原因...... 80 4.1.3 粘包問題的解決策略...... 81 4.2 未考慮TCP 粘包導(dǎo)致功能異常案例...... 82 4.2.1 TimeServer 的改造...... 82 4.2.2 TimeClient 的改造...... 83 4.2.3 運(yùn)行結(jié)果...... 84 4.3 利用LineBasedFrameDecoder 解決TCP 粘包問題...... 85 4.3.1 支持TCP 粘包的TimeServer ...... 86 4.3.2 支持TCP 粘包的TimeClient...... 88 4.3.3 運(yùn)行支持TCP 粘包的時(shí)間服務(wù)器程序...... 90 4.3.4 LineBasedFrameDecoder 和StringDecoder 的原理分析...... 91 4.4 總結(jié)...... 92 第5 章 分隔符和定長(zhǎng)解碼器的應(yīng)用...... 93 5.1 DelimiterBasedFrameDecoder 應(yīng)用開發(fā)...... 94 5.1.1 DelimiterBasedFrameDecoder 服務(wù)端開發(fā)...... 94 5.1.2 DelimiterBasedFrameDecoder 客戶端開發(fā)...... 97 5.1.3 運(yùn)行DelimiterBasedFrameDecoder 服務(wù)端和客戶端...... 99 5.2 FixedLengthFrameDecoder 應(yīng)用開發(fā)...... 101 5.2.1 FixedLengthFrameDecoder 服務(wù)端開發(fā)...... 101 5.2.2 利用telnet 命令行測(cè)試EchoServer 服務(wù)端...... 103 5.3 總結(jié)...... 104 中級(jí)篇 Netty 編解碼開發(fā)指南 第6 章 編解碼技術(shù)...... 106 6.1 Java 序列化的缺點(diǎn)...... 107 6.1.1 法跨語言...... 107 6.1.2 序列化后的碼流太大...... 107 6.1.3 序列化性能太低...... 110 6.2 業(yè)界主流的編解碼框架...... 113 6.2.1 Google 的Protobuf 介紹...... 113 6.2.2 Thrift 介紹...... 115 6.2.3 JBoss Marshalling 介紹...... 116 6.3 總結(jié)...... 117 第7 章 MessagePack 編解碼...... 118 7.1 MessagePack 介紹...... 118 7.1.1 MessagePack 多語言支持...... 119 7.1.2 MessagePack Java API 介紹...... 119 7.1.3 MessagePack 開發(fā)包下載...... 120 7.2 MessagePack 編碼器和解碼器開發(fā)...... 120 7.2.1 MessagePack 編碼器開發(fā)...... 120 7.2.2 MessagePack 解碼器開發(fā)...... 121 7.2.3 功能測(cè)試...... 121 7.3 粘包/半包支持...... 124 7.4 總結(jié)...... 127 第8 章 Google Protobuf 編解碼...... 128 8.1 Protobuf 的入門...... 129 8.1.1 Protobuf 開發(fā)環(huán)境搭建...... 129 8.1.2 Protobuf 編解碼開發(fā)...... 131 8.1.3 運(yùn)行Protobuf 例程...... 133 8.2 Netty 的Protobuf 服務(wù)端開發(fā)...... 133 8.2.1 Protobuf 版本的圖書訂購(gòu)服務(wù)端開發(fā)...... 134 8.2.2 Protobuf 版本的圖書訂購(gòu)客戶端開發(fā)...... 136 8.2.3 Protobuf 版本的圖書訂購(gòu)程序功能測(cè)試...... 139 8.3 Protobuf 的使用注意事項(xiàng)...... 140 8.4 總結(jié)...... 142 第9 章 JBoss Marshalling 編解碼...... 143 9.1 Marshalling 開發(fā)環(huán)境準(zhǔn)備...... 143 9.2 Netty 的Marshalling 服務(wù)端開發(fā)...... 144 9.3 Netty 的Marshalling 客戶端開發(fā)...... 147 9.4 運(yùn)行Marshalling 客戶端和服務(wù)端例程...... 149 9.5 總結(jié)...... 150 高級(jí)篇 Netty 多協(xié)議開發(fā)和應(yīng)用 第10 章 HTTP 協(xié)議開發(fā)應(yīng)用...... 154 10.1 HTTP 協(xié)議介紹...... 155 10.1.1 HTTP 協(xié)議的URL ...... 155 10.1.2 HTTP 請(qǐng)求消息(HttpRequest)...... 155 10.1.3 HTTP 響應(yīng)消息(HttpResponse) ...... 158 10.2 Netty HTTP 服務(wù)端入門開發(fā)...... 159 10.2.1 HTTP 服務(wù)端例程場(chǎng)景描述...... 160 10.2.2 HTTP 服務(wù)端開發(fā)...... 160 10.2.3 Netty HTTP 文件服務(wù)器例程運(yùn)行結(jié)果...... 166 10.3 Netty HTTP+XML 協(xié)議棧開發(fā)...... 170 10.3.1 開發(fā)場(chǎng)景介紹...... 171 10.3.2 HTTP+XML 協(xié)議棧設(shè)計(jì)...... 174 10.3.3 高效的XML 綁定框架JiBx ...... 175 10.3.4 HTTP+XML 編解碼框架開發(fā)...... 183 10.3.5 HTTP+XML 協(xié)議棧測(cè)試...... 199 10.3.6 小結(jié)...... 201 10.4 總結(jié)...... 202 第11 章 WebSocket 協(xié)議開發(fā)...... 203 11.1 HTTP 協(xié)議的弊端...... 204 11.2 WebSocket 入門...... 204 11.2.1 WebSocket 背景...... 205 11.2.2 WebSocket 連接建立...... 206 11.2.3 WebSocket 生命周期...... 207 11.2.4 WebSocket 連接關(guān)閉...... 208 11.3 Netty WebSocket 協(xié)議開發(fā)...... 209 11.3.1 WebSocket 服務(wù)端功能介紹...... 209 11.3.2 WebSocket 服務(wù)端開發(fā)...... 210 11.3.3 運(yùn)行WebSocket 服務(wù)端...... 218 11.4 總結(jié)...... 219 第12 章 私有協(xié)議棧開發(fā)...... 221 12.1 私有協(xié)議介紹...... 221 12.2 Netty 協(xié)議棧功能設(shè)計(jì)...... 223 12.2.1 網(wǎng)絡(luò)拓?fù)鋱D...... 223 12.2.2 協(xié)議棧功能描述...... 224 12.2.3 通信模型...... 224 12.2.4 消息定義...... 225 12.2.5 Netty 協(xié)議支持的字段類型...... 226 12.2.6 Netty 協(xié)議的編解碼規(guī)范...... 227 12.2.7 鏈路的建立...... 229 12.2.8 鏈路的關(guān)閉...... 230 12.2.9 可靠性設(shè)計(jì)...... 230 12.2.10 安全性設(shè)計(jì)...... 232 12.2.11 可擴(kuò)展性設(shè)計(jì)...... 232 12.3 Netty 協(xié)議棧開發(fā)...... 233 12.3.1 數(shù)據(jù)結(jié)構(gòu)定義...... 233 12.3.2 消息編解碼...... 237 12.3.3 握手和安全認(rèn)證...... 241 12.3.4 心跳檢測(cè)機(jī)制...... 245 12.3.5 斷連重連...... 248 12.3.6 客戶端代碼...... 249 12.3.7 服務(wù)端代碼...... 251 12.4 運(yùn)行協(xié)議棧...... 252 12.4.1 正常場(chǎng)景...... 252 12.4.2 異常場(chǎng)景:服務(wù)端宕機(jī)重啟...... 253 12.4.3 異常場(chǎng)景:客戶端宕機(jī)重啟...... 256 12.5 總結(jié)...... 256 第13 章 服務(wù)端創(chuàng)建...... 258 13.1 原生NIO 類庫的復(fù)雜性...... 259 13.2 Netty 服務(wù)端創(chuàng)建源碼分析...... 259 13.2.1 Netty 服務(wù)端創(chuàng)建時(shí)序圖...... 260 13.2.2 Netty 服務(wù)端創(chuàng)建源碼分析...... 263 13.3 客戶端接入源碼分析...... 272 13.4 總結(jié)...... 275 第14 章 客戶端創(chuàng)建...... 276 14.1 Netty 客戶端創(chuàng)建流程分析...... 276 14.2.1 Netty 客戶端創(chuàng)建時(shí)序圖...... 276 14.2.2 Netty 客戶端創(chuàng)建流程分析...... 277 14.2 Netty 客戶端創(chuàng)建源碼分析...... 278 14.2.1 客戶端連接輔助類Bootstrap...... 278 14.2.2 客戶端連接操作...... 281 14.2.3 異步連接結(jié)果通知...... 283 14.2.4 客戶端連接超時(shí)機(jī)制...... 284 14.3 總結(jié)...... 286 源碼分析篇 Netty 功能介紹和源碼分析 第15 章 ByteBuf 和相關(guān)輔助類...... 288 15.1 ByteBuf 功能說明...... 288 15.1.1 ByteBuf 的工作原理...... 289 15.1.2 ByteBuf 的功能介紹...... 294 15.2 ByteBuf 源碼分析...... 308 15.2.1 ByteBuf 的主要類繼承關(guān)系...... 309 15.2.2 AbstractByteBuf 源碼分析...... 310 15.2.3 AbstractReferenceCountedByteBuf 源碼分析...... 319 15.2.4 UnpooledHeapByteBuf 源碼分析...... 321 15.2.5 PooledByteBuf 內(nèi)存池原理分析...... 326 15.2.6 PooledDirectByteBuf 源碼分析...... 329 15.3 ByteBuf 相關(guān)的輔助類功能介紹...... 332 15.3.1 ByteBufHolder...... 332 15.3.2 ByteBufAllocator ...... 333 15.3.3 CompositeByteBuf ...... 334 15.3.4 ByteBufUtil ...... 336 15.4 總結(jié)...... 337 第16 章 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 的主要繼承關(guān)系類圖...... 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 繼承關(guān)系類圖...... 365 16.4.2 AbstractUnsafe 源碼分析...... 366 16.4.3 AbstractNioUnsafe 源碼分析...... 375 16.4.4 NioByteUnsafe 源碼分析...... 379 16.5 總結(jié)...... 387 第17 章 ChannelPipeline 和ChannelHandler...... 388 17.1 ChannelPipeline 功能說明...... 389 17.1.1 ChannelPipeline 的事件處理...... 389 17.1.2 自定義攔截器...... 391 17.1.3 構(gòu)建pipeline ...... 392 17.1.4 ChannelPipeline 的主要特性...... 393 17.2 ChannelPipeline 源碼分析...... 393 17.2.1 ChannelPipeline 的類繼承關(guān)系圖...... 393 17.2.2 ChannelPipeline 對(duì)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 的類繼承關(guān)系圖...... 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 總結(jié)...... 418 第18 章 EventLoop 和EventLoopGroup...... 419 18.1 Netty 的線程模型...... 419 18.1.1 Reactor 單線程模型...... 420 18.1.2 Reactor 多線程模型...... 421 18.1.3 主從Reactor 多線程模型...... 422 18.1.4 Netty 的線程模型...... 423 18.1.5 最佳實(shí)踐...... 424 18.2 NioEventLoop 源碼分析...... 425 18.2.1 NioEventLoop 設(shè)計(jì)原理...... 425 18.2.2 NioEventLoop 繼承關(guān)系類圖...... 426 18.2.3 NioEventLoop...... 427 18.3 總結(jié)...... 436 第19 章 Future 和Promise ...... 438 19.1 Future 功能...... 438 19.2 ChannelFuture 源碼分析...... 443 19.3 Promise 功能介紹...... 445 19.4 Promise 源碼分析...... 447 19.4.1 Promise 繼承關(guān)系圖...... 447 19.4.2 DefaultPromise ...... 447 19.5 總結(jié)...... 449 架構(gòu)和行業(yè)應(yīng)用篇 Netty 高級(jí)特性 第20 章 Netty 架構(gòu)剖析...... 452 20.1 Netty 邏輯架構(gòu)...... 452 20.1.1 Reactor 通信調(diào)度層...... 453 20.1.2 職責(zé)鏈ChannelPipeline ...... 453 20.1.3 業(yè)務(wù)邏輯編排層(Service ChannelHandler)...... 454 20.2 關(guān)鍵架構(gòu)質(zhì)量屬性...... 454 20.2.1 高性能...... 454 20.2.2 可靠性...... 457 20.2.3 可定制性...... 460 20.2.4 可擴(kuò)展性...... 460 20.3 總結(jié)...... 460 第21 章 Java 多線程編程在Netty 中的應(yīng)用...... 461 21.1 Java 內(nèi)存模型與多線程編程...... 461 21.1.1 硬件的發(fā)展和多任務(wù)處理...... 461 21.1.2 Java 內(nèi)存模型...... 462 21.2 Netty 的并發(fā)編程實(shí)踐...... 464 21.2.1 對(duì)共享的可變數(shù)據(jù)進(jìn)行正確的同步...... 464 21.2.2 正確使用鎖...... 465 21.2.3 volatile 的正確使用...... 467 21.2.4 CAS 指令和原子類...... 470 21.2.5 線程安全類的應(yīng)用...... 472 21.2.6 讀寫鎖的應(yīng)用...... 476 21.2.7 線程安全性文檔說明...... 477 21.2.8 不要依賴線程優(yōu)先級(jí)...... 478 21.3 總結(jié)...... 479 第22 章 高性能之道...... 480 22.1 RPC 調(diào)用性能模型分析...... 480 22.1.1 傳統(tǒng)RPC 調(diào)用性能差的三宗罪...... 480 22.1.2 I/O 通信性能三原則...... 481 22.2 Netty 高性能之道...... 482 22.2.1 異步非阻塞通信...... 482 22.2.2 高效的Reactor 線程模型...... 482 22.2.3 鎖化的串行設(shè)計(jì)...... 485 22.2.4 高效的并發(fā)編程...... 486 22.2.5 高性能的序列化框架...... 486 22.2.6 零拷貝...... 487 22.2.7 內(nèi)存池...... 491 22.2.8 靈活的TCP 參數(shù)配置能力...... 494 22.3 主流NIO 框架性能對(duì)比...... 495 22.4 總結(jié)...... 497 第23 章 可靠性...... 498 23.1 可靠性需求...... 498 23.1.1 宕機(jī)的代價(jià)...... 498 23.1.2 Netty 可靠性需求...... 499 23.2 Netty 高可靠性設(shè)計(jì)...... 500 23.2.1 網(wǎng)絡(luò)通信類故障...... 500 23.2.2 鏈路的有效性檢測(cè)...... 507 23.2.3 Reactor 線程的保護(hù)...... 510 23.2.4 內(nèi)存保護(hù)...... 513 23.2.5 流量整形...... 516 23.2.6 優(yōu)雅停機(jī)接口...... 519 23.3 優(yōu)化建議...... 520 23.3.1 發(fā)送隊(duì)列容量上限控制...... 520 23.3.2 回推發(fā)送失敗的消息...... 521 23.4 總結(jié)...... 521 第24 章 安全性...... 522 24.1 嚴(yán)峻的安全形勢(shì)...... 522 24.1.1 OpenSSL Heart bleed 漏洞...... 522 24.1.2 安全漏洞的代價(jià)...... 523 24.1.3 Netty 面臨的安全風(fēng)險(xiǎn)...... 523 24.2 Netty SSL 安全特性...... 525 24.2.1 SSL 單向認(rèn)證...... 525 24.2.2 SSL 雙向認(rèn)證...... 532 24.2.3 第三方CA 認(rèn)證...... 536 24.3 Netty SSL 源碼分析...... 538 24.3.1 客戶端...... 538 24.3.2 服務(wù)端...... 541 24.3.3 消息讀?。?544 24.3.4 消息發(fā)送...... 545 24.4 Netty 擴(kuò)展的安全特性...... 546 24.4.1 IP 地址黑名單機(jī)制...... 547 24.4.2 接入認(rèn)證...... 548 24.4 總結(jié)...... 550 第25 章 Netty 未來展望...... 551 25.1 應(yīng)用范圍...... 551 25.2 技術(shù)演進(jìn)...... 552 25.3 社區(qū)活躍度...... 552 25.4 Road Map ...... 552 25.5 總結(jié)...... 553 附錄A Netty 參數(shù)配置表...... 554
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請(qǐng)務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀試讀
- 下載地址
發(fā)表評(píng)論
1人參與,1條評(píng)論- 第1樓北京市東城區(qū)聯(lián)通網(wǎng)友發(fā)表于: 2019-04-10 17:55:51
- 太帥了,感謝0蓋樓(回復(fù))
軟件排行榜
熱門推薦
- 南方Plus電腦版 v11.8.027.22M / 簡(jiǎn)體中文
- 有柿電腦版 v11.5.684.06M / 簡(jiǎn)體中文
- 得間免費(fèi)小說電腦版 v5.2.7.172.56M / 簡(jiǎn)體中文
- 瀟湘書院電腦版 v2.3.11.888官方版49.65M / 簡(jiǎn)體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡(jiǎn)體中文
- 開源閱讀電腦版 v3.2517.96M / 簡(jiǎn)體中文
- 京東讀書電腦版 v1.13.4官方版1.98M / 簡(jiǎn)體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡(jiǎn)體中文
- 本草綱目 5.34M / 簡(jiǎn)體中文
- C++黑客編程揭秘與防范第2版 冀云pdf掃描版54.58M / 簡(jiǎn)體中文