總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 計算技術、計算機技術
 
 
 
 
Netty進階之路:跟著案例學Netty
 作  者: 李林鋒
 出版單位: 電子工業
 出版日期: 2019.01
 進貨日期: 2019/1/9
 ISBN: 9787121352621
 開  本: 16 開    
 定  價: 593
 售  價: 474
  會 員 價: 435
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

Netty是Java高性能網路編程的明星框架

在阿媯奶玻p網公司Netty是程式員必須掌握的基礎組件

現有Netty圖書多是講解其實現及原理的,缺少對實際應用的指導

在實際使用中遇到Netty故障,需要花大量實踐摸索、試驗解決

本書作者經過多年的積累,將遇到的問題進行分門別類的講解

連接池資源洩漏、服務端意外退出、高併發性能波動及IoT海量連接等

除了描述問題的前因後果,還講解了問題定位的各種思路和方法

以及對於Netty關鍵技術的剖許,再加上作者酣暢淋漓的文風

可以讓你快速領悟到Netty專家花大量時間積累的經驗

對於提高編程水準及分析解決問題的能力大有幫助


內容簡介:

Netty將Java NIO介面封裝,提供了全非同步編程方式,是各大Java專案的網路應用開發必備神器。本書作者是國內Netty技術的先行者和佈道者,本書是他繼《Netty權威指南》之後的又一力作。在本書中,作者將在過去幾年實踐中遇到的問題,以及Netty學習者諮詢的相關問題,進行了歸納和總結,以問題案例做牽引,通過對案例進行剖析,講解問題背後的原理,並結合Netty源碼分析,讓讀者能夠真正掌握Netty,在實際工作中少犯錯。本書中的案例涵蓋了Netty的啟動和停止、記憶體、併發多線程、性能、可靠性、安全等方面,囊括了Netty絕大多數常用的功能及容易讓人犯錯的地方。在案例的分析過程中,還穿插講解了Netty的問題定位思路、方法、技巧,以及解決問題使用的相關工具,對讀者在實際工作中用好Netty具有很大的幫助和啟發作用。本書適合架構師、設計師、開發工程師、測試工程師,以及對Java NIO框架、Netty感興趣的其他相關人士閱讀。


作者簡介:

李林鋒
10年Java NIO通信框架、平臺中間件架構設計和開發經驗。目前在華為終端應用市場負責業務微服務化、雲化、全球化等相關設計和開發工作。《Netty權威指南》和《分佈式服務框架原理與實踐》作者。


圖書目錄:

