热搜关键词: 信号与系统无刷电机ADSTCP/IP

pdf

分布式服务架构:原理、设计与实战

  • 1星
  • 日期: 2022-04-23
  • 大小: 181.78MB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • free评论
标签: 分布式

分布式

《分布式服务架构:原理、设计与实战》全面介绍了分布式服务架构的原理与设计,并结合作者在实施微服务架构过程中的实践经验,总结了保障线上服务健康、可靠的最佳方案,是一本架构级、实战型的重量级著作。

《分布式服务架构:原理、设计与实战》以分布式服务架构的设计与实现为主线,由浅入深地介绍了分布式服务架构的方方面面,主要包括理论和实践两部分。理论上,首先介绍了服务架构的背景,以及从服务化架构到微服务架构的演化;然后提出了保证分布式服务系统架构一致性的方案和模式,并介绍了互联网架构评审的方法论;最后给出了一个简要的非功能质量的技术评审提纲。实践上,首先提供了一个互联网项目的性能和容量评估的真实案例,介绍了压测的方案设计和最佳实践,这些技术能够全面保证大规模、高并发项目的一致性、可用性和高并发性;然后讲解了大规模服务的日志系统的原理、设计与实践,包括ELK等框架的特点和使用方式等,并介绍了当前流行的APM系统的设计与实现,主要包括调用链和业务链的跟踪与恢复,涵盖了线上应急和技术攻关的流程及重点,也结合服务化系统线上应急过程进行分析并总结了其中需要用到的Java虚拟机、Linux和定制化脚本等命令,这些命令都是每个开发人员都会用到的解决线上问题的利器;最后,阐述了系统服务的容器化过程,并详细介绍了敏捷开发流程和实现自动化的常用工具等,让读者既能学到架构设计的基础理论,也能结合书中的原理、设计与方法论来解决大规模、高并发互联网项目中的现实问题。

无论是对于软件工程师、测试工程师、运维工程师、软件架构师、技术经理、技术总监,还是对于资深IT人士来说,《分布式服务架构:原理、设计与实战》都有很强的借鉴性和参考价值。

第1章  分布式微服务架构设计原理  1

1.1  从传统单体架构到服务化架构  2

1.1.1  JEE架构  2

1.1.2  SSH架构  5

1.1.3  服务化架构  8

1.2  从服务化到微服务  11

1.2.1  微服务架构的产生  12

1.2.2  微服务架构与传统单体架构的对比  13

1.2.3  微服务架构与SOA服务化的对比  15

1.3  微服务架构的核心要点和实现原理  16

1.3.1  微服务架构中职能团队的划分  16

1.3.2  微服务的去中心化治理  18

1.3.3  微服务的交互模式  18

1.3.4  微服务的分解和组合模式  22

1.3.5  微服务的容错模式  35

1.3.6  微服务的粒度  41

1.4  Java平台微服务架构的项目组织形式  42

1.4.1  微服务项目的依赖关系  42

1.4.2  微服务项目的层级结构  43

1.4.3  微服务项目的持续发布  45

1.5  服务化管理和治理框架的技术选型  45

1.5.1  RPC  46

1.5.2  服务化  47

1.5.3  微服务  49

1.6  本章小结  52

第2章  彻底解决分布式系统一致性的问题  54

2.1  什么是一致性  55

2.2  一致性问题  56

2.3  解决一致性问题的模式和思路  57

2.3.1  酸碱平衡理论  58

2.3.2  分布式一致性协议  61

2.3.3  保证最终一致性的模式  67

2.4  超时处理模式  75

2.4.1  微服务的交互模式  76

2.4.2  同步与异步的抉择  77

2.4.3  交互模式下超时问题的解决方案  78

2.4.4  超时补偿的原则  85

2.5  迁移开关的设计  87

2.6  本章小结  88

第3章  服务化系统容量评估和性能保障  89

3.1  架构设计与非功能质量  90

3.2  全面的非功能质量需求  91

3.2.1  非功能质量需求的概述  91

3.2.2  非功能质量需求的具体指标  92

3.3  典型的技术评审提纲  97

3.3.1  现状  97

3.3.2  需求  98

3.3.3  方案描述  98

3.3.4  方案对比  99

3.3.5  风险评估  100

3.3.6  工作量评估  100

3.4  性能和容量评估经典案例  100

3.4.1  背景  100

3.4.2  目标数据量级  101

3.4.3  量级评估标准  101

3.4.4  方案  102

3.4.5  小结  107

3.5  性能评估参考标准  108

