目前微服务的现状是概念多于实践,管理和架构人员往往不知道如何落地微服务,《微服务架构实战》从软件工程的角度切入,融入了作者多年的管理及架构经验,内容完全基于实际经验所得,直击痛处。通过阅读本书,开发人员能够实现微服务的快速落地。
《微服务架构实战》共12章,分为概念篇、开发篇、运维篇和实战篇。概念篇详细阐述微服务的由来和设计要点。开发篇介绍Spring Boot、Docker和Spring Cloud应用于微服务的案例,并且附有源代码。运维篇从测试、快速开发、质量管理、自动化运维和监控的角度介绍微服务涉及的知识点。实战篇将企业级开发中涉及的内容尽可能详细地列出。
《微服务架构实战》不但适合初学者,而且对于团队的管理者及技术选型的架构师也有着非常大的参考意义。
目录
- 第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 小结