国产TS紫迹丝袜高跟鞋在线,一区二区三区国产自产视频免费,67pao国产人成视频,午国产午夜激无码毛片不卡

愛碼網(wǎng)專注于資源免費下載

Netty實戰(zhàn) PDF 下載

Netty實戰(zhàn) PDF 下載-第1張圖片 此部分為隱藏內(nèi)容,請輸入驗證碼后查看
驗證碼:


掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗證碼 ” ,獲取驗證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請在下載后24小時內(nèi)刪除。如果喜歡,請購買正版!

一.資料圖片

Netty實戰(zhàn) PDF 下載-第2張圖片

二.資料簡介

本書是為想要或者正在使用Java從事高性能網(wǎng)絡(luò)編程的人而寫的,循序漸進地介紹了Netty各個方面的內(nèi)容。

本書共分為4個部分:第一部分詳細地介紹Netty的相關(guān)概念以及核心組件,第二部分介紹自定義協(xié)議經(jīng)常用到的編解碼器,第三部分介紹Netty對于應(yīng)用層高級協(xié)議的支持,會覆蓋常見的協(xié)議及其在實踐中的應(yīng)用,第四部分是幾個案例研究。此外,附錄部分還會簡單地介紹Maven,以及如何通過使用Maven編譯和運行本書中的示例。

閱讀本書不需要讀者精通Java網(wǎng)絡(luò)和并發(fā)編程。如果想要更加深入地理解本書背后的理念以及Netty源碼本身,可以系統(tǒng)地學(xué)習(xí)一下Java網(wǎng)絡(luò)編程、NIO、并發(fā)和異步編程以及相關(guān)的設(shè)計模式。

曾經(jīng)人們認為Web應(yīng)用服務(wù)器將會讓我們忘記如何編寫HTTP或者 RPC服務(wù)器。不幸的是,這個白日夢并沒有持續(xù)多久。我們正在處理的負載量以及功能變化的速度一直在不斷地增加,超出了傳統(tǒng)的三層體系結(jié)構(gòu)的承受能力,我們正被迫將應(yīng)用程序切分成很多塊,并分發(fā)到更大的機器集群中。

運行一個如此龐大的分布式系統(tǒng)引發(fā)了兩個有趣的問題:運行成本和延遲。如果我們將單個節(jié)點的性能提高30%,或者甚至超過100%,那么我們可以節(jié)省多少臺機器呢?當(dāng)一個來自Web瀏覽器的查詢觸發(fā)了幾十個跨越了很多不同機器的內(nèi)部遠程過程調(diào)用時,我們?nèi)绾文苓_到最低的延遲呢?

在本書(第一本關(guān)于Netty項目的書)中,Norman Maurer(Netty 的核心貢獻者之一)通過展示如何使用Netty構(gòu)建高性能、低延遲的網(wǎng)絡(luò)應(yīng)用程序,給出了這些問題的最終答案。讀完這本書,你就能夠構(gòu)建所有可能的網(wǎng)絡(luò)應(yīng)用程序了,從輕量級的HTTP服務(wù)器到高度定制化的RPC服務(wù)器。

本書之所以能令人印象深刻,一方面是因為它是由知曉Netty每個細節(jié)的核心貢獻者編寫的,另一方面是因為它包含了幾家在其生產(chǎn)系統(tǒng)中使用了Netty的公司(Twitter、Facebook和Firebase等)的案例研

三.作者簡介

Norman Maurer,是蘋果公司的資深軟件工程師,同時也是Netty的核心開發(fā)人員。

Marvin Allen Wolfthal,是Dell Services的顧問,他使用Netty實現(xiàn)了多個任務(wù)關(guān)鍵型的企業(yè)系統(tǒng)。

何品,目前是淘寶的一名資深軟件工程師,熱愛網(wǎng)絡(luò)、并發(fā)、異步相關(guān)的主題以及函數(shù)式編程,同時也是Netty、Akka等項目的貢獻者,活躍于Scala社區(qū),目前也在從事GraphQL相關(guān)的開發(fā)工作。

四.資料目錄

版權(quán)信息

版權(quán)聲明

內(nèi)容提要

中文版序

譯者序

譯者簡介

前言

致謝

關(guān)于本書

關(guān)于封面

插圖

第一部分 Netty的概念及體系結(jié)構(gòu)

第1章 Netty——異步和事件驅(qū)動

1.1 Java網(wǎng)絡(luò)編程

1.1.1 Java NIO

1.1.2 選擇器

1.2 Netty簡介

1.2.1 誰在使用Netty

1.2.2 異步和事件驅(qū)動

1.3 Netty的核心組件

1.3.1 Channel

1.3.2 回調(diào)

1.3.3 Future

1.3.4 事件和ChannelHandler

1.3.5 把它們放在一起

1.4 小結(jié)

第2章 你的第一款Netty應(yīng)用程序 2.1 設(shè)置開發(fā)環(huán)境

