注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信可伸縮服務(wù)架構(gòu):框架與中間件

可伸縮服務(wù)架構(gòu):框架與中間件

可伸縮服務(wù)架構(gòu):框架與中間件

定 價(jià):¥109.00

作 者: 李艷鵬,楊彪,李海亮,賈博巖,劉淏 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)?網(wǎng)絡(luò) 網(wǎng)絡(luò)與數(shù)據(jù)通信

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787121335723 出版時(shí)間: 2018-03-01 包裝: 平裝
開(kāi)本: 16 頁(yè)數(shù): 580 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《可伸縮服務(wù)架構(gòu):框架與中間件》以高可用服務(wù)架構(gòu)為主題,側(cè)重于講解高可用架構(gòu)設(shè)計(jì)的核心要點(diǎn):可伸縮和可擴(kuò)展,從應(yīng)用層、數(shù)據(jù)庫(kù)、緩存、消息隊(duì)列、大數(shù)據(jù)查詢(xún)系統(tǒng)、分布式定時(shí)任務(wù)調(diào)度系統(tǒng)、微服務(wù)等層面詳細(xì)講解如何設(shè)計(jì)可伸縮、可擴(kuò)展的框架,并給出在各個(gè)領(lǐng)域解決特定問(wèn)題的方法論和實(shí)踐總結(jié)。隨著《可伸縮服務(wù)架構(gòu):框架與中間件》的出版,我們還開(kāi)源了4個(gè)行之有效的互聯(lián)網(wǎng)可伸縮框架,包括數(shù)據(jù)庫(kù)分庫(kù)分表dbsplit、緩存分片redic、專(zhuān)業(yè)的發(fā)號(hào)器vesta和消息隊(duì)列處理機(jī)框架kclient,每個(gè)框架都開(kāi)箱即用,也可以作為學(xué)習(xí)互聯(lián)網(wǎng)平臺(tái)化框架搭建的素材,更可以作為開(kāi)發(fā)開(kāi)源項(xiàng)目的示例。 《可伸縮服務(wù)架構(gòu):框架與中間件》的上冊(cè)《分布式服務(wù)架構(gòu):原理、設(shè)計(jì)與實(shí)戰(zhàn)》詳細(xì)介紹了如何解決線(xiàn)上高并發(fā)服務(wù)的一致性、高性能、高可用、敏捷等痛點(diǎn),《可伸縮服務(wù)架構(gòu):框架與中間件》與上冊(cè)結(jié)合后可覆蓋保證線(xiàn)上高并發(fā)服務(wù)的各個(gè)主題:一致性、高性能、高可用、可伸縮、可擴(kuò)展、敏捷性等,每個(gè)主題都是一個(gè)方法論。充分理解這些主題,可保障線(xiàn)上服務(wù)健壯運(yùn)行,對(duì)實(shí)現(xiàn)服務(wù)穩(wěn)定性的n個(gè)9有著不可估量的作用。 無(wú)論是對(duì)于互聯(lián)網(wǎng)的或者傳統(tǒng)的軟件工程師、測(cè)試工程師、架構(gòu)師,還是對(duì)于深耕于IT的其他管理人員,《可伸縮服務(wù)架構(gòu):框架與中間件》都有很強(qiáng)的借鑒性和參考價(jià)值,是值得每個(gè)技術(shù)人員閱讀的架構(gòu)級(jí)技術(shù)書(shū)。

