基于.NET Core框架的分布式系統(tǒng)架構(gòu)設計
-
【作 者】湯佳 著
【I S B N 】978-7-5226-0303-2
【責任編輯】陳紅華
【適用讀者群】
【出版時間】2022-04-28
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數(shù)】248
【千字數(shù)】234
【印 張】15.5
【定 價】¥84
【叢 書】暫無分類
【備注信息】
簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關圖書
本書以C#為編程語言,全面介紹了.NET Core開發(fā)和設計高性能Web系統(tǒng)的核心關鍵技術,同時介紹了版本控制、項目管理等開發(fā)中的軟件工程技術。全書共有9章,主要內(nèi)容有Web項目架構(gòu)簡介、架構(gòu)體系的演變歷程、分布式系統(tǒng)理論、分布式文件存儲系統(tǒng)、內(nèi)存知識進階、數(shù)據(jù)全文檢索、消息隊列中間件、微服務架構(gòu)、分布式站點的設計與開發(fā)。
本書可作為高等院校信息類專業(yè)本科Web應用開發(fā)課程的教材或?qū)嵺`指導書,也可作為.NET Core開發(fā)和應用開發(fā)程序員的參考書。
前 言
眾所周知,現(xiàn)代的軟件開發(fā)通常會從下向上抽象為系統(tǒng)層、中間層和應用層。中間層和系統(tǒng)層是支撐體系的基礎,而且更封閉或狹窄,需要人耐得住寂寞,經(jīng)受得起考驗,所以在這個領域出了很多“大牛”。大部分程序員都是為“應用”而生的,畢竟工程要落地在實際業(yè)務應用上才有立足之本,有了應用才有更多商業(yè)價值,“碼農(nóng)”才能養(yǎng)家糊口,所以應用層就如同實踐領域一般,相對不那么容易出“大神”。軟件開發(fā)的教父級人物—Martin Fowler是應用層罕見的“大神”,他將軟件開發(fā)的實踐過程抽象總結(jié)并形成實踐“概念”。他提出的微服務架構(gòu)是一個分布式系統(tǒng)架構(gòu),按業(yè)務領域劃分為獨立的服務單元,滿足越來越復雜的業(yè)務需求,并且可以自動化運維、容錯、快速演進。微服務是“互聯(lián)網(wǎng)+時代”催生的一種設計思想和理念。隨著業(yè)務場景越來越復雜,云計算、大數(shù)據(jù)、區(qū)塊鏈、人工智能飛速發(fā)展,對系統(tǒng)架構(gòu)提出了越來越高的要求,我們原來使用的單體架構(gòu)已經(jīng)不能滿足工作場景的需求,本書應運而生,Martin Fowler的“敏捷開發(fā)方法論”理念給了我巨大的啟發(fā)。
本書主要講解了分布式架構(gòu)層級、分布式和集群的概念、分布式架構(gòu)解決的問題、分布式架構(gòu)的優(yōu)點、分布式系統(tǒng)的關鍵技術、分布式系統(tǒng)核心。本書從多個維度全面剖析分布式系統(tǒng)全棧技術,呈現(xiàn)分布式系統(tǒng)架構(gòu)的多樣性和完整性。
本書結(jié)合作者多年實戰(zhàn)經(jīng)驗,注重基礎知識,兼顧實用能力培養(yǎng),技術全面,可讀性強,既可作為高校計算機專業(yè)本、專科學生的學習資料,又可供計算機、力學、物理學科各專業(yè)選用及社會讀者閱讀。由于編寫時間有限,內(nèi)容略顯陳舊,案例略顯枯燥,技術條理性不夠清晰,希望廣大讀者給予批評指正。
作者
2021年10月
第1章 Web項目架構(gòu)簡介 1
1.1 經(jīng)典三層架構(gòu)模式 1
1.2 工廠模式簡介 5
1.3 高并發(fā)系統(tǒng)存在的瓶頸 9
1.4 大型互聯(lián)網(wǎng)公司系統(tǒng)架構(gòu)圖 12
1.4.1 WikiPedia 技術架構(gòu) 12
1.4.2 Facebook架構(gòu) 13
1.4.3 Yahoo! Mail架構(gòu) 14
1.4.4 Twitter技術架構(gòu) 15
1.4.5 Google App Engine技術架構(gòu) 17
1.4.6 Amazon技術架構(gòu) 18
1.4.7 優(yōu)酷的技術架構(gòu) 20
1.4.8 12306的技術架構(gòu) 24
第2章 架構(gòu)體系的演變歷程 27
2.1 單機構(gòu)建網(wǎng)站 27
2.2 應用服務器與數(shù)據(jù)庫分離 28
2.3 應用服務器負載均衡 29
2.4 數(shù)據(jù)庫讀寫分離 30
2.5 引入搜索引擎實現(xiàn)全文搜索 31
2.6 引入緩存 32
2.7 數(shù)據(jù)庫拆分 34
2.8 應用拆分 35
2.9 引入消息中間件 37
2.10 分布式系統(tǒng)架構(gòu)設計 38
第3章 分布式系統(tǒng)理論 44
3.1 分布式系統(tǒng)的設計理念 44
3.2 分布式系統(tǒng)原理 46
3.3 ZooKeeper原理及應用 49
3.3.1 ZooKeeper的原理與功能 49
3.3.2 ZooKeeper的應用場景 52
3.4 CAP理論 55
3.5 BASE準則 57
3.6 分布式事務 59
3.6.1 數(shù)據(jù)庫單機事務 59
3.6.2 X/OpenDTP事務模型 60
3.6.3 分布式事務解決方案 63
第4章 分布式文件存儲系統(tǒng) 69
4.1 數(shù)據(jù)存儲技術相關知識 69
4.2 NFS網(wǎng)絡文件系統(tǒng) 77
4.3 分布式文件系統(tǒng) 79
4.4 GlusterFS分布式文件系統(tǒng) 82
4.5 Ceph分布式文件存儲系統(tǒng) 84
4.6 CoDFS分布式文件系統(tǒng) 91
4.7 系統(tǒng)實現(xiàn) 93
4.7.1 負載均衡子系統(tǒng) 93
4.7.2 文件管理子系統(tǒng) 96
4.7.3 數(shù)據(jù)庫子系統(tǒng) 98
4.7.4 文件存儲子系統(tǒng)CoDFSStorage 100
第5章 內(nèi)存知識進階 104
5.1 內(nèi)存基本知識 104
5.1.1 錯綜復雜的CPU與簡單的內(nèi)存 104
5.1.2 多核CPU與內(nèi)存共享問題 106
5.1.3 著名的Cache偽共享問題 110
5.1.4 深入理解不一致性內(nèi)存 112
5.2 內(nèi)存發(fā)展歷史 115
5.3 內(nèi)存緩存技術 122
5.3.1 緩存概述 122
5.3.2 緩存實現(xiàn)的方式 124
5.3.3 Memcache的內(nèi)存管理技術 126
5.3.4 Redis解析 128
5.4 內(nèi)存計算產(chǎn)品 130
5.4.1 SAP HANA 130
5.4.2 Hazelcast 133
5.4.3 VoltDB 135
第6章 數(shù)據(jù)全文檢索 138
6.1 Lucene全文檢索 139
6.2 Solr全文檢索 142
6.3 ElasticSearch全文檢索 146
第7章 消息隊列中間件 155
7.1 消息隊列 155
7.2 需要消息隊列的原因 159
7.2.1 異步處理 160
7.2.2 應用解耦 162
7.2.3 流量削峰 163
7.2.4 日志處理 164
7.2.5 消息通信對 165
7.3 消息隊列技術的介紹和原理 166
7.3.1 消息中間件概述 166
7.3.2 MQ的工作原理和基本配置舉例 170
7.3.3 常用消息隊列 173
第8章 微服務架構(gòu) 176
8.1 微服務架構(gòu)興起的原因 176
8.2 Docker容器技術 178
8.3 全面理解微服務架構(gòu) 182
8.4 常見微服務架構(gòu)方案 186
8.4.1 ZeroC IceGrid微服務架構(gòu) 186
8.4.2 Spring Cloud 微服務架構(gòu) 189
8.4.3 基于消息隊列的微服務架構(gòu) 191
8.4.4 Docker Swarm微服務架構(gòu) 192
第9章 分布式站點的設計與開發(fā) 195
9.1 系統(tǒng)開發(fā)的總統(tǒng)設計 195
9.2 共享庫.NETStandard類庫 196
9.3 統(tǒng)一身份認證系統(tǒng) 215
9.4 業(yè)務服務器的開發(fā)與集成 220
9.5 即時消息服務器eChat 221
9.5.1 即時通信技術的發(fā)展 221
9.5.2 即時通信技術 221
9.5.3 即時通信技術的實現(xiàn)—SingalR 224
9.5.4 系統(tǒng)體系結(jié)構(gòu)圖 225
9.5.5 關鍵技術剖析 227
9.6 WebAPI的遠程調(diào)用 227
9.6.1 應用客戶端中的調(diào)用 228
9.6.2 網(wǎng)頁中的調(diào)用方法 234
參考文獻 237
- Python程序設計案例教程(微課版) [主編 石利平 田輝平 余以勝]
- Java面向?qū)ο蟪绦蛟O計 [主編 姜春磊 陳虹潔]
- C語言程序設計實驗指導與實訓(第二版) [主編 倪燃]
- Python程序設計及實踐教程 [肖朝暉]
- C語言程序設計 [魏琴 劉祖珉 趙仕波 肖陽春]
- C語言程序設計實驗教程 [張小剛 司春景]
- 電氣控制與PLC程序設計(第二版) [胡冠山]
- Java Web項目化設計實踐教程 [邱云 曾陳萍]
- C語言程序設計(第三版) [主編 丁紅 王立新 蔡開立]
- Python數(shù)據(jù)分析 [主編 馮志輝 趙磊 李放]
- Python程序設計與應用(第二版) [主編 張廣淵]
- C程序設計實踐教程 [劉衛(wèi)國]
- C程序設計(慕課版) [劉衛(wèi)國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發(fā) [李智威 著]
- MySQL數(shù)據(jù)庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現(xiàn)實應用開發(fā)實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向?qū)ο蟪绦蛟O計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰(zhàn) [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛(wèi)國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛(wèi)國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰(zhàn)——基于UiPath [主編 金鑫]