2.1.1 獲取并安裝Java開發(fā)工具包

2.1.2 下載并安裝IDE

2.1.3 下載和安裝Apache Maven

2.1.4 配置工具集

2.2 Netty客戶端/服務(wù)器概覽

2.3 編寫Echo服務(wù)器

2.3.1 ChannelHandler和業(yè)務(wù)邏輯

2.3.2 引導(dǎo)服務(wù)器

2.4 編寫Echo客戶端

2.4.1 通過ChannelHandler實現(xiàn)客戶端邏輯

2.4.2 引導(dǎo)客戶端

2.5 構(gòu)建和運行Echo服務(wù)器和客戶端

2.5.1 運行構(gòu)建

2.5.2 運行Echo服務(wù)器和客戶端

2.6 小結(jié)

第3章 Netty的組件和設(shè)計

3.1 Channel、EventLoop和ChannelFuture

3.1.1 Channel接口

3.1.2 EventLoop接口

3.1.3 ChannelFuture接口

3.2 ChannelHandler和ChannelPipeline

3.2.1 ChannelHandler接口

3.2.2 ChannelPipeline接口

3.2.3 更加深入地了解ChannelHandler

3.2.4 編碼器和解碼器

3.2.5 抽象類SimpleChannelInboundHandler

3.3 引導(dǎo)

3.4 小結(jié)

第4章 傳輸 4.1 案例研究:傳輸遷移

4.1.1 不通過Netty使用OIO和NIO

4.1.2 通過Netty使用OIO和NIO

4.1.3 非阻塞的Netty版本

4.2 傳輸API

4.3 內(nèi)置的傳輸

4.3.1 NIO——非阻塞I/O

4.3.2 Epoll——用于Linux的本地非阻塞傳輸

4.3.3 OIO——舊的阻塞I/O

4.3.4 用于JVM內(nèi)部通信的Local傳輸

4.3.5 Embedded傳輸

4.4 傳輸?shù)挠美?/p>

4.5 小結(jié)

第5章 ByteBuf

5.1 ByteBuf的API

5.2 ByteBuf類——Netty的數(shù)據(jù)容器

5.2.1 它是如何工作的

5.2.2 ByteBuf的使用模式

5.3 字節(jié)級操作

5.3.1 隨機訪問索引

5.3.2 順序訪問索引

5.3.3 可丟棄字節(jié)

5.3.4 可讀字節(jié) 5.3.5 可寫字節(jié) 5.3.6 索引管理

5.3.7 查找操作

5.3.8 派生緩沖區(qū)

5.3.9 讀/寫操作

5.3.10 更多的操作

5.4 ByteBufHolder接口

5.5 ByteBuf分配

5.5.1 按需分配:ByteBufAllocator接口

5.5.2 Unpooled緩沖區(qū)

5.5.3 ByteBufUtil類

5.6 引用計數(shù) 5.7 小結(jié)

第6章 ChannelHandler和ChannelPipeline

6.1 ChannelHandler家族

6.1.1 Channel的生命周期

6.1.2 ChannelHandler的生命周期

6.1.3 ChannelInboundHandler接口

6.1.4 ChannelOutboundHandler接口

6.1.5 ChannelHandler適配器

6.1.6 資源管理

6.2 ChannelPipeline接口

6.2.1 修改ChannelPipeline

6.2.2 觸發(fā)事件

6.3 ChannelHandlerContext接口

6.3.1 使用ChannelHandlerContext

6.3.2 ChannelHandler和ChannelHandlerContext的高級用法

6.4 異常處理

6.4.1 處理入站異常

6.4.2 處理出站異常 6.5 小結(jié)

第7章 EventLoop和線程模型

7.1 線程模型概述

7.2 EventLoop接口

7.2.1 Netty 4中的I/O和事件處理

7.2.2 Netty 3中的I/O操作

7.3 任務(wù)調(diào)度

7.3.1 JDK的任務(wù)調(diào)度API

7.3.2 使用EventLoop調(diào)度任務(wù)

7.4 實現(xiàn)細節(jié)

7.4.1 線程管理

7.4.2 EventLoop/線程的分配 7.5 小結(jié)

第8章 引導(dǎo)

8.1 Bootstrap類

8.2 引導(dǎo)客戶端和無連接協(xié)議

8.2.1 引導(dǎo)客戶端

8.2.2 Channel和EventLoopGroup的兼容性

8.3 引導(dǎo)服務(wù)器

8.3.1 ServerBootstrap類

8.3.2 引導(dǎo)服務(wù)器

8.4 從Channel引導(dǎo)客戶端

8.5 在引導(dǎo)過程中添加多個ChannelHandler

8.6 使用Netty的ChannelOption和屬性

8.7 引導(dǎo)DatagramChannel

8.8 關(guān)閉

8.9 小結(jié)