第1章 Netty服務端意外退出案例 1
1.1 Netty服務端意外退出問題 1
1.1.1 Java Daemon線程簡介 2
1.1.2 Netty服務端啟動原理 4
1.1.3 如何防止Netty服務端意外退出 6
1.1.4 實際專案中的優化策略 8
1.2 Netty優雅退出機制 9
1.2.1 Java優雅退出機制 10
1.2.2 Java優雅退出的注意點 12
1.2.3 Netty優雅退出機制 14
1.2.4 Netty優雅退出原理和源碼分析 15
1.2.5 Netty優雅退出的一些誤區 20
1.3 總結 21
第2章 Netty客戶端連接池資源洩漏案例 22
2.1 Netty連接池資源洩漏問題 22
2.1.1 連接池創建代碼 23
2.1.2 記憶體溢出和線程膨脹 23
2.1.3 錯用NIO編程模式 25
2.1.4 正確的連接池創建方式 26
2.1.5 併發安全和資源釋放 28
2.2 Netty客戶端創建機制 29
2.2.1 Java NIO客戶端創建原理分析 29
2.2.2 Netty客戶端創建原理分析 32
2.2.3 Bootstrap工具類源碼分析 34
2.3 總結 36
第3章 Netty記憶體池洩漏疑雲案例 37
3.1 Netty記憶體池洩漏問題 37
3.1.1 路由轉發服務代碼 38
3.1.2 回應消息記憶體釋放玄機 39
3.1.3 採集堆記憶體快照分析 42
3.1.4 ByteBuf申請和釋放的理解誤區 45
3.2 Netty記憶體池工作機制 48
3.2.1 記憶體池的性能優勢 48
3.2.2 記憶體池工作原理分析 51
3.2.3 記憶體池核心代碼分析 54
3.3 總結 58
第4章 ByteBuf故障排查案例 59
4.1 HTTP協議棧ByteBuf使用問題 59
4.1.1 HTTP回應Body獲取異常 59
4.1.2 ByteBuf非法引用問題 63
4.1.3 ByteBuf使用注意事項 66
4.2 Netty ByteBuf實現機制 67
4.2.1 Java原生ByteBuffer的局限性 67
4.2.2 Netty ByteBuf工作原理分析 67
4.2.3 ByteBuf引用計數器工作原理和源碼分析 70
4.3 總結 73
第5章 Netty發送佇列積壓導致記憶體洩漏案例 74
5.1 Netty發送佇列積壓案例 74
5.1.1 高併發故障場景 74
5.1.2 記憶體洩漏原因分析 76
5.1.3 如何防止發送佇列積壓 78
5.1.4 其他可能導致發送佇列積壓的因素 80
5.2 Netty消息發送工作機制 82
5.2.1 WriteAndFlushTask原理和源碼分析 83
5.2.2 ChannelOutboundBuffer原理和源碼分析 86
5.2.3 消息發送源碼分析 88
5.2.4 消息發送高低水位控制 94
5.3 總結 95
第6章 API網關高併發壓測性能波動案例 96
6.1 高併發壓測性能波動問題 96
6.1.1 故障場景模擬 96
6.1.2 性能波動原因定位 98
6.1.3 主動記憶體洩漏定位法 101
6.1.4 網關類產品的優化建議 102
6.2 Netty消息接入記憶體申請機制 102
6.2.1 消息接入的記憶體分配原理和源碼分析 102
6.2.2 Netty ByteBuf的動態擴容原理和源碼分析 107
6.3 總結 108
第7章 Netty ChannelHandler併發安全案例 109
7.1 Netty ChannelHandler併發安全問題 109
7.1.1 串行執行的ChannelHandler 110
7.1.2 跨鏈路共用的ChannelHandler 114
7.1.3 ChannelHandler的併發陷阱 116
7.2 Netty ChannelHandler工作機制 118
7.2.1 職責鏈ChannelPipeline原理和源碼分析 118
7.2.2 用戶自定義Event原理和源碼分析 122
7.3 總結 123
第8章 車聯網服務端接收不到車載終端消息案例 124
8.1 車聯網服務端接收不到車載終端消息問題 124
8.1.1 故障現象 125
8.1.2 故障期線程堆疊快照分析 126
8.1.3 NioEventLoop線程防掛死策略 128
8.2 NioEventLoop線程工作機制 129
8.2.1 I/O讀寫操作原理和源碼分析 130
8.2.2 非同步任務執行原理和源碼分析 133
8.2.3 定時任務執行原理和源碼分析 135
8.2.4 Netty多線程最佳實踐 137
8.3 總結 137
第9章 Netty 3.X版本升級案例 139
9.1 Netty 3.X的版本升級背景 139
9.1.1 被迫升級場景 140
9.1.2 升級不當遭遇各種問題 140
9.2 版本升級後數據被篡改問題 141
9.2.1 數據篡改原因分析 142
9.2.2 問題總結 143
9.3 升級後上下文丟失問題 143
9.3.1 上下文丟失原因分析 144
9.3.2 依賴第三方線程模型的思考 144
9.4 升級後應用遭遇性能下降問題 145
9.4.1 性能下降原因分析 145
9.4.2 性能優化建議 146
9.5 Netty線程模型變更分析 147
9.5.1 Netty 3.X版本線程模型 147
9.5.2 Netty 4.X版本線程模型 149
9.5.3 線程模型變化點源碼分析 150
9.5.4 線程模型變化總結 152
9.6 總結 154
第10章 Netty併發失效導致性能下降案例 155
10.1 業務ChannelHandler無法併發執行問題 155
10.1.1 服務端併發設計相關代碼分析 155
10.1.2 無法並行執行的EventExecutorGroup 159
10.1.3 並行執行優化策略和結果 161
10.2 Netty DefaultEventExecutor工作機制 163
10.2.1 DefaultEventExecutor原理和源碼分析 164
10.2.2 業務線程池優化策略 165
10.2.3 Netty線程綁定機制原理和源碼分析 168
10.3 總結 170
第11章 IoT百萬長連接性能調優案例 171
11.1 海量長連接接入面臨的挑戰 171
11.1.1 IoT設備接入特點 172
11.1.2 IoT服務端性能優化場景 172
11.1.3 服務端面臨的性能挑戰 172
11.2 智能家居記憶體洩漏問題 173
11.2.1 服務端記憶體洩漏原因定位 173
11.2.2 問題背後的一些思考 174
11.3 操作系統參數調優 174
11.3.1 檔描述符 175
11.3.2 TCP/IP相關參數 175
11.3.3 多網卡佇列和軟中斷 177
11.4 Netty性能調優 177
11.4.1 設置合理的線程數 177
11.4.2 心跳優化 180
11.4.3 接收和發送緩衝區調優 183
11.4.4 合理使用記憶體池 184
11.4.5 防止I/O線程被意外阻塞 185
11.4.6 I/O線程和業務線程分離 187
11.4.7 針對端側併發連接數的流控 187
11.5 JVM相關性能優化 189
11.5.1 GC調優 189
11.5.2 其他優化手段 193
11.6 總結 193
第12章 靜態檢查修改不當引起性能下降案例 195
12.1 Edge Service性能嚴重下降問題 195
12.1.1 Edge Service熱點代碼分析 195
12.1.2 靜態檢查問題不是簡單的一改了之 197
12.1.3 問題反思和改進 200
12.2 克隆和淺拷貝 201
12.2.1 淺拷貝存在的問題 201
12.2.2 Netty的對象拷貝實現策略 203
12.3 總結 204
第13章 Netty性能統計誤區案例 205
13.1 時延毛刺排查相關問題 205
13.1.1 時延毛刺問題初步分析 205
13.1.2 服務調用鏈改進 207
13.1.3 都是同步思維惹的禍 208
13.1.4 正確的消息發送速度性能統計策略 209
13.1.5 常見的消息發送性能統計誤區 212
13.2 Netty關鍵性能指標採集策略 212
13.2.1 Netty I/O線程池性能指標 213
13.2.2 Netty發送佇列積壓消息數 214
13.2.3 Netty消息讀取速度性能統計 215
13.3 總結 215
第14章 gRPC的Netty HTTP/2實踐案例 216
14.1 gRPC基礎入門 216
14.1.1 RPC框架簡介 216
14.1.2 當前主流的RPC框架 218
14.1.3 gRPC框架特點 218
14.1.4 為什麼選擇HTTP/2 219
14.2 gRPC Netty HTTP/2服務端工作機制 220
14.2.1 Netty HTTP/2服務端創建原理和源碼分析 220
14.2.2 服務端接收HTTP/2請求消息原理和源碼分析 224
14.2.3 服務端發送HTTP/2回應消息原理和源碼分析 231
14.3 gRPC Netty HTTP/2客戶端工作機制 234
14.3.1 Netty HTTP/2客戶端創建原理和源碼分析 235
14.3.2 客戶端發送HTTP/2請求消息原理和源碼分析 238
14.3.3 客戶端接收HTTP/2回應消息原理和源碼分析 242
14.4 gRPC消息序列化機制 243
14.4.1 Google Protobuf簡介 243
14.4.2 消息的序列化原理和源碼分析 244
14.4.3 消息的反序列化原理和源碼分析 245
14.5 gRPC線程模型 246
14.5.1 服務端線程模型 246
14.5.2 客戶端線程模型 247
14.5.3 線程模型總結 248
14.6 總結 249
第15章 Netty事件觸發策略使用不當案例 250
15.1 channelReadComplete方法被調用多次問題 250
15.1.1 ChannelHandler調用問題 250
15.1.2 生產環境問題模擬重現 252
15.2 ChannelHandler使用的一些誤區總結 255
15.2.1 channelReadComplete方法調用 255
15.2.2 ChannelHandler職責鏈調用 257
15.3 總結 258
第16章 Netty流量整形應用案例 259
16.1 Netty流量整形功能 259
16.1.1 通用的流量整形功能簡介 260
16.1.2 Netty流量整形功能簡介 260
16.2 Netty流量整形應用 261
16.2.1 流量整形示例代碼 261
16.2.2 流量整形功能測試 263
16.3 Netty流量整形工作機制 264
16.3.1 流量整形工作原理和源碼分析 264
16.3.2 併發編程在流量整形中的應用 271
16.3.3 使用流量整形的一些注意事項總結 274
16.4 總結 278
第17章 Netty SSL應用案例 279
17.1 Netty SSL功能簡介 279
17.1.1 SSL安全特性 280
17.1.2 Netty SSL實現機制 281
17.2 Netty客戶端SSL握手超時問題 282
17.2.1 握手超時原因定位 282
17.2.2 Netty SSL握手問題定位技巧 283
17.3 SSL握手性能問題 284
17.3.1 SSL握手性能熱點分析 284
17.3.2 緩存和對象池 285
17.4 SSL事件監聽機制 286
17.4.1 握手成功事件 286
17.4.2 SSL連接關閉事件 286
17.5 總結 287
第18章 Netty HTTPS服務端高併發宕機案例 288
18.1 Netty HTTPS服務端宕機問題 288
18.1.1 客戶端大量超時 288
18.1.2 服務端記憶體洩漏原因分析 289
18.1.3 NioSocketChannel洩漏原因探究 290
18.1.4 高併發場景下缺失的可靠性保護 292
18.2 功能層面的可靠性優化 294
18.2.1 Netty HTTPS服務端可靠性優化 295


