微服务架构实战
  • 推荐0
  • 收藏5
  • 浏览2.3K

微服务架构实战

张锋 (作者) 

  • 书  号:978-7-121-34342-1
  • 出版日期:2018-07-01
  • 页  数:408
  • 开  本:16(185*235)
  • 出版状态:上市销售
纸质版 ¥89.00
本书从大型网站的架构设计模式以及技术造型着手,以Spring Cloud和Docker为构建框架,实现横向可扩展的高可用架构。项目分层清晰,包括完备的质量和监控体系。依据敏捷开发的原则,快速迭代,以完整的示例实现整个CI/CD的流程,快速响应需求。在本书的最后,会精选在项目中应用的几个开源框架,以期读者能够在阅读完本书后,快速掌握并应用微服务相关的知识。
概念篇详细阐述微服务的由来和设计要点。开发篇介绍Spring Boot、Docker和Spring Cloud应用于微服务的案例,并且附有源代码。运维篇从测试、快速开发、质量管理、自动化运维和监控的角度介绍微服务涉及的知识点。实战篇将企业级开发中涉及的内容尽可能详细地列出。
前言


从分布式服务到SOA,再到微服务,服务化的脚步一直在不断地前进。正所谓“分久必合,合久必分”,在企业高速发展的今天,单体架构已经很难适应业务的快速变化,微服务的出现,为应对快速变化的业务需求、冗长的开发周期提供了一种新的解决方案。它以模块化的思维应对快速变化的业务需求,使用比如自动化部署、自动化业务监控预警、调用链监控、容器化,以及快速开发等思想加快软件的开发周期,实现更快速、更高质量的交付,整体提高客户的满意度。
内容介绍
本书系统地介绍了微服务涉及的各种知识点,横跨软件开发的整个生命周期,采用目前前沿的技术进行知识点的展开。微服务是一个概念,就像SOA一样,可能在不同的环境中会产生不同的设计方案。但是总的来说,微服务是为了解决高并发、大数据量的问题而产生的分布式的综合系统解决方案。
本书的内容安排非常有层次感,对于软件开发和从业人员从整体上了解和掌握微服务所需要的知识点进行了全面的梳理。
本书可以分为概念篇、开发篇、运维篇和实战篇。
概念篇
首先从概念的角度出发,让读者对微服务的发展有一个感观的了解,然后从设计理念上给出一些建议。
第1章从微服务的起源和现实业务的角度探讨微服务,使读者能够对微服务有一个感观的认识。
第2章是针对微服务的设计理念进行整理,包括服务如何折分、前后端分离、CAP理论和CQRS等,是一个高层次的指导原则。
开发篇
开发篇以Java中常用的微服务框架Spring Boot为基础,介绍Spring Boot的快速开发,以及Docker技术的基础,并且完成两者的无缝结合。接着对Spring Cloud的整体架构进行介绍。
第3章详细地介绍Spring Boot的开发,包括使用它的优缺点,以及在企业级开发中常用的工具包的整合,包括面向切面编程、Web开发、文档管理和调度管理,最后结合Dubbo完成一个示例性的分布式工程。
第4章主要讲解Docker的基础操作,介绍微服务中所用到的容器相关的技术,最后给出通用的基于容器的私有云架构。
第5章对Spring Cloud实现微服务的几个重要框架进行展开描述,让读者了解注册中心、负载均衡、容错、分布式配置、网关和消息总线,能够完成开发层面的微服务架构。
第6章对Spring Cloud的非核心框架进行介绍,包括Consul、ZooKeeper、安全框架和数据流框架。
通过对以上几章的了解,读者应该能够从开发的角度基本掌握微服务的开发。
运维篇
在微服务中,涉及的不仅仅是开发,还会涉及很多的点,包括运维、测试、监控和日志管理。
第7章主要对测试和质量管理进行介绍,测试部分包括单元测试、A/B测试、冒烟和回归测试,质量管理部分主要使用静态代码分析,并且基于SonarQube对代码进行静态检查,以及分析代码的总体质量。
第8章对微服务的最佳实践JHipster进行系统的介绍,并且对JHipster部分内容做了处理,将在国内不是很流行的部分进行了处理,尽可能详细地介绍JHipster的应用和配置。
第9章主要对自动化部署进行介绍,因为微服务的目的不仅仅是简化开发,而且能够提高整个团队的运行效率。所以私服的使用和自动化运维就显得非常重要。
第10章主要讲解日志收集和APM监控,对于线上系统来说,出现问题的概率还是非常大的,如何快速定位并第一时间找到问题所在的点就显得非常重要。APM部分对常用的监控工具进行列举,重点介绍Pinpoint,对使用和邮件告警也进行了重点介绍。
通过以上几章的了解,读者应该能够充分理解DevOps的概念,并且了解微服务并不单纯是开发人员的工作,而是整个团队的协同合作。
实战篇
第11章通过对PiggyMetrics的全面讲解,让读者能够了解一个简单的微服务架构所包含的技术点和构建原则,并且实际部署微服务,完成业务的基础操作。
第12章对在微服务构建过程中可能涉及的技术点进行讲解,包括工作流引擎、规则引擎、调度系统、分布式配置及单点登录。
通过以上几章的学习,读者应该能够在技术选型的过程中扩展思路,了解更多的分布式业务涉及的扩展知识,并且有选择地应用到业务中。
勘误和支持
随着技术的进步,微服务的架构也会有不同的演化,就像Spring 5的发布一样,为前后端分离进一步奠定了基础。本书中涉及的内容大多是个人的理解和认知,难免有不足之处,所以本书中提及的知识点主要作为抛砖引玉之用,如果有错误之处,还请读者指正。
由于笔者水平有限,且编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果您有问题或者宝贵意见,欢迎发送邮件至邮箱cloudskyme@163.com,期待能够得到您的反馈。
致谢
首先要感谢我的家人,没有他们默默的支持,我不可能坚持完成本书的创作。
然后要感谢电子工业出版社博文视点的陈晓猛等编辑对本书内容的校对、勘正及反复核对,感谢你们的付出。
最后感谢在写作过程中给予我帮助的朋友们。