3.5.1  常用的应用层性能指标参考标准  108

3.5.2  常用的系统层性能指标参考标准  109

3.6  性能测试方案的设计和最佳实践  112

3.6.1  明确压测目标  112

3.6.2  压测场景设计和压测方案制定  114

3.6.3  准备压测环境  121

3.6.4  压测的执行  122

3.6.5  问题修复和系统优化  123

3.7  有用的压测工具  123

3.7.1  ab  123

3.7.2  jmeter  125

3.7.3  mysqlslap  125

3.7.4  sysbench  129

3.7.5  dd  134

3.7.6  LoadRunner  135

3.7.7  hprof  136

3.8  本章小结  138

第4章  大数据日志系统的构建  140

4.1  开源日志框架的原理分析与应用实践  142

4.1.1  JDK  Logger  142

4.1.2  Apache  Commons  Logging  143

4.1.3  Apache  Log4j  147

4.1.4  Slf4j  156

4.1.5  Logback  160

4.1.6  Apache  Log4j  2  164

4.2  日志系统的优化和最佳实践  168

4.2.1  开发人员的日志意识  168

4.2.2  日志级别的设置  168

4.2.3  日志的数量和大小  169

4.2.4  切割方式  170

4.2.5  日志格式的配置  170

4.2.6  一行日志导致的线上事故  177

4.3  大数据日志系统的原理与设计  178

4.3.1  通用架构和设计  179

4.3.2  日志采集器  180

4.3.3  日志缓冲队列  186

4.3.4  日志解析器  187

4.3.5  日志存储和搜索  187

4.3.6  日志展示系统  188

4.3.7  监控和报警  188

4.3.8  日志系统的容量和性能评估  188

4.4  ELK系统的构建与使用  190

4.4.1  Elasticsearch  191

4.4.2  Logstash  193

4.4.3  Kibana  196

4.5  本章小结  198

第5章  基于调用链的服务治理系统的设计与实现  199

5.1  APM系统简介  200

5.1.1  优秀的开源APM系统  200

5.1.2  国内商业APM产品的介绍  202

5.2  调用链跟踪的原理  203

5.2.1  分布式系统的远程调用过程  204

5.2.2  TraceID  207

5.2.3  SpanID  208

5.2.4  业务链  210

5.3  调用链跟踪系统的设计与实现  211

5.3.1  整体架构  211

5.3.2  TraceID和SpanID在服务间的传递  213

5.3.3  采集器的设计与实现  217

5.3.4  处理器的设计与实现  222

5.3.5  调用链系统的展示  225

5.4  本章小结  226

第6章  Java服务的线上应急和技术攻关  227

6.1  海恩法则和墨菲定律  227

6.2  线上应急的目标、原则和方法  229

6.2.1  应急目标  229

6.2.2  应急原则  229

6.2.3  线上应急的方法和流程  230

6.3  技术攻关的方法论  233

6.4  环境搭建和示例服务启动  236

6.5  高效的服务化治理脚本  240

6.5.1  show-busiest-java-threads  240

6.5.2  find-in-jar  243

6.5.3  grep-in-jar  244

6.5.4  jar-conflict-detect  245

6.5.5  http-spy  247

6.5.6  show-mysql-qps  248

6.5.7  小结  249

6.6  JVM提供的监控命令  249

6.6.1  jad  249

6.6.2  btrace  250

6.6.3  jmap  252

6.6.4  jstat  255

6.6.5  jstack  256

6.6.6  jinfo  258

6.6.7  其他命令  258

6.6.8  小结  259

6.7  重要的Linux基础命令  260

6.7.1  必不可少的基础命令和工具  260

6.7.2  查看活动进程的命令  268

6.7.3  窥探内存的命令  270

6.7.4  针对CPU使用情况的监控命令  272

6.7.5  监控磁盘I/O的命令  273

6.7.6  查看网络信息和网络监控命令  275

6.7.7  Linux系统的高级工具  287

6.7.8  /proc文件系统  288

6.7.9  摘要命令  288

6.7.10  小结  290

6.8  现实中的应急和攻关案例  291

6.8.1  一次OOM事故的分析和定位  291

6.8.2  一次CPU  100%的线上事故排查  301

6.9  本章小结  304

第7章  服务的容器化过程  306

7.1  容器vs虚拟机  306

7.1.1  什么是虚拟机  306

7.1.2  什么是容器  306

7.1.3  容器和虚拟机的区别  307

7.1.4  容器主要解决的问题  307

7.1.5  Docker的优势  310