第9章 單元測試

9.1 EmbeddedChannel概述

9.2 使用EmbeddedChannel測試ChannelHandler

9.2.1 測試入站消息

9.2.2 測試出站消息

9.3 測試異常處理

9.4 小結(jié)

第二部分 編解碼器

第10章 編解碼器框架 10.1 什么是編解碼器

10.2 解碼器

10.2.1 抽象類ByteToMessageDecoder

10.2.2 抽象類ReplayingDecoder

10.2.3 抽象類MessageToMessageDecoder

10.2.4 TooLongFrameException類

10.3 編碼器

10.3.1 抽象類MessageToByteEncoder

10.3.2 抽象類MessageToMessageEncoder

10.4 抽象的編解碼器類

10.4.1 抽象類ByteToMessageCodec

10.4.2 抽象類MessageToMessageCodec

10.4.3 CombinedChannelDuplexHandler類 10.5 小結(jié)

第11章 預(yù)置的ChannelHandler和編解碼器 11.1 通過SSL/TLS保護Netty應(yīng)用程序

11.2 構(gòu)建基于Netty的HTTP/HTTPS應(yīng)用程序

11.2.1 HTTP解碼器、編碼器和編解碼器

11.2.2 聚合HTTP消息

11.2.3 HTTP壓縮

11.2.4 使用HTTPS

11.2.5 WebSocket

11.3 空閑的連接和超時

11.4 解碼基于分隔符的協(xié)議和基于長度的協(xié)議

11.4.1 基于分隔符的協(xié)議

11.4.2 基于長度的協(xié)議

11.5 寫大型數(shù)據(jù)

11.6 序列化數(shù)據(jù)

11.6.1 JDK序列化

11.6.2 使用JBoss Marshalling進行序列化

11.6.3 通過Protocol Buffers序列化 11.7 小結(jié)

第三部分 網(wǎng)絡(luò)協(xié)議第12章 WebSocket 12.1 WebSocket簡介

12.2 我們的WebSocket示例應(yīng)用程序

12.3 添加WebSocket支持

12.3.1 處理HTTP請求

12.3.2 處理WebSocket幀

12.3.3 初始化ChannelPipeline

12.3.4 引導(dǎo)

12.4 測試該應(yīng)用程序

如何進行加密

12.5 小結(jié)

第13章 使用UDP廣播事件

13.1 UDP的基礎(chǔ)知識

13.2 UDP廣播

13.3 UDP示例應(yīng)用程序

13.4 消息POJO: LogEvent

13.5 編寫廣播者

13.6 編寫監(jiān)視器

13.7 運行LogEventBroadcaster和LogEventMonitor 13.8 小結(jié)

第四部分 案例研究

第14章 案例研究,第一部分

14.1 Droplr——構(gòu)建移動服務(wù)

14.1.1 這一切的起因

14.1.2 Droplr是怎樣工作的

14.1.3 創(chuàng)造一個更加快速的上傳體驗

14.1.4 技術(shù)棧

14.1.5 性能

14.1.6 小結(jié)——站在巨人的肩膀上

14.2 Firebase——實時的數(shù)據(jù)同步服務(wù)

14.2.1 Firebase的架構(gòu)

14.2.2 長輪詢

14.2.3 HTTP 1.1 keep-alive和流水線化

14.2.4 控制SslHandler

14.2.5 Firebase小結(jié)

14.3 Urban Airship——構(gòu)建移動服務(wù)

14.3.1 移動消息的基礎(chǔ)知識

14.3.2 第三方遞交

14.3.3 使用二進制協(xié)議的例子

14.3.4 直接面向設(shè)備的遞交

14.3.5 Netty擅長管理大量的并發(fā)連接

14.3.6 Urban Airship小結(jié)——跨越防火墻邊界 14.4 小結(jié)

第15章 案例研究,第二部分

15.1 Netty在Facebook的使用:Nifty和Swift[1]

15.1.1 什么是Thrift

15.1.2 使用Netty改善Java Thrift的現(xiàn)狀

15.1.3 Nifty服務(wù)器的設(shè)計

15.1.4 Nifty異步客戶端的設(shè)計

15.1.5 Swift:一種更快的構(gòu)建Java Thrift服務(wù)的方式

15.1.6 結(jié)果

15.1.7 Facebook小結(jié)

15.2 Netty在Twitter的使用:Finagle

15.2.1 Twitter成長的煩惱

15.2.2 Finagle的誕生

15.2.3 Finagle是如何工作的

15.2.4 Finagle的抽象

15.2.5 故障管理

15.2.6 組合服務(wù)

15.2.7 未來:Netty

15.2.8 Twitter小結(jié)

15.3 小結(jié)

附錄

Maven介紹


本文鏈接:http://fangxuan.com.cn/java/373.html

網(wǎng)友評論

熱門文章
隨機文章
熱門標簽
側(cè)欄廣告位