《微服务架构实战》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:张锋著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121343421
  • 页数:389 页
图书介绍:本书从大型网站的架构设计模式以及技术造型着手,以Spring Cloud和Docker为构建框架,实现横向可扩展的高可用架构。项目分层清晰,包括完备的质量和监控体系。依据敏捷开发的原则,快速迭代,以完整的示例实现整个CI/CD的流程,快速响应需求。在本书的最后,会精选在项目中应用的几个开源框架,以期读者能够在阅读完本书后,快速掌握并应用微服务相关的知识。

第1章 微服务概述 1

1.1 什么是微服务 2

1.2 为什么微服务 3

1.2.1 区别 4

1.2.2 从单体应用说起 5

1.2.3 第一步切分 5

1.2.4 服务化所带来的问题 6

1.2.5 微服务的可扩展性 8

1.2.6 微服务与SOA的区别 8

1.3 常见的微服务组件 9

1.4 常用的微服务框架 11

1.4.1 Spring顶级项目 11

1.4.2 背景 12

1.4.3 社区活跃度 14

1.4.4 架构完整度 16

1.4.5 总结 17

1.5 微服务架构设计模式 17

1.6 如何实施微服务 20

1.7 小结 20

第2章 微服务设计原则 21

2.1 设计原则之分层架构 22

2.2 设计原则之统一通信协议 24

2.3 设计原则之单一职责 25

2.4 设计原则之服务拆分 26

2.5 设计原则之前后端分离 28

2.6 设计原则之版本控制 29

2.7 设计原则之围绕业务构建 30

2.8 设计原则之并发流量控制 30

2.9 设计原则之CAP 31

2.10 设计原则之EDA事件驱动 32

2.11 设计原则之CQRS 33

2.12 设计原则之基础设施自动化 35

2.13 设计原则之数据一致性 35

2.14 设计原则之设计模式 36

2.15 设计原则之DevOps 39

2.16 设计原则之无状态服务 40

2.17 小结 41

第3章 微服务之Spring Boot 42

3.1 一切从简单开始 44

3.2 快速集成第三方的Starter 53

3.3 降低开发复杂度之面向切面 53

3.3.1 前置通知 55

3.3.2 后置返回通知 57

3.3.3 后置异常通知 58

3.3.4 后置最终通知 58

3.3.5 环绕通知 59

3.3.6 AOP总结 60

3.4 并不复杂的持久化 60

3.4.1 单数据源 61

3.4.2 多数据源 63

3.4.3 JOOQ 65

3.4.4 事务处理 69

3.4.5 整合Redis 72

3.4.6 整合队列 76

3.4.7 操作MongoDB 83

3.5 Web开发 85

3.6 懒人的接口文档管理 89

3.7 优化的调度 92

3.8 健康是永恒的主题 94

3.9 强强联合之整合Dubbo 96

3.10 小结 101

第4章 微服务之Docker 102

4.1 Docker原理 104

4.2 更轻量级的虚拟化 105

4.3 三个概念理解Docker 107

4.3.1 镜像(Image) 108

4.3.2 容器(Container) 110

4.3.3 仓库(Repository) 113

4.4 Dockerfile定制一切 113

4.4.1 Dockerfile语法 113

4.4.2 Dockerfile命令 114

4.4.3 Dockerfile构建过程 117

4.4.4 构建Java环境 118

4.4.5 Dockerfile小结 120

4.5 Docker网络 121

4.5.1 网络模式 121

4.5.2 link 121

4.5.3 跨主机访问 122

4.6 Docker数据卷 122

4.6.1 数据卷 122

4.6.2 数据卷容器 124

4.7 Spring Boot与Docker 124

4.8 搭建自己的镜像仓库 128

4.8.1 安装和启动 128

4.8.2 使用 132

4.9 Kubernetes 133

4.10 私有云整体架构 136

4.11 小结 137

第5章 微服务之Spring Cloud 139

5.1 注册中心 142

5.1.1 常用的注册中心 143

5.1.2 Eureka介绍 144

5.1.3 服务发现 145

5.1.4 简单注册 147

5.2 负载均衡 152

5.2.1 Spring Cloud的负载实现 154

5.2.2 Ribbon 155

5.2.3 Feign 158

5.2.4 加入core 161

5.3 微服务容错(Hystrix) 164

5.3.1 雪崩的形成 164

5.3.2 应对方案 164

5.3.3 降级和熔断 165

5.3.4 Hystrix 166

5.3.5 集中监控 170

5.4 分布式配置中心 172

5.5 API网关 177

5.5.1 为什么需要网关 178

5.5.2 Zuul 179

5.6 消息总线(Spring Cloud Bus) 184

5.7 小结 186

第6章 微服务之Spring C1oud其他框架 187

6.1 Spring Cloud Consul 188

6.2 Spring CloudZooKeeper 190

6.3 Spring Cloud archaius 192

6.4 Spring Cloud Task 193

6.5 Spring Cloud Security 194