作者簡(jiǎn)介

  李艷鵬 “云時(shí)代架構(gòu)”技術(shù)社區(qū)創(chuàng)始人,著有《分布式服務(wù)架構(gòu):原理、設(shè)計(jì)與實(shí)戰(zhàn)》,現(xiàn)任某知名支付平臺(tái)架構(gòu)組負(fù)責(zé)人,曾在花旗銀行、甲骨文、路透社、新浪微博等大型IT互聯(lián)網(wǎng)公司擔(dān)任技術(shù)負(fù)責(zé)人和架構(gòu)師,現(xiàn)專(zhuān)注于大規(guī)模高并發(fā)的線(xiàn)上和線(xiàn)下支付平臺(tái)的應(yīng)用架構(gòu)和技術(shù)架構(gòu)的規(guī)劃與落地,負(fù)責(zé)交易、支付、渠道、出款、風(fēng)控、對(duì)賬等核心支付系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),在移動(dòng)支付、聚合支付、合規(guī)賬戶(hù)、掃碼支付、標(biāo)記化支付等業(yè)務(wù)場(chǎng)景上有產(chǎn)品應(yīng)用架構(gòu)規(guī)劃與落地的實(shí)踐經(jīng)驗(yàn)。 楊彪 現(xiàn)任游戲創(chuàng)業(yè)公司技術(shù)總監(jiān)及合伙人,“云時(shí)代架構(gòu)”技術(shù)社區(qū)合伙創(chuàng)始人,CSDN達(dá)人課講師,著有《分布式服務(wù)架構(gòu):原理、設(shè)計(jì)與實(shí)戰(zhàn)》。在互聯(lián)網(wǎng)和游戲行業(yè)有近十年工作經(jīng)驗(yàn),曾在酷我音樂(lè)盒、人人游戲和掌趣科技等上市公司擔(dān)任核心研發(fā)職位,在互聯(lián)網(wǎng)公司做過(guò)日活躍用戶(hù)量達(dá)千萬(wàn)的項(xiàng)目,也在游戲公司做過(guò)多款月流水千萬(wàn)以上的游戲。 李海亮 現(xiàn)任某互聯(lián)網(wǎng)公司搜索研發(fā)經(jīng)理,有近十年互聯(lián)網(wǎng)公司的搜索及搜索相關(guān)的研發(fā)經(jīng)驗(yàn) 賈博巖 現(xiàn)任某支付公司高級(jí)開(kāi)發(fā)工程師,專(zhuān)注于支付系統(tǒng)領(lǐng)域的開(kāi)發(fā),例如商戶(hù)入網(wǎng)、商戶(hù)對(duì)外出款等業(yè)務(wù)。標(biāo)準(zhǔn)90后,喜歡鉆研技術(shù),維護(hù)個(gè)人簡(jiǎn)書(shū)博客“賈博巖”。 劉淏 現(xiàn)任某互聯(lián)網(wǎng)公司技術(shù)專(zhuān)家,長(zhǎng)期在外企從事技術(shù)經(jīng)理和架構(gòu)工作,對(duì)數(shù)據(jù)庫(kù)應(yīng)用及搜索引擎應(yīng)用有很深入的理解和實(shí)踐;有大型數(shù)據(jù)服務(wù)集群的架構(gòu)調(diào)優(yōu)及運(yùn)維經(jīng)驗(yàn);精通性能問(wèn)題的解決與調(diào)優(yōu),以及高性能中間件的編寫(xiě)。目前主要研究業(yè)務(wù)數(shù)據(jù)自動(dòng)化框架及其實(shí)現(xiàn)。

圖書(shū)目錄