章節試讀:

序1

隨著近幾年的快速發展,移動互聯網系統的複雜度快速上升。為了滿足業務快速迭代的需求,同時提高系統的可靠性和可維護性,越來越多的大型系統後臺開始採用微服務架構。以華為應用市場為例,目前後臺微服務數量達上百個,伺服器多達數千臺。伺服器數量的快速增加,必然導致後臺系統複雜度的快速增加,從而推動後臺技術架構的持續演進。

在單體系統中,一個請求通常只涉及一個部件。但微服務化後,一個請求可能涉及數個微服務的配合。傳統的後臺服務通常採用同步阻塞調用方式,一個請求獨佔一個線程,只有在請求處理完成後,線程才能被釋放。如果一個請求涉及多個微服務之間的調用,那麼每個微服務都需要一個專門的連接和線程來處理這個請求。而系統的線程數和連接數都是有限的。當系統調用關係越來越複雜,一個很小的問題(如網路抖動、突發請求或GC引起的延時增加),都可能導致線程阻塞,引發雪崩,導致整個系統不可用。另一方面,同步阻塞的方式很容易導致系統的資源利用率降低。因此,業界領先的互聯網公司,都已經或者正在切換到全棧非同步方式。

相比同步I/O簡單直接的編程模型,非同步I/O在編程模型上有較大的差異,對開發人員也有更高的要求,同時問題的定位也更為複雜。Netty是當前業界應用最廣泛的Java開源非同步框架。Netty框架能顯著降低非同步開發的門檻,使開發人員聚焦業務邏輯,免於處理複雜的底層通信機制和線程模型,從而能夠簡單和快速地開發非同步應用。時至今日,越來越多的國內公司開始使用Netty來構建應用,使用Netty的開發者也日益增加。

