国内关于微服务架构的开发学习资料都非常有限,这使得微服务架构在国内的推广并没有想象中那样火热。而且,国内的相关资料大多数以理论为主或者没有实战基础。

本书以实战为主,以理论为辅,真正给出了能在实际生产中使用的技术方案。由于篇幅限制以及以实战为主的特点,本书不会介绍太多的理论(哪怕这个理论很重要),比如在介绍Consul的时候,本书不会详细介绍Raft一致性协议,但是会介绍与其相关的一些在使用中需要注意的问题,如果读者对相关问题有兴趣,可以查看相关的论文资料

内容简介

本书分为三部分:

基础框架篇(第1~6章)

服务框架篇(第7~10章)

监控部署篇(第11~13章)

由浅入深地讲解了微服务的相关技术。基础框架篇从微服务架构的基本概念与技术选型出发,详细介绍了微服务基础框架Spring Boot、自动化API文档生成工具Swagger、动态数据源和缓存系统,并深入分析了Spring Boot启动过程的核心源码,这一部分是整本书的基础;服务框架篇详细介绍了服务注册与发现框架Consul、热配置管理框架Archaius、服务降级容错框架Hystrix,以及服务通信框架OkHttp、AsyncHttpClient和Retrofit,这一部分是整本书的核心;监控部署篇详细介绍了ELK日志系统的实现、Zipkin全链路追踪系统的实现,最后介绍了持续集成与持续部署系统的实现,这一部分是开发运维部分。

第1篇基础框架篇

第1章微服务概述

本章首先介绍了微服务架构的概念与优缺点,之后简略介绍了微服务中需要的各种组件与常见的技术选型。

私信小编【资料】即可获取这份蘑菇街大牛整合项目经验编写368页Java微服务实战文档

第2章微服务 基础框架

本章首先介绍了Spring Boot在微服务方面的优势,之后通过从零开始开发一个SpringBoot项目来介绍Spring Boot的基本使用方法,是没有使用过Spring Boot的同学可以快速入门。最后在“再学-招”部分,介绍了一个非常好用的Maven命令: Maven依赖树, 该命令是查看SpringBoot-Starter的依赖以及处理依赖冲突的利器。

第3章微服务文档输出

本章首先介绍了自动化文档输出工具Swagger的概念,之后介绍了Swagger与Spring Boot的集成以及Swagger的常用注解。最后在“再学一招”部分,介绍了一个很好用的消除模板代码的框架Lombok的安装与使用方法。

第4章微服务数据库

本章以MySQL为例,首先介绍了在单数据源的情况下,Spring Boot与MyBatis的集成。之后使用AbstractRoutingDataSource实现了对多数据源情况的处理,并简要介绍了实现多数据源的原理。最后在“再学一招”部分,介绍了MyBatis-Generator的基本用法。

第5章微服务缓存 系统

本章首先介绍了常用的缓存技术的优缺点与选型方案,之后介绍了当使用Redis2.x版本时,使用Spring Boot集成Shardledis实现客户端分片的方法。然后介绍了Redis 3.x集群的搭建与使用Spring Boot集成JedisCluster实现服务端集群的方法。最后简要分析了JedisCluster的源码。在本章的“再学一招” 部分,介绍了使用GuavaCache实现本地缓存的方法。

第6章Spring Boot启动源码解析

本章详细分析了Spring Boot启动过程的源码,掌握这-章对于后续章节的学习至关重要。在本章的“再学一招” 部分,简要介绍了在开发过程中获取配置信息的4种方法。

第2篇服务框架篇

第7章 微服务注册与发现

本章首先介绍了Consul的基本概念和功能,之后搭建了服务提供者和服务调用这两个项目来实现使用Consul进行服务注册和服务发现的功能,最后介绍了使用Consul与SpringBoot-Actuator实现服务健康检查的功能。在本章的“再学一招”部分,简要介绍了Consul自身提供的几种健康检查的方式及原理。

第8章 微服务配置管理

本章首先介绍了为什么要使用Archaius 以及Archaius 实现服务热配置的原理,之后展示了使用Consul-KV实现配置中心的方式以及结合Archaius实现配置动态获取的方式,最后提供了一种将Archaius配置信息与Spring的PropertySource结合的方案。在本章的“再学一招”部分,笔者详细分析了使用Archaius构造动态属性源以及动态获取属性的源码。

第9章 微服务进程间通信

本章首先介绍了三种服务通信框架:OkHttp、AsyncHttpClient和Retrofit,之后分别展示了使用三种框架进行服务通信的代码编写方法。最后在本章的“再学一招”部分,详细分析了使用Retrofit进行服务通信的核心源码。

第10章 微服务降级容错

本章首先详细介绍了为什么使用Hystrix、Hystrix的工作原理以及执行流程,之后展示了在实际项目中如何使用Hystrix实现服务降级容错,最后展示了怎样结合Turbine来搭建一个完整的Hystrix监控系统。在本章的“再学一招”部分,介绍了设置Hystrix配置参数的两种方法以及最常使用的11个配置项。

第3篇监控部署篇

第11章 微服务日志系统

本章首先详细介绍了为什么使用ELK以及ELK最常用的两种架构,之后搭建了ELK缓冲系统,然后展示了怎样将项目中的日志发送到日志系统中,最后简单介绍了Kibana的常见用法。在本章的“再学一招”部分,介绍了怎样使用Elasticsearch-Curator进行日志的定时删除。

第12章 微服务全链路追踪系统

本章首先详细介绍了为什么使用Zipkin、Zipkin的工作流程、数据模型以及工作原理,之后搭建了Zipkin全链路追踪系统,然后分别展示了使用AsyncHttpClient和OkHttp实现服务通信时进行链路追踪的方式,并且介绍了将追踪信息进行持久化的方法。在本章的“再学一招”部分,详细分析了Brave(Zipkin的官方Java客户端)的核心源码。

第13章 微服务持续集成与持续部署系统

本章首先详细介绍了为什么需要搭建持续集成与持续部署系统,之后介绍了构建这套系统的技术选型:GitLab、Jenkins、Docker-Registry与总体架构,然后分别介绍了使用jar包部署服务和使用Docker镜像部署服务时持续集成与持续部署系统的工作原理。之后,搭建了这套系统,最后分别展示了在使用jar包部署服务和使用Docker镜像部署服务时,持续集成与持续部署系统的实现方式。在本章的“再学一招”部分,介绍了最常用的10条Docker命令。

想要获取这份资料的老铁,转发+关注+私信【资料】即可领取这份蘑菇街大牛整合项目经验编写368页Java微服务实战文档