张 锋

目录

目录


第1章 微服务概述
1.1 什么是微服务
1.2 为什么微服务
1.2.1 区别
1.2.2 从单体应用说起
1.2.3 第一步切分
1.2.4 服务化所带来的问题
1.2.5 微服务的可扩展性
1.2.6 微服务与SOA的区别
1.3 常见的微服务组件
1.4 常用的微服务框架
1.4.1 Spring顶级项目
1.4.2 背景
1.4.3 社区活跃度
1.4.4 架构完整度
1.4.5 总结
1.5 微服务架构设计模式
1.6 如何实施微服务
1.7 小结
第2章 微服务设计原则
2.1 设计原则之分层架构
2.2 设计原则之统一通信协议
2.3 设计原则之单一职责
2.4 设计原则之服务拆分
2.5 设计原则之前后端分离
2.6 设计原则之版本控制
2.7 设计原则之围绕业务构建
2.8 设计原则之并发流量控制
2.9 设计原则之CAP
2.10 设计原则之EDA事件驱动
2.11 设计原则之CQRS
2.12 设计原则之基础设施自动化
2.13 设计原则之数据一致性
2.14 设计原则之设计模式
2.15 设计原则之DevOps
2.16 设计原则之无状态服务
2.17 小结
第3章 微服务之Spring Boot
3.1 一切从简单开始
3.2 快速集成第三方的Starter
3.3 降低开发复杂度之面向切面
3.3.1 前置通知
3.3.2 后置返回通知
3.3.3 后置异常通知
3.3.4 后置最终通知
3.3.5 环绕通知
3.3.6 AOP总结
3.4 并不复杂的持久化
3.4.1 单数据源
3.4.2 多数据源
3.4.3 JOOQ
3.4.4 事务处理
3.4.5 整合Redis
3.4.6 整合队列
3.4.7 操作MongoDB
3.5 Web开发
3.6 懒人的接口文档管理
3.7 优化的调度
3.8 健康是永恒的主题
3.9 强强联合之整合Dubbo
3.10 小结
第4章 微服务之Docker
4.1 Docker原理
4.2 更轻量级的虚拟化
4.3 三个概念理解Docker
4.3.1 镜像(Image)
4.3.2 容器(Container)
4.3.3 仓库(Repository)
4.4 Dockerfile定制一切
4.4.1 Dockerfile语法
4.4.2 Dockerfile命令
4.4.3 Dockerfile构建过程
4.4.4 构建Java环境
4.4.5 Dockerfile小结
4.5 Docker网络
4.5.1 网络模式
4.5.2 link
4.5.3 跨主机访问
4.6 Docker数据卷
4.6.1 数据卷
4.6.2 数据卷容器
4.7 Spring Boot与Docker
4.8 搭建自己的镜像仓库
4.8.1 安装和启动
4.8.2 使用
4.9 Kubernetes
4.10 私有云整体架构
4.11 小结
第5章 微服务之Spring Cloud
5.1 注册中心
5.1.1 常用的注册中心
5.1.2 Eureka介绍
5.1.3 服务发现
5.1.4 简单注册
5.2 负载均衡
5.2.1 Spring Cloud的负载实现
5.2.2 Ribbon
5.2.3 Feign
5.2.4 加入core
5.3 微服务容错(Hystrix)
5.3.1 雪崩的形成
5.3.2 应对方案
5.3.3 降级和熔断
5.3.4 Hystrix
5.3.5 集中监控
5.4 分布式配置中心
5.5 API网关
5.5.1 为什么需要网关
5.5.2 Zuul
5.6 消息总线(Spring Cloud Bus)
5.7 小结
第6章 微服务之Spring Cloud其他框架
6.1 Spring Cloud Consul
6.2 Spring Cloud ZooKeeper
6.3 Spring Cloud archaius
6.4 Spring Cloud Task
6.5 Spring Cloud Security
6.5.1 HTTP Basic Authentication
6.5.2 JWT
6.5.3 OAuth 2
6.5.4 Spring Cloud Security
6.6 Spring Cloud Sleuth
6.6.1 服务端
6.6.2 客户端
6.7 Spring Cloud Stream
6.8 Spring Cloud Data Flow
6.9 小结
第7章 微服务之自动化测试与质量管理
7.1 微服务测试
7.2 单元测试
7.2.1 单元测试及覆盖率评估
7.2.2 JUnit
7.2.3 Spring Boot单元测试
7.2.4 Mockito
7.3 API测试
7.3.1 Jmeter
7.3.2 压力测试
7.4 A/B测试
7.5 冒烟和回归测试
7.6 静态代码分析
7.6.1 Checkstyle
7.6.2 FindBugs
7.6.3 PMD
7.7 SonarQube质量监控
7.7.1 为什么使用
7.7.2 安装和使用
7.7.3 安装插件
7.7.4 运行流程
7.8 小结
第8章 微服务之JHipster
8.1 JHipster技术列表
8.1.1 客户端选项
8.1.2 服务端选项
8.1.3 部署选项
8.2 Angular简介
8.3 快速开始JHipster
8.3.1 安装
8.3.2 使用
8.3.3 构建单体应用
8.3.4 Entity sub-generator
8.3.5 开发和运行
8.3.6 插件安装
8.4 目录结构
8.5 构建微服务应用
8.5.1 注册中心
8.5.2 创建微服务网关
8.5.3 Traefik
8.5.4 JHipster UAA
8.5.5 构建微服务应用
8.6 基础配置
8.6.1 JHipster属性配置
8.6.2 作为Maven项目
8.6.3 数据库
8.6.4 DTO
8.6.5 分页
8.6.6 文档
8.7 小结
第9章 微服务之自动化部署
9.1 私有仓库搭建
9.1.1 Nexus介绍
9.1.2 安装与配置
9.1.3 在项目中使用
9.2 Ansible
9.3 持续集成
9.3.1 持续集成流程
9.3.2 Jenkins介绍与安装
9.3.3 Maven介绍
9.3.4 Jenkins系统设置
9.3.5 集成Sonar
9.3.6 构建工程
9.3.7 配置测试
9.4 灰度发布
9.5 小结
第10章 微服务之日志收集与监控
10.1 ELK搜集与分析
10.1.1 工作流程
10.1.2 日志格式
10.1.3 平台搭建
10.2 系统监控
10.2.1 监控策略和监控对象
10.2.2 进程监控
10.2.3 数据波动监控
10.2.4 常用监控命令
10.3 运维监控
10.3.1 Zabbix
10.3.2 Open-Falcon
10.4 APM监控
10.4.1 Pinpoint
10.4.2 SkyWalking
10.4.3 Zipkin
10.4.4 CAT
10.5 Pinpoint的安装与使用
10.5.1 Pinpoint的安装
10.5.2 Pinpoint的使用
10.5.3 Pinpoint实现邮件告警
10.6 小结
第11章 完整示例
11.1 安装Lombok
11.2 PiggyMetrics
11.3 整体架构
11.3.1 配置Spring Cloud Config
11.3.2 授权服务
11.3.3 API网关
11.3.4 服务发现
11.3.5 负载均衡器、断路器和HTTP客户端
11.3.6 监控仪表盘
11.3.7 日志分析
11.4 安装和运行
11.4.1 配置Maven并导入工程
11.4.2 安装
11.4.3 使用
11.4.4 如何变成自己的项目
11.5 小结
第12章 微服务核心功能推荐
12.1 工作流引擎
12.1.1 Activiti
12.1.2 UFLO
12.2 规则引擎
12.2.1 Drools
12.2.2 URule
12.3 调度系统
12.4 消息推送
12.5 网关中间件
12.5.1 Orange
12.5.2 Kong
12.5.3 Zuul
12.6 分库分表中间件
12.6.1 Sharding-JDBC
12.6.2 MyCat
12.7 报表引擎
12.8 数据处理
12.8.1 Spring Batch
12.8.2 Kettle
12.9 并发编程
12.10 分布式配置
12.10.1 Disconf
12.10.2 Apollo
12.11 CAS
12.12 WebFlux
12.13 小结