7.2  Docker实战  311

7.2.1  Docker的架构  311

7.2.2  Docker的安装  315

7.2.3  Docker初体验  319

7.2.4  Docker后台服务的管理  322

7.2.5  Docker的客户端命令  328

7.2.6  Docker  Compose编排工具的使用  372

7.3  容器化项目  379

7.3.1  传统的应用部署  380

7.3.2  将应用程序部署在虚拟机上  380

7.3.3  容器化部署应用  381

7.3.4  Docker实现的应用容器化示例  382

7.4  本章小结  384

第8章  敏捷开发2.0的自动化工具  385

8.1  什么是敏捷开发2.0  385

8.1.1  常用的4种开发模式  385

8.1.2  什么是DevOps  390

8.1.3  敏捷开发2.0解决的问题  392

8.2  敏捷开发的自动化流程  393

8.2.1  持续集成  393

8.2.2  持续交付和持续部署  397

8.3  敏捷开发的常用自动化工具  400

8.3.1  分布式版本控制工具Git  400

8.3.2  持续集成和持续交付工具Jenkins  410

8.3.3  基础平台管理工具SaltStack  418

8.3.4  Docker容器化工具  421

8.4  本章小结  422

推荐帖子 最新更新时间:2022-05-15 16:59

STM32 F7大赛进入最后3天,一起致敬(或体验)电赛时光
没忍住,没忍住,就是想说还有3天的时间的了,这个时间正好是全国电子设计大赛整个比赛时间,想说的是,不放弃结果也许就不一样呢。 STM32 F7英雄联盟设计大赛各组小伙伴们,最后的时光,大家一起加油耶,祝愿你们收获知识和不一样的友谊。 同时也最后提醒一下,将你们的项目资料整合到各自的项目总进度帖中(http://bbs.eeworld.com.cn/thread-475280-1
nmg stm32/stm8
BBB Qt 电子罗盘 github源码 新增:增加4行代码就能实现波形图绘制
本帖最后由 wytalfred 于 2014-4-16 13:17 编辑 新增内容: 原来用QPainterPath::lineTo()就可以轻松绘制波形图,连变量定义都算上只要4行代码就行了……之前还以为必须用qwt呢。回头整理一下一起放github里。 ===============================================================
wytalfred DSP 与 ARM 处理器
QuartusII 进行Altera FPGA开发实例1
本帖最后由 昱枫 于 2020-8-4 19:20 编辑 板卡:Altera DE2-35 功能说明:第一个测试demo 功能:开关控制灯   #源文件 # SW LEDR 在pin planer中配置 module part1 (SW, LEDR); input [17:0] SW; // toggle switches output [
昱枫 Altera SoC
请教大侠们一个关于Z-stack协议栈下ZigBee节点接收数据频率的问题
        我最近做了一个小测试(协议栈用的Z-STACK2.5.1,平台用的CC2530),大概是这样的:网络中三种设备(一个协调器,四个路由和一个终端),终端负责向路由广播数据,路由收到数据后单播转发信息给协调器,协调器通过串口给STM32(这里只上传单播的数据包),stm32再经过网口转发给上位机。为了测试网络的性能,我想尽可能的让终端快速的发广播包以模拟多节点的情况。我设置发送周期为1
lychee_fly RF/无线
提高TMS320C5x软件效率的方法
      TMSS320C5X是TMS320C2X的增强型DSP芯片,其增强的并行结构使得TMS320C5X的速度是TMS320C25的二倍以上。TMS320C2X的汇编语言在源代码级与TMS320C5X向上兼容,TMS320C2X的汇编程序稍作修改并用TMS320C5X的汇编器重新汇编后就可以在TMS320C5X上运行。TMS320C5X的指令集是TMSS320C25指令集的超集,它在TMS3
Aguilera 微控制器 MCU
印刷PCB的常见问题及解决方法
(一)图形转移工艺 (二)线路油墨工艺 (三)感光绿油工艺 (四)碳膜工艺      (五)银浆贯孔工艺 (六)沉铜(PTH)工艺(七)电铜工艺     (八)电镍工艺      (九)电金工艺      (十)电锡工艺     (十一)  蚀刻工艺  (十二)  有机保焊膜工艺 (十三)  喷锡(热风整平)艺(十四)  压合工艺   (十五)  图形转移工艺流程及原理 (十六)  图形转移过程的
eric_wang PCB设计

评论

登录/注册

意见反馈

求资源

回顶部

热门活动

相关视频

可能感兴趣器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
×