隨著Netty應用的不斷深入,大家在使用過程中也會遇到各種各樣的問題。相比Netty的火熱,市場上Netty相關的書籍卻很少。作者幾年前出版的著作《Netty權威指南》是國內第一本系統化講解Netty原理和架構的書籍,在市場上取得了良好的反響。《Netty進階之路:跟著案例學Netty》是作者在Netty方面的又一力作。該書從一個個典型的問題出發,讓讀者能夠帶著問題來展開學習,並通過代碼解讀、原理分析和問題總結,對每個問題抽絲剝繭地深入解析;同時,能夠通過一個問題,將相關領域的知識理解透徹,達到舉一反三的效果,進而實現對Netty的系統性學習與理解。

李林鋒在電信軟體行業有著近十年的非同步和服務化方面的開發和架構設計經驗,是華為公司該領域的專家。他從2017年開始負責華為應用市場在非同步和微服務化方面的工作,主導了華為應用市場後臺的非同步化和微服務化演進,將電信軟體嚴謹、穩定、高性能的優勢,與移動互聯網海量用戶、高併發場景結合起來,顯著提升了華為應用市場的可用性和性能。本書凝結了作者多年來在非同步化工作方面的經驗,將成為希望精通Netty開發的讀者的重要參考書。

華為應用市場總架構師 劉連喜



