注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計Vert.x實戰(zhàn)

Vert.x實戰(zhàn)

Vert.x實戰(zhàn)

定 價:¥98.00

作 者: [法] 于連·蓬熱(Julien Ponge) 著,黃灰紅 譯
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

ISBN: 9787302605676 出版時間: 2022-06-01 包裝: 平裝
開本: 16開 頁數(shù): 312 字數(shù):  

內(nèi)容簡介

  主要內(nèi)容● 如何構(gòu)建反應式的服務● 如何對外部服務的故障做出響應● 如何進行水平擴展● Vert.x工具包的架構(gòu)及其測試方式● 如何基于Docker和Kubernetes部署服務

作者簡介

  本書作者Julien Ponge是Red Hat公司的首席軟件工程師,致力于Eclipse Vert.x項目。

圖書目錄

第Ⅰ部分  基于Vert.x的異步編程基本原理
第1章  Vert.x、異步編程和反應式系統(tǒng) 3
1.1  分布式和網(wǎng)絡(luò)化是常態(tài) 3
1.2  我們不是在孤島上生活 4
1.3  網(wǎng)絡(luò)上沒有免費的午餐 5
1.4  簡潔的阻塞式API 5
1.5  阻塞式API浪費了資源,增加了成本 7
1.6  基于非阻塞I/O的異步
編程 9
1.7  事件驅(qū)動的多路復用:事件循環(huán) 12
1.8  什么是反應式系統(tǒng) 15
1.9  反應式還有哪些含義 16
1.10  什么是Vert.x 17
1.11  你的第一個Vert.x應用  程序 18
1.11.1  準備項目 18
1.11.2  VertxEcho類 19
1.11.3  回調(diào)函數(shù)的角色 21
1.11.4  它是反應式的嗎 22
1.12  Vert.x的替代品 23
1.13  本章小結(jié) 25
第2章  Verticle:Vert.x的基本處理單元 27
2.1  編寫一個Verticle 27
2.1.1  準備項目 28
2.1.2  實現(xiàn)Verticle類 29
2.1.3  運行并初次觀察 30
2.2  關(guān)于Verticle的更多細節(jié) 32
2.2.1  阻塞與事件循環(huán) 32
2.2.2  生命周期事件的異步通知 33
2.2.3  部署Verticle 35
2.2.4  傳遞配置參數(shù) 38
2.3  當代碼需要阻塞時 39
2.3.1  Worker Verticle 39
2.3.2  executeBlocking方法 40
2.4  Verticle中到底有什么 42
2.4.1  Verticle及其環(huán)境 42
2.4.2  關(guān)于Verticle Context的更多細節(jié) 43
2.4.3  橋接Vert.x線程和非Vert.x線程 45
2.5  本章小結(jié) 46
第3章  事件總線:Vert.x應用程序的骨干 47
3.1  什么是事件總線 47
3.1.1  事件總線是不是另一種消息代理 48
3.1.2  “點對點”模式 49
3.1.3  “請求-應答”模式 49
3.1.4  “發(fā)布-訂閱”模式 50
3.2  事件總線的示例 51
3.2.1  溫度傳感器Verticle 52
3.2.2  監(jiān)聽器Verticle 53
3.2.3  傳感器數(shù)據(jù)Verticle 54
3.2.4  HTTP服務器Verticle 54
3.2.5  啟動應用程序 58
3.3  集群化和分布式的事件總線 59
3.3.1  Vert.x中的集群 59
3.3.2  從事件總線到分布式事件總線 60
3.4  本章小結(jié) 63
第4章  異步數(shù)據(jù)和事件流 65
4.1  統(tǒng)一的流模型 65
4.2  什么是背壓 68
4.3  開發(fā)一個音樂流點唱機 70
4.3.1  功能與用法 71
4.3.2  HTTP處理:宏觀視圖 73
4.3.3  點唱機Verticle的基礎(chǔ) 73
4.3.4  傳入的HTTP連接 75
4.3.5  盡可能高效地下載 76
4.3.6  讀取MP3文件,但不能太快 77
4.4  解析簡單的流 81
4.5  解析復雜的流 83
4.6  關(guān)于流獲取模式的簡短說明 86
4.7  本章小結(jié) 88
第5章  回調(diào)以外的異步編程模型 89
5.1  構(gòu)建異步操作:一個邊緣服務的示例 89
5.1.1  應用場景 90
5.1.2  溫度傳感器Verticle 91
5.1.3  快照服務Verticle 92
5.2  回調(diào) 93
5.2.1  實現(xiàn) 93
5.2.2  運行 95
5.2.3  “回調(diào)地獄”不是根本問題 96
5.3  Future和Promise 98
5.3.1  Vert.x中的Future和Promise 98
5.3.2  Vert.x 4中基于Future的API 100
5.3.3  與CompletionStage API的互操作 100
5.3.4  使用Vert.x Future特性實現(xiàn)的Collector 
Service 102
5.4  反應式擴展 103
5.4.1  RxJava的簡要說明 104
5.4.2  RxJava與Vert.x 107
5.4.3  用RxJava實現(xiàn)的CollectorService 108
5.5  Kotlin協(xié)程 111
5.5.1  什么是協(xié)程 111
5.5.2  Vert.x與Kotlin的協(xié)程 112
5.5.3  使用協(xié)程實現(xiàn)邊緣服務 113
5.6  究竟應該用哪一種模型 115
5.7  本章小結(jié) 116
第6章  不只是事件總線 117
6.1  用服務API重新實現(xiàn)溫度傳感器 117
6.2  RPC的回歸 118
6.3  定義服務接口 119
6.4  服務的實現(xiàn) 121
6.5  啟用Proxy代碼自動生成 122
6.6  部署事件總線服務 122
6.7  回調(diào)之外的服務代理 123
6.8  Vert.x中的測試 125
6.8.1  在Vert.x中使用JUnit 5 125
6.8.2  測試DataVerticle 126
6.8.3  運行測試 129
6.9  本章小結(jié) 129
第Ⅱ部分  用Vert.x開發(fā)反應式服務
第7章  設(shè)計一個反應式應用程序 133
7.1  反應式應用程序的必要條件 133
7.2  “一萬步挑戰(zhàn)” 134
7.3  一個應用程序,多個服務 137
7.4  服務規(guī)范 139
7.4.1  用戶資料服務 139
7.4.2  數(shù)據(jù)收集服務 140
7.4.3  用戶活動服務 141
7.4.4  對外接口服務 143
7.4.5  用戶Web應用程序 144
7.4.6  事件統(tǒng)計服務 145
7.4.7  賀信服務 146
7.4.8  公告牌Web應用程序 146
7.5  運行應用程序 147
7.6  本章小結(jié) 149
第8章  Web技術(shù)棧 151
8.1  實現(xiàn)對外接口服務 152
8.1.1  路由HTTP請求 152
8.1.2  發(fā)起HTTP請求 154
8.2  用JWT令牌進行訪問控制 156
8.2.1  使用JWT令牌 156
8.2.2  JWT令牌中有
什么 158
8.2.3  用Vert.x處理JWT令牌 159
8.2.4  用Vert.x簽發(fā)JWT令牌 161
8.3  跨域資源共享(CORS) 162
8.3.1  問題在哪里 162
8.3.2  在Vert.x中支持CORS 164
8.4  一個現(xiàn)代化的Web前端 165
8.4.1  Vue.js 165
8.4.2  Vue.js應用程序結(jié)構(gòu)及構(gòu)建集成 166
8.4.3  后端集成的效果演示 168
8.4.4  在Vert.x中服務靜態(tài)內(nèi)容 170
8.5  編寫集成測試 171
8.6  本章小結(jié) 175
第9章  Vert.x中的消息機制與事件流 177
9.1  用Vert.x實現(xiàn)基于事件驅(qū)動的服務 177
9.1.1  Vert.x為我們提供了什么 178
9.1.2  我們會用到的中間件和服務 179
9.1.3  AMQP和Message Broker簡介 179
9.1.4  Kafka簡介 180
9.2  通過HTTP和AMQP
可靠地接收消息 181
9.2.1  從AMQP接收數(shù)據(jù) 181
9.2.2  將AMQP消息轉(zhuǎn)換成Kafka記錄 183
9.2.3  從HTTP接收數(shù)據(jù) 185
9.3  發(fā)送賀信 186
9.3.1  監(jiān)聽每日步數(shù)變化 187
9.3.2  發(fā)送郵件 188
9.4  集成測試 190
9.4.1  測試收取功能 190
9.4.2  測試賀信功能 193
9.5  本章小結(jié) 196
第10章  用數(shù)據(jù)庫進行持久化狀態(tài)管理 197
10.1  數(shù)據(jù)庫與Vert.x 197
10.1.1  Eclipse Vert.x支持的數(shù)據(jù)庫客戶端 198
10.1.2  數(shù)據(jù)對象映射并非必需 199
10.2  使用MongoDB的用戶資料服務 200
10.2.1  數(shù)據(jù)模型 200
10.2.2  用戶資料API Verticle及其初始化 201
10.2.3  校驗用戶輸入 202
10.2.4  在MongoDB中添加用戶 203
10.2.5  用戶的認證 206
10.2.6  獲取用戶數(shù)據(jù) 207
10.2.7  更新用戶數(shù)據(jù) 208
10.3  使用PostgreSQL的用戶活動服務 209
10.3.1  服務的數(shù)據(jù)模型 209
10.3.2  打開一個連接池 210
10.3.3  設(shè)備更新事件的生命周期 210
10.3.4  插入新記錄 211
10.3.5  生成設(shè)備的每日運動更新 213
10.3.6  用戶活動服務的查詢接口 214
10.4  集成測試 215
10.4.1  測試用戶資料服務 215
10.4.2  測試用戶活動服務接口 218
10.4.3  測試用戶活動服務的事件處理 219
10.5  本章小結(jié) 222
第11章  端到端的實時反應式事件處理 223
11.1  使用Kafka和RxJava實現(xiàn)高級的流式數(shù)據(jù)處理 223
11.1.1  生成用戶當天步數(shù)更新 224
11.1.2  計算數(shù)據(jù)收集服務的吞吐量 226
11.1.3  計算各城市的數(shù)據(jù)趨勢 227
11.2  實時的反應式Web應用  程序 229
11.2.1  將Kafka消息轉(zhuǎn)發(fā)至Vert.x事件總線 230
11.2.2  橋接事件總線和Web應用程序 231
11.2.3  Web應用程序基于Kafka消息的實時更新 233
11.3  流與狀態(tài) 235
11.3.1  數(shù)據(jù)更新流 235
11.3.2  排名數(shù)據(jù)的水合階段 235
11.3.3  根據(jù)消息流周期性地更新排名 237
11.4  本章小結(jié) 240
第12章  通過負載測試和混沌測試提升系統(tǒng)響應能力 241
12.1  初始實驗:系統(tǒng)的性能  好嗎 242
12.1.1  負載測試前的一些考量 242
12.1.2  用Locust模擬用戶 243
12.1.3  用Hey進行負載測試 246
12.2  混沌測試 250
12.2.1  測試方案 250
12.2.2  用Pumba進行混沌測試 251
12.2.3  系統(tǒng)尚不具備回彈性 253
12.3  從“可擴展性”到“可擴展
  性 回彈性” 254
12.3.1  強制超時 254
12.3.2  使用斷路器 256
12.3.3  回彈性與后備策略 260
12.4  本章小結(jié) 264
第13章  容器原生的Vert.x 265
13.1  云環(huán)境里的溫度傳感器 266
13.1.1  溫度傳感器服務 267
13.1.2  傳感器網(wǎng)關(guān) 268
13.1.3  Heat API 269
13.1.4  部署本地集群 271
13.2  讓服務運行在  Kubernetes中 275
13.2.1  構(gòu)建容器鏡像 276
13.2.2  集群與Kubernetes 278
13.2.3  Kubernetes的部署描述文件 280
13.3  Kubernetes中的一等公民 284
13.3.1  健康檢查 284
13.3.2  數(shù)據(jù)指標 288
13.4  是結(jié)束也是開始 291
13.5  本章小結(jié) 291
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號