本书勘误

印次
  • 页码:122  •  印次: 1

    4.6 Docker 数据卷 下的数据卷容器拼写错误 (Data Volumes Dontainers)
    Dontainers 应为Containers

    8899 提交于 2019/8/15 12:49:31
    陈晓猛 确认于 2019/8/15 15:51:54
  • 页码:195  •  行数:18  •  印次: 1

    “Alice:123456”应该为“zhangfeng:123456”

    DavidWei 提交于 2019/6/14 10:02:40
    陈晓猛 确认于 2019/6/14 12:59:51
  • 页码:197  •  行数:8  •  印次: 1

    playload拼写错误,应该为payload

    DavidWei 提交于 2019/6/14 10:53:29
    陈晓猛 确认于 2019/6/14 12:59:43

读者评论

图书类别

相关图书

架构解密:从分布式到微服务(第2版)

吴治辉 (作者)

微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术...

 

高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh

程超 (作者)

近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。本书不以某一种微服务框架的使用为主题,而是对整个微服务生态进行系统...

¥54.00

架构探险:轻量级微服务架构(下册)

黄勇 (作者)

本书将重点关注微服务基础设施方面,其中大部分内容涉及微服务运维相关技术。全书以实践的角度进行编写,读者首先将学习到轻量级微服务架构的全景视图,随后的各个章节将围...

¥79.00

Spring Cloud微服务实战

翟永超 (作者)

本书从时下流行的微服务架构概念出发,详细介绍了Spring Cloud针对微服务架构中几大核心要素的解决方案和基础组件。对于各个组件的介绍,本书主要以示例与源码...

¥59.00

Node.js微服务

David Gonzalez (作者) 赵震一 (译者)

本书对如何采用Node.js及其生态工具进行微服务开发的最佳实践做了全面的介绍,内容包括对微服务架构基本概念及设计原则的讲解,以及如何采用Node.js搭配Se...

¥69.00

Java微服务

卢涛 (作者) 卢涛 卢涛 (译者)

微服务是利用云平台开发企业应用程序的最新技术,它是小型、轻量和过程驱动的组件。微服务适合设计可扩展、易于维护的应用程序。它可以使开发更容易,还能使资源得到最佳利...

¥69.00