第1章 如何設(shè)計(jì)一款永不重復(fù)的高性能分布式發(fā)號(hào)器 1
1.1 可選方案及技術(shù)選型 2
1.1.1 為什么不用UUID 2
1.1.2 基于數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方案 2
1.1.3 Snowflake開(kāi)源項(xiàng)目 3
1.1.4 小結(jié) 4
1.2 分布式系統(tǒng)對(duì)發(fā)號(hào)器的基本需求 4
1.3 架構(gòu)設(shè)計(jì)與核心要點(diǎn) 6
1.3.1 發(fā)布模式 6
1.3.2 ID類(lèi)型 7
1.3.3 數(shù)據(jù)結(jié)構(gòu) 7
1.3.4 并發(fā) 9
1.3.5 機(jī)器ID的分配 9
1.3.6 時(shí)間同步 10
1.3.7 設(shè)計(jì)驗(yàn)證 11
1.4 如何根據(jù)設(shè)計(jì)實(shí)現(xiàn)多場(chǎng)景的發(fā)號(hào)器 11
1.4.1 項(xiàng)目結(jié)構(gòu) 12
1.4.2 服務(wù)接口的定義 14
1.4.3 服務(wù)接口的實(shí)現(xiàn) 15
1.4.4 ID元數(shù)據(jù)與長(zhǎng)整型ID的互相轉(zhuǎn)換 22
1.4.5 時(shí)間操作 25
1.4.6 機(jī)器ID的生成 27
1.4.7 小結(jié) 32
1.5 如何保證性能需求 32
1.5.1 嵌入發(fā)布模式的壓測(cè)結(jié)果 33
1.5.2 中心服務(wù)器發(fā)布模式的壓測(cè)結(jié)果 33
1.5.3 REST發(fā)布模式(Netty實(shí)現(xiàn))的壓測(cè)結(jié)果 33
1.5.4 REST發(fā)布模式(Spring Boot + Tomcat實(shí)現(xiàn))的壓測(cè)結(jié)果 34
1.5.5 性能測(cè)試總結(jié) 34
1.6 如何讓用戶(hù)快速使用 35
1.6.1 REST發(fā)布模式的使用指南 35
1.6.2 服務(wù)化模式的使用指南 38
1.6.3 嵌入發(fā)布模式的使用指南 41
1.7 為用戶(hù)提供API文檔 43
1.7.1 RESTful API文檔 44
1.7.2 Java API文檔 45
第2章 可靈活擴(kuò)展的消息隊(duì)列框架的設(shè)計(jì)與實(shí)現(xiàn) 49
2.1 背景介紹 50
2.2 項(xiàng)目目標(biāo) 50
2.2.1 簡(jiǎn)單易用 50
2.2.2 高性能 51
2.2.3 高穩(wěn)定性 51
2.3 架構(gòu)難點(diǎn) 51
2.3.1 線(xiàn)程模型 51
2.3.2 異常處理 53
2.3.3 優(yōu)雅關(guān)機(jī) 53
2.4 設(shè)計(jì)與實(shí)現(xiàn) 54
2.4.1 項(xiàng)目結(jié)構(gòu) 54
2.4.2 項(xiàng)目包的規(guī)劃 55
2.4.3 生產(chǎn)者的設(shè)計(jì)與實(shí)現(xiàn) 57
2.4.4 消費(fèi)者的設(shè)計(jì)與實(shí)現(xiàn) 58
2.4.5 啟動(dòng)模塊的設(shè)計(jì)與實(shí)現(xiàn) 67
2.4.6 消息處理器的體系結(jié)構(gòu) 76
2.4.7 反射機(jī)制 79
2.4.8 模板項(xiàng)目的設(shè)計(jì) 80
2.5 使用指南 82
2.5.1 安裝步驟 82
2.5.2 Java API 83
2.5.3 與Spring環(huán)境集成 84
2.5.4 對(duì)服務(wù)源碼進(jìn)行注解 85
2.6 API簡(jiǎn)介 87
2.6.1 Producer API 87
2.6.2 Consumer API 88
2.6.3 消息處理器 88
2.6.4 消息處理器定義的注解 90
2.7 消息處理機(jī)模板項(xiàng)目 91
2.7.1 快速開(kāi)發(fā)向?qū)? 91
2.7.2 后臺(tái)監(jiān)控和管理 92
第3章 輕量級(jí)的數(shù)據(jù)庫(kù)分庫(kù)分表架構(gòu)與框架 93
3.1 什么是分庫(kù)分表 94
3.1.1 使用數(shù)據(jù)庫(kù)的三個(gè)階段 94
3.1.2 在什么情況下需要分庫(kù)分表 95
3.1.3 分庫(kù)分表的典型實(shí)例 96
3.2 三種分而治之的解決方案 97
3.2.1 客戶(hù)端分片 97
3.2.2 代理分片 100
3.2.3 支持事務(wù)的分布式數(shù)據(jù)庫(kù) 101
3.3 分庫(kù)分表的架構(gòu)設(shè)計(jì) 102
3.3.1 整體的切分方式 102
3.3.2 水平切分方式的路由過(guò)程和分片維度 106
3.3.3 分片后的事務(wù)處理機(jī)制 107
3.3.4 讀寫(xiě)分離 119
3.3.5 分庫(kù)分表引起的問(wèn)題 119
3.4 流行代理分片框架Mycat的初體驗(yàn) 123
3.4.1 安裝Mycat 123
3.4.2 配置Mycat 124
3.4.3 配置數(shù)據(jù)庫(kù)節(jié)點(diǎn) 128
3.4.4 數(shù)據(jù)遷移 129
3.4.5 Mycat支持的分片規(guī)則 129
3.5 流行的客戶(hù)端分片框架Sharding JDBC的初體驗(yàn) 138
3.5.1 Sharding JDBC簡(jiǎn)介 138
3.5.2 Sharding JDBC的功能 139
3.5.3 Sharding JDBC的使用 141
3.5.4 Sharding JDBC的使用限制 152
3.6 自研客戶(hù)端分片框架dbsplit的設(shè)計(jì)、實(shí)現(xiàn)與使用 153
3.6.1 項(xiàng)目結(jié)構(gòu) 154
3.6.2 包結(jié)構(gòu)和執(zhí)行流程 155
3.6.3 切片下標(biāo)命名策略 159
3.6.4 SQL解析和組裝 167
3.6.5 SQL實(shí)用程序 168
3.6.6 反射實(shí)用程序 173
3.6.7 分片規(guī)則的配置 177
3.6.8 支持分片的SplitJdbcTemplate和SimpleSplitJdbcTemplate接口API 179
3.6.9 JdbcTemplate的擴(kuò)展SimpleJdbcTemplate接口API 184
3.6.10 用于創(chuàng)建分庫(kù)分表數(shù)據(jù)庫(kù)的腳本工具 187
3.6.11 使用dbsplit的一個(gè)簡(jiǎn)單示例 192
3.6.12 使用dbsplit的線(xiàn)上真實(shí)示例展示 199
第4章 緩存的本質(zhì)和緩存使用的優(yōu)秀實(shí)踐 201
4.1 使用緩存的目的和問(wèn)題 202
4.2 自相似,CPU的緩存和系統(tǒng)架構(gòu)的緩存 203
4.2.1 CPU緩存的架構(gòu)及性能 205
4.2.2 CPU緩存的運(yùn)行過(guò)程分析 206
4.2.3 緩存行與偽共享 208
4.2.4 從CPU的體系架構(gòu)到分布式的緩存架構(gòu) 218
4.3 常用的分布式緩存解決方案 221
4.3.1 常用的分布式緩存的對(duì)比 221
4.3.2 Redis初體驗(yàn) 225
4.4 分布式緩存的通用方法 229
4.4.1 緩存編程的具體方法 229
4.4.2 應(yīng)用層訪(fǎng)問(wèn)緩存的模式 233
4.4.3 分布式緩存分片的三種模式 235
4.4.4 分布式緩存的遷移方案 238
4.4.5 緩存穿透、緩存并發(fā)和緩存雪崩 244
4.4.6 緩存對(duì)事務(wù)的支持 246
4.5 分布式緩存的設(shè)計(jì)與案例 248
4.5.1 緩存設(shè)計(jì)的核心要素 248
4.5.2 緩存設(shè)計(jì)的優(yōu)秀實(shí)踐 250
4.5.3 關(guān)于常見(jiàn)的緩存線(xiàn)上問(wèn)題的案例 253
4.6 客戶(hù)端緩存分片框架redic的設(shè)計(jì)與實(shí)現(xiàn) 257
4.6.1 什么時(shí)候需要redic 258
4.6.2 如何使用redic 258
4.6.3 更多的配置 258
4.6.4 項(xiàng)目結(jié)構(gòu) 260
4.6.5 包結(jié)構(gòu) 261
4.6.6 設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程 261
第5章 大數(shù)據(jù)利器之Elasticsearch 268
5.1 Lucene簡(jiǎn)介 269
5.1.1 核心模塊 269
5.1.2 核心術(shù)語(yǔ) 270
5.1.3 檢索方式 271
5.1.4 分段存儲(chǔ) 273
5.1.5 段合并策略 275
5.1.6 Lucene相似度打分 278
5.2 Elasticsearch簡(jiǎn)介 286
5.2.1 核心概念 286
5.2.2 3C和腦裂 289
5.2.3 事務(wù)日志 291
5.2.4 在集群中寫(xiě)索引 294
5.2.5 集群中的查詢(xún)流程 295
5.3 Elasticsearch實(shí)戰(zhàn) 298
5.3.1 Elasticsearch的配置說(shuō)明 298
5.3.2 常用的接口 300
5.4 性能調(diào)優(yōu) 305
5.4.1 寫(xiě)優(yōu)化 305
5.4.2 讀優(yōu)化 308
5.4.3 堆大小的設(shè)置 313
5.4.4 服務(wù)器配置的選擇 315
5.4.5 硬盤(pán)的選擇和設(shè)置 316
5.4.6 接入方式 318
5.4.7 角色隔離和腦裂 319
第6章 全面揭秘分布式定時(shí)任務(wù) 321
6.1 什么是定時(shí)任務(wù) 322
6.2 分布式定時(shí)任務(wù) 341
6.2.1 定時(shí)任務(wù)的使用場(chǎng)景 342
6.2.2 傳統(tǒng)定時(shí)任務(wù)存在的問(wèn)題 342
6.2.3 分布式定時(shí)任務(wù)及其原理 344
6.3 開(kāi)源分布式定時(shí)任務(wù)的用法 347
6.3.1 Quartz的分布式模式 347
6.3.2 TBSchedule 356
6.3.3 Elastic-Job 365
第7章 RPC服務(wù)的發(fā)展歷程和對(duì)比分析 377
7.1 什么是RPC服務(wù) 378
7.2 RPC服務(wù)的原理 379
7.2.1 Sokcet套接字 379
7.2.2 RPC的調(diào)用過(guò)程 380
7.3 在程序中使用RPC服務(wù) 382
7.4 RPC服務(wù)的發(fā)展歷程 383
7.4.1 第一代RPC:以O(shè)NC RPC和DCE RPC為代表的函數(shù)式RPC 384
7.4.2 第二代RPC:支持面對(duì)象的編程 388
7.4.3 第三代RPC:SOA和微服務(wù) 398
7.4.4 架構(gòu)的演進(jìn) 402
7.5 主流的RPC框架 403
7.5.1 Thrift 403
7.5.2 ZeroC Ice 410
7.5.3 gRPC 418
7.5.4 Dubbo 430
第8章 Dubbo實(shí)戰(zhàn)及源碼分析 436
8.1 Dubbo的四種配置方式 437
8.1.1 XML配置 437
8.1.2 屬性配置 440
8.1.3 API配置 441
8.1.4 注解配置 443
8.2 服務(wù)的注冊(cè)與發(fā)現(xiàn) 446
8.2.1 注冊(cè)中心 446
8.2.2 服務(wù)暴露 449
8.2.3 引用服務(wù) 451
8.3 Dubbo通信協(xié)議及序列化探討 455
8.3.1 Dubbo支持的協(xié)議 455
8.3.2 協(xié)議的配置方法 456
8.3.3 多協(xié)議暴露服務(wù) 457
8.3.4 Dubbo協(xié)議的使用注意事項(xiàng) 458
8.3.5 Dubbo協(xié)議的約束 459
8.4 Dubbo中高效的I/O線(xiàn)程模型 459
8.4.1 對(duì)Dubbo中I/O模型的分析 459
8.4.2 Dubbo中線(xiàn)程配置的相關(guān)參數(shù) 460
8.4.3 在Dubbo線(xiàn)程方面踩過(guò)的坑 461
8.4.4 對(duì)Dubbo中線(xiàn)程使用的建議 462
8.5 集群的容錯(cuò)機(jī)制與負(fù)載均衡 462
8.5.1 集群容錯(cuò)機(jī)制的原理 462
8.5.2 集群容錯(cuò)模式的配置方法 464
8.5.3 六種集群容錯(cuò)模式 464
8.5.4 集群的負(fù)載均衡 465
8.6 監(jiān)控和運(yùn)維實(shí)踐 467
8.6.1 日志適配 467
8.6.2 監(jiān)控管理后臺(tái) 467
8.6.3 服務(wù)降級(jí) 473
8.6.4 優(yōu)雅停機(jī) 475
8.6.5 灰度發(fā)布 475
8.7 Dubbo項(xiàng)目線(xiàn)上案例解析 477
8.7.1 線(xiàn)上問(wèn)題的通用解決方案 477
8.7.2 耗時(shí)服務(wù)耗盡了線(xiàn)程池的案例 480
8.7.3 容錯(cuò)重試機(jī)制引發(fā)服務(wù)雪崩的案例 481
8.8 深入剖析Dubbo源碼及其實(shí)現(xiàn) 483
8.8.1 Dubbo的總體架構(gòu)設(shè)計(jì) 483
8.8.2 配置文件 486
8.8.3 Dubbo的核心RPC 488
8.8.4 Dubbo巧妙的URL總線(xiàn)設(shè)計(jì) 491
8.8.5 Dubbo的擴(kuò)展點(diǎn)加載SPI 492
8.8.6 Dubbo服務(wù)暴露的過(guò)程 493
8.8.7 服務(wù)引用 502
8.8.8 集群容錯(cuò)和負(fù)載均衡 503
8.8.9 集群容錯(cuò) 504
8.8.10 負(fù)載均衡 509
第9章 高性能網(wǎng)絡(luò)中間件 512
9.1 TCP/UDP的核心原理及本質(zhì)探索 513
9.1.1 網(wǎng)絡(luò)模型 513
9.1.2 UDP、IP及其未解決的問(wèn)題 515
9.1.3 TCP詳解 519
9.1.4 是否可以用UDP代替TCP 527
9.1.5 網(wǎng)絡(luò)通信的不可靠性討論 529
9.2 網(wǎng)絡(luò)測(cè)試優(yōu)秀實(shí)踐 530
9.2.1 網(wǎng)絡(luò)測(cè)試的關(guān)鍵點(diǎn) 530
9.2.2 那些必不可少的網(wǎng)絡(luò)測(cè)試工具 532
9.2.3 典型的測(cè)試報(bào)告 539
9.3 高性能網(wǎng)絡(luò)框架的設(shè)計(jì)與實(shí)現(xiàn) 544
9.3.1 對(duì)代理功能的測(cè)試及分析 545
9.3.2 網(wǎng)絡(luò)中間件的使用介紹 549
9.3.3 內(nèi)存和緩存的優(yōu)化 551
9.3.4 快速解析流數(shù)據(jù) 554

本目錄推薦

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