6.5.1 HTTP Basic Authentication 195

6.5.2 JWT 196

6.5.3 OAuth2 203

6.5.4 Spring Cloud Security 204

6.6 Spring Cloud Sleuth 205

6.6.1 服务端 206

6.6.2 客户端 207

6.7 Spring Cloud Stream 208

6.8 Spring Cloud Data Flow 211

6.9 小结 212

第7章 微服务之自动化测试与质量管理 213

7.1 微服务测试 214

7.2 单元测试 216

7.2.1 单元测试及覆盖率评估 216

7.2.2 JUnit 217

7.2.3 Spring Boot单元测试 218

7.2.4 Mockito 220

7.3 API测试 222

7.3.1 Jmeter 224

7.3.2 压力测试 225

7.4 A/B测试 227

7.5 冒烟和回归测试 228

7.6 静态代码分析 229

7.6.1 Checkstyle 230

7.6.2 FindBugs 233

7.6.3 PMD 234

7.7 SonarQube质量监控 237

7.7.1 为什么使用 237

7.7.2 安装和使用 238

7.7.3 安装插件 240

7.7.4 运行流程 240

7.8 小结 241

第8章 微服务之JHipster 242

8.1 JHipster技术列表 243

8.1.1 客户端选项 243

8.1.2 服务端选项 245

8.1.3 部署选项 249

8.2 Angular简介 250

8.3 快速开始JHipster 251

8.3.1 安装 251

8.3.2 使用 252

8.3.3 构建单体应用 253

8.3.4 Entity sub-generator 255

8.3.5 开发和运行 258

8.3.6 插件安装 260

8.4 目录结构 260

8.5 构建微服务应用 261

8.5.1 注册中心 261

8.5.2 创建微服务网关 263

8.5.3 Traefik 266

8.5.4 JHipster UAA 266

8.5.5 构建微服务应用 269

8.6 基础配置 271

8.6.1 JHipster属性配置 271

8.6.2 作为Maven项目 274

8.6.3 数据库 274

8.6.4 DTO 275

8.6.5 分页 276

8.6.6 文档 277

8.7 小结 281

第9章 微服务之自动化部署 282

9.1 私有仓库搭建 283

9.1.1 Nexus介绍 283

9.1.2 安装与配置 284

9.1.3 在项目中使用 285

9.2 Ansible 287

9.3 持续集成 289

9.3.1 持续集成流程 290

9.3.2 Jenkins介绍与安装 291

9.3.3 Maven介绍 293

9.3.4 Jenkins系统设置 294

9.3.5 集成 Sonar 295

9.3.6 构建工程 297

9.3.7 配置测试 299

9.4 灰度发布 299

9.5 小结 302

第10章 微服务之日志收集与监控 303

10.1 ELK搜集与分析 305

10.1.1 工作流程 306

10.1.2 日志格式 306

10.1.3 平台搭建 307

10.2 系统监控 310

10.2.1 监控策略和监控对象 310

10.2.2 进程监控 311

10.2.3 数据波动监控 312

10.2.4 常用监控命令 312

10.3 运维监控 316

10.3.1 Zabbix 316

10.3.2 Open-Falcon 321

10.4 APM监控 323

10.4.1 Pinpoint 323

10.4.2 SkyWalking 325

10.4.3 Zipkin 326

10.4.4 CAT 328

10.5 Pinpoint的安装与使用 330

10.5.1 Pinpoint的安装 330

10.5.2 Pinpoint的使用 332

10.5.3 Pinpoint实现邮件告警 335

10.6 小结 338

第11章 完整示例 339

11.1 安装Lom 340

11.2 PiggyMetrics 341

11.3 整体架构 342

11.3.1 配置Spring Cloud Config 343

11.3.2 授权服务 344

11.3.3 API网关 345

11.3.4 服务发现 345

11.3.5 负载均衡器、断路器和HTTP客户端 346

11.3.6 监控仪表盘 347

11.3.7 日志分析 348

11.4 安装和运行 348

11.4.1 配置Maven并导入工程 348

11.4.2 安装 350

11.4.3 使用 352

11.4.4 如何变成自己的项目 354

11.5 小结 355

第12章 微服务核心功能推荐 356

12.1 工作流引擎 357

12.1.1 Activiti 357

12.1.2 UFLO 358

12.2 规则引擎 360

12.2.1 Drools 360

12.2.2 URule 361

12.3 调度系统 362

12.4 消息推送 365

12.5 网关中间件 368

12.5.1 Orange 368

12.5.2 Kong 369

12.5.3 Zuul 369

12.6 分库分表中间件 370

12.6.1 Sharding-JDBC 370

12.6.2 MyCat 373

12.7 报表引擎 374

12.8 数据处理 375

12.8.1 Spring Batch 376

12.8.2 Kettle 378

12.9 并发编程 379

12.10 分布式配置 380

12.10.1 Disconf 380

12.10.2 Apollo 381

12.11 CAS 383

12.12 WebFlux 384

12.13 小结 388