序2

隨著互聯網對各行各業的滲透,“連接”便成了我們看到的所有美好應用背後的基石。人、系統、物三者之間無所不在的連接讓我們甚至感覺這世界已經成為了一個整體。細數一些電腦領域的熱門技術,例如雲計算、微服務、物聯網等,其背後的核心還是連接。在這樣一個背景下,掌握Netty可以算得上是一個開發人員最重要的技能。

就像碼農的學名其實是電腦工程師一樣,電腦其實是一個工程學科,是一個天生看重實踐的學科。在現在的環境堙A各種技術文檔在網上一抓一大把,但是仍然有一些東西很難得到,那就是你需要填的那些坑。

李林鋒長期工作在技術一線,構建的是壓力最大的系統,保證的是要求最高的服務,解決的是詭異難解的問題。而難能可貴的是,他把他自己填過的那些坑都詳盡地記錄了下來,不僅提供思路,還分析原理,讓所有問題都無所遁形。

《Netty進階之路:跟著案例學Netty》就是能夠助人出坑的乾貨。

佛教的修行次第是“信,解,行,證”。李林鋒一直以來對技術的熱情、“知行合一”的行事方式和對問題刨根問底的工作態度非常難得,相信通過這本書也可以讓你由“解”入“行”,他趟過那些大坑的經驗也一定會助你早日在Netty學習的路上實現“自證”。

華為雲高級架構師 張琦



前言

自2014年《Netty權威指南》出版後,我在技術網站上相繼寫了一些Netty專題文章,涵蓋性能、線程模型、安全性等知識點,受到很多讀者的喜愛。在4年多堙A很多讀者及Netty學習者向我諮詢Netty相關的問題,這些問題加起來多達上千個,通過對問題做匯總和分析,可以歸納為如下幾類:

(1)Netty初學者,想瞭解學習Netty需要儲備哪些技能,掌握哪些知識點,有什麼學習技巧可以更快地掌握Netty。

(2)《Netty權威指南》的讀者,學習完理論知識後,想在實際專案中使用,但是真正跟具體專案結合在一起解決實際問題時,又感覺比較棘手,不知道自己使用的方式是否是最優的,希望能夠多學一些案例實踐方面的知識,以便更好地在業務中使用Netty。

(3)在實際專案中遇到了問題的工程師,由於對Netty底層細節掌握得不扎實,無法有效地定位並解決問題。

Netty的一個特點就是入門相對容易,但是真正掌握並精通是非常困難的,原因有如下幾個:

(1)涉及的知識面比較廣。Netty作為一個高性能的NIO通信框架,涉及的知識點包括網路通信、多線程編程、序列化和反序列化、非同步和同步、SSL/TLS安全、記憶體池、HTTP等各種協議棧,這些知識點在Java語言中本身就是難點和重點,如果對這些基礎知識掌握不扎實,是很難真正掌握好Netty的。

(2)調試比較困難。因為大量使用非同步編程介面,以及消息處理過程中的各種線程切換,相比傳統同步代碼,Netty代碼調試難度比較大。

