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