-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
反應式應用開發 版權信息
- ISBN:9787302563563
- 條形碼:9787302563563 ; 978-7-302-56356-3
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
反應式應用開發 本書特色
《反應式應用開發》將深入淺出地講解包含反應式編程在內的與反應式應用開發有關的各個基本概念以及一些常用的模型與工具。通過閱讀本書,具備一定開發經驗的讀者將能夠充分理解反應式技術領域所涉及的方方面面,并且可以親自動手開發出具 備反應式基本特性的應用。 《反應式應用開發》示例采用的是漸進演化的方式,以期讀者可以逐步實踐,循序漸進地掌握反應式編程的微妙之處。 雖然本書內容都是以Akka 框架為基礎展開的,不過譯者認為,作為開發人員, 我們不應僅著眼于某個框架,而是要通過現象看清本質,框架只不過是思想體系或方法論的實踐落地而已。希望讀者可以通過閱讀本書掌握反應式編程的理論精髓,而不是僅僅停留在可以用 Akka框架編寫反應式應用這樣的層面上。
反應式應用開發 內容簡介
關鍵任務型應用必須立即響應負載的變化、從故障中優雅地恢復并滿足對性能、成本和可靠性的嚴格要求。這可不是什么小任務!反應式設計能夠通過模塊化、消息驅動的架構、創新的工具和基于云的基礎設施更容易地滿足這些需求。 《反應式應用開發》介紹如何使用反應式設計模式構建可靠的企業級應用。本書首先介紹了反應式思維模型以及對Akka參與者框架等核心技術的審視。然后使用Scala構建了一個概念驗證系統,并講解CQRS和事件溯源等模式的應用。在實現伸縮性和回彈性、與傳統架構集成以及理解強大的測試技術的同時,讀者將掌握反應式設計原則。 主要內容 設計可伸縮的領域模型 構建可容錯的系統 高效應對海量數據 可以用Scala或Java構建的示例
反應式應用開發 目錄
第Ⅰ部分 基礎知識
第1章 什么是反應式應用 3
1.1 為何需要反應式應用 5
1.1.1 分布式計算 5
1.1.2 云計算 6
1.2 網上購物車:表象之下的復雜性 7
1.2.1 單體式架構:難以分布 7
1.2.2 反應式架構:默認就是分布式的 13
1.2.3 理解反應式架構 15
1.2.4 單體式購物車:創建訂單 17
1.2.5 事件溯源:銀行賬戶登記 19
1.2.6 反應式購物車:使用事件溯源創建訂單 20
1.3 反應式應用能對哪些對象做出反應 23
1.4 通過本書能學到什么 24
1.4.1 使用松耦合設計的異步通信 24
1.4.2 伸縮性 24
1.4.3 回彈性 25
1.4.4 響應性 25
1.4.5 測試 25
1.5 本章小結 26
第2章 初識Akka 27
2.1 理解消息和參與者 28
2.1.1 從函數轉向參與者 28
2.1.2 使用參與者和消息進行領域建模 30
2.1.3 定義消息 31
2.1.4 定義參與者 32
2.2 安裝示例項目 34
2.3 啟動參與者系統 36
2.3.1 創建驅動 37
2.3.2 運行驅動程序 37
2.4 跨多個系統分布參與者 38
2.4.1 分布到兩個JVM 38
2.4.2 為遠程參與者進行配置 39
2.4.3 設置驅動程序 40
2.4.4 運行分布式參與者 42
2.5 使用多個參與者進行擴展 43
2.5.1 傳統方案 43
2.5.2 像參與者函數那樣路由 44
2.6 創建參與者池 45
2.6.1 添加池路由器 46
2.6.2 運行池化的參與者系統 47
2.7 使用多參與者系統進行擴展 48
2.7.1 添加分組路由器 49
2.7.2 運行多個參與者系統 51
2.8 應用反應式原則 51
2.9 本章小結 52
第3章 理解Akka 53
3.1 Akka是什么 54
3.2 Akka現狀 55
3.2.1 變得可響應 56
3.2.2 可靠地保留數據 56
3.2.3 需求越來越大的回彈性和易伸縮性 57
3.2.4 使用Spark支持大數據 58
3.3 Akka專用術語 58
3.3.1 并發和并行 58
3.3.2 異步和同步 59
3.3.3 競爭 62
3.3.4 完全無共享 63
3.4 參與者 65
3.4.1 狀態 66
3.4.2 參與者引用 66
3.4.3 異步消息傳遞 66
3.4.4 郵箱 68
3.4.5 行為和receive循環 69
3.4.6 監管 75
3.5 參與者系統 76
3.5.1 層級結構 76
3.5.2 監管 78
3.5.3 參與者路徑 79
3.5.4 參與者生命周期 80
3.5.5 微內核容器 81
3.6 本章小結 82
第Ⅱ部分 構建反應式應用
第4章 從領域映射到工具集 85
4.1 基于領域模型進行設計 86
4.1.1 一種更好的解決方案 86
4.1.2 從類比轉向應用 86
4.1.3 創建卡片目錄 88
4.2 轉變為消息驅動 89
4.3 使用消息控制參與者狀態 91
4.3.1 向自己發送消息 91
4.3.2 使用狀態改變行為 93
4.3.3 管理更多的復雜交互 95
4.3.4 保持簡單性 99
4.3.5 運行應用 102
4.3.6 進展回顧 102
4.4 增大伸縮性 103
4.4.1 Akka路由 103
4.4.2 調度器 106
4.4.3 運行具有路由器的應用 108
4.5 回彈性 109
4.5.1 故障的Librarian參與者 109
4.5.2 運行故障應用 111
4.5.3 Librarian監管 111
4.5.4 運行具有回彈監管的應用 113
4.6 本章小結 113
第5章 領域驅動設計 115
5.1 什么是領域驅動設計 116
5.1.1 大泥球 117
5.1.2 限界上下文 121
5.1.3 通用語言 122
5.1.4 實體、聚合與值對象 123
5.1.5 服務、倉儲和工廠 126
5.1.6 防腐層 128
5.1.7 分層架構 129
5.1.8 Saga 130
5.1.9 共享內核 130
5.2 基于參與者的領域 131
5.2.1 簡單的Akka航班領域 131
5.2.2 Aircraft參與者 132
5.2.3 Akka Process Manager 133
5.3 本章小結 135
第6章 使用遠程參與者 137
6.1 重構為分布式系統 138
6.1.1 劃分成多個參與者系統 138
6.1.2 使用sbt進行結構化 139
6.2 配置應用 140
6.2.1 創建**個驅動程序 141
6.2.2 引入application.conf 142
6.2.3 使用HOCON 143
6.2.4 配置應用 144
6.3 使用Akka進行遠程通信 145
6.3.1 構造遠程引用 145
6.3.2 解析引用 146
6.3.3 在客戶端之間進行替換 148
6.3.4 創建另一個驅動程序 151
6.4 運行分布式示例 153
6.4.1 啟動Customer驅動程序 154
6.4.2 啟動RareBooks驅動程序 155
6.4.3 創建一些顧客 155
6.4.4 檢查結果 155
6.5 分布式系統中的可靠性 156
6.5.1 將可靠性作為一種設計規范 157
6.5.2 Akka提供的保障方法 159
6.6 本章小結 163
第7章 反應式流 165
7.1 緩存過多的消息 166
7.2 使用背壓進行防護 167
7.2.1 停止和等待 167
7.2.2 表明多條消息的信號 170
7.2.3 流的控制 171
7.3 使用Akka進行流處理 172
7.3.1 將流添加到項目 173
7.3.2 從文件創建流的源 174
7.3.3 轉換流 175
7.3.4 將流轉換成參與者消息 176
7.3.5 小結 178
7.4 Reactive Streams介紹 179
7.4.1 創建反應式流 179
7.4.2 消費反應式流 180
7.4.3 構建使用流處理的應用 181
7.5 本章小結 181
第8章 CQRS與事件溯源 183
8.1 面向CQRS/ES的驅動因素 184
8.1.1 ACID事務 184
8.1.2 傳統的RDBMS缺乏分片 185
8.1.3 CRUD 185
8.2 CQRS的起源:命令、查詢以及兩條不同的路徑 186
8.3 CQRS中的C 189
8.3.1 什么是命令 189
8.3.2 拒絕 190
8.3.3 原子性 190
8.3.4 雜而不精 191
8.3.5 行為的欠缺 192
8.3.6 訂單示例:訂單命令 192
8.3.7 不間斷命令驗證 193
8.3.8 沖突解決 196
8.4 CQRS中的Q 197
8.4.1 阻抗不匹配 197
8.4.2 什么是查詢 199
8.4.3 不必動態查詢 201
8.4.4 對比SQL與NoSQL數據庫 201
8.5 事件溯源 202
8.5.1 什么是事件 202
8.5.2 所有一切都與行為有關 204
8.5.3 分布式事務之外的考慮事項 204
8.5.4 訂單示例 204
8.5.5 再談一致性 208
8.5.6 重試模式 209
8.5.7 對比命令溯源與事件溯源 210
8.6 本章小結 210
第9章 反應式接口 211
9.1 什么是反應式接口 212
9.1.1 API層 212
9.1.2 無頭API 212
9.2 表述性RESTful接口 213
9.2.1 對比JSON與XML 214
9.2.2 表述性RESTful接口URL 214
9.2.3 Location 215
9.3 選擇反應式API庫 216
9.3.1 Play 216
9.3.2 專斷 217
9.3.3 Play應用的結構 217
9.3.4 簡單路由 219
9.3.5 非阻塞服務接口 220
9.4 Akka HTTP:一個簡單的CQRS式的服務 223
9.5 Lagom:訂單示例 227
9.6 Play、Akka HTTP和Lagom之間的對比 228
9.7 本章小結 229
第10章 生產上線準備 231
10.1 測試反應式應用 232
10.1.1 識別測試模式 232
10.1.2 測試并發行為 233
10.2 應用安全防護 234
10.2.1 認識STRIDE中定義的威脅 235
10.2.2 御敵于國門之外 236
10.2.3 添加HTTPS 237
10.3 對參與者進行日志記錄 238
10.3.1 可堆疊日志 239
10.3.2 配置日志系統 240
10.4 跟蹤消息 242
10.4.1 使用Dapper模式收集跟蹤數據 243
10.4.2 減少對OpenTracing的依賴 245
10.4.3 集成OpenTracing與Akka 246
10.4.4 使用Spider模式找出路徑 253
10.5 監控反應式應用 254
10.5.1 使用Lightbend Monitoring監控核心指標 254
10.5.2 使用Kamon創建自定義指標 255
10.6 應對故障 255
10.6.1 決定要重啟的對象 256
10.6.2 路由考量 256
10.6.3 某種程度上的恢復 257
10.7 部署到云端 258
10.7.1 要素隔離 258
10.7.2 將參與者Docker化 259
10.7.3 其他打包選項 261
10.8 本章小結 261
反應式應用開發 作者簡介
Sean Walsh已經在技術行業工作了20多年。在此期間,他從一開始使用Microsoft技術體系的語言和框架進行編程,轉變到在20世紀90年代中期成為Java的早期使用者。Sean為許多垂直領域(特別是金融、能源和零售行業)的初創公司和企業提供咨詢。自1996年以來,他一直是曼哈頓一家成功的中型咨詢公司的首席技術官和聯合創始人。他還是SOA Software的服務副總裁,以及一家利潤豐厚的軟件咨詢公司的所有者。 在賣掉上一家公司并休息了一段時間后,Sean決定再次揚帆起航,并且再次開始在能源行業從事實踐咨詢工作,最初使用的是Java和Spring,但在看到它們的局限性后,Sean開始使用Akka和Scala。Sean在使用Lightbend開源技術棧構建分布式應用方面積累了多年的經驗,其中包括Weight Watchers的數字化轉型。 Sean現在是Lightbend的現場CTO,負責幫助Lightbend的客戶實現反應式架構。 Duncan Devore是Lightbend的首席系統工程師,并且多年來一直是Scala、Akka和反應式應用的堅定支持者,他開發了第一批投入生產使用的反應式應用之一。他還是Martin Krasser最初的事件溯源項目的提交者,該項目后來發展成為Akka Persistence,同時他還維護著Akka Persistence Mongo Journal。 Brian Hanafee首次涉足書籍編寫是作為《反應式設計模式》(Reactive Design Patterns,該書已由清華大學出版社引進并出版)的合著者。他是富國銀行(Wells Fargo Bank)的首席系統架構師,負責各種不同的開發活動,并一直提倡提高技術水平。此前,Brian就職于Oracle公司,致力于互動電視和文本處理的新產品及系統的研發。1994年,他在一輛行駛的汽車上發出了第一封電子郵件。在此之前,Brian曾在Booz、Allen & Hamilton和Advanced Decision Systems擔任助理,并將人工智能技術應用于軍事規劃系統。他還為其中的首批彈射安全頭盔式顯示系統編寫了軟件。 Brian在加州大學伯克利分校獲得了電子工程和計算機科學學士學位。
- >
朝聞道
- >
伯納黛特,你要去哪(2021新版)
- >
月亮與六便士
- >
羅曼·羅蘭讀書隨筆-精裝
- >
詩經-先民的歌唱
- >
山海經
- >
我從未如此眷戀人間
- >
【精裝繪本】畫給孩子的中國神話