(3)類繼承層次比較深,有些代碼很晦澀(例如記憶體池)。對於初學者而言,通過閱讀代碼來掌握Netty的難度還是很大的。

(4)代碼規模龐大。目前,Netty的代碼規模已經非常龐大,特別是協議棧部分,提供了對HTTP/2、MQTT、WebSocket等各種協議的支持,相關代碼非常多。如果學習方式不當,抓不住重點,則全量閱讀Netty源碼,既耗時又很難吃透,很容易半途而廢。

(5)資料零散,缺乏與實踐相關的案例。網上Netty的各種資料非常多,但是都以理論講解為主,Netty在各行業中的應用、問題定位技巧及案例實踐方面的資料很少,缺乏系統性的實踐總結,是Netty學習的一大痛點。

在過去的幾年中,我利用業餘時間儘量幫大家答疑解惑,但實際上一個人很難回答所有讀者的問題,有些問題需要業務描述、故障場景、日誌,甚至要看源碼,而且需要反復多次溝通來弄清楚問題,對於個人而言,時間和精力都很難得到保證。另外,一些比較常見的問題,例如服務端接收不到客戶端的消息,定位手段是可以固化下來的。很多讀者也希望我能寫一本Netty實踐和案例方面的書,通過案例講解讓大家更好地在專案中使用Netty,解決遇到的實際問題。

於是我對手頭大家諮詢的問題做了歸類分析,結合我們自己的業務和平臺多年來在Netty實踐中積累的經驗,寫作了本書。本書以問題案例做牽引,通過對案例進行剖析,講解問題背後的原理,並結合Netty源碼分析,讓讀者能夠真正掌握Netty,在實際工作中少犯錯。在案例的分析過程中,還穿插講解了Netty的問題定位思路、方法、技巧,以及解決問題使用的相關工具,“授人以魚不如授人以漁”,只有掌握了這些才能在專案中更放心地使用Netty。

本書的內容分類主要包括:

(1)Netty的啟動和停止

(2)Netty的記憶體

(3)Netty的併發多線程

(4)Netty的性能

(5)Netty的可靠性

(6)Netty的安全

(7)Netty的實踐

(8)Netty的學習

書中的案例涵蓋了Netty絕大多數常用的功能,以及容易犯錯的地方,具有通用性和普遍性。學習這些案例,對於在實際業務工作中用好Netty具有很大的幫助和啟發作用。另外,在講解Netty框架本身的同時,也會穿插一些背景知識介紹,例如Java信號量和優雅停機機制、Java的NIO類庫、HTTP協議棧等。知識都是相互關聯的,很難在基礎知識不扎實的情況下掌握更高階的知識。

通過本書的學習,希望廣大Netty初學者和愛好者能夠更快、更好地進入高級階段,在專案中用好Netty,為業務創造更多的價值。

儘管我也有技術潔癖,希望諸事完美,但是由於Netty代碼的龐雜和涉及的知識點太多,以及受限於我個人的經歷和水準,很難在一本書埵P時滿足所有讀者的訴求。本書如有遺漏或者錯誤,懇請大家及時批評和指正,如果大家有好的建議或者想法,也可以聯繫我。聯繫方式如下:

◎微信:Nettying

◎新浪微博:Nettying

能夠完成本書要感謝很多人,首先感謝華為公司給我提供了足夠大的舞臺,感謝華為消費者雲服務應用市場團隊領導張凡、葉文武、劉連喜等,以及這些年與我在平臺和業務團隊一起戰鬥過的架構師、設計師、開發工程師、測試工程師和資料員等同事。

其次感謝我的家人,你們一直在背後默默地支持我。感謝參與本書編輯的英姐、美工及其他人員,你們的辛苦換來了本書的如期上市。

最後感謝所有《Netty權威指南》和《分佈式服務框架原理與實踐》的讀者,你們的支持和鼓勵是我寫作本書的動力源泉。

李林鋒

2018年國慶日於南京

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。