微服务架构的概念
微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间互相协调、互相融合,为用户提供最终价值,每个服务在其独立的进程中,服务与服务间采用轻量级通信机制互相协作(通常是基于HTTP协议的Restful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
Spring Cloud提出的口号是开发“面向云环境的应用程序”,它为微服务架构提供了更加全面的技术支持。而且作为Spring的拳头项目,它也能够与Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring项目完美融合,这些对于微服务而言是至关重要的。
今天咱们就为大家推荐一本学习微服务架构进阶的秘籍,将会系统性地介绍微服务架构:包括微服务架构是如何演进的,微服务架构的主要流派,当前主流的云原生应用与微服务之间的关系等。下面就跟着小编一起来一探究竟吧~~~
本书特点
本书在介绍SpringCloud中的重要组件时,从基础应用的案例着手,尽可能将这类组件的设计思路和实现原理讲清楚,以帮助读者加深理解,并结合源码讲解组件的实现原理,最后还介绍了组件的进阶功能与应用。
内容
本书详细介绍Spring Cloud相关组件及其在微服务架构中的应用。
全书共13章,
第1章介绍微服务架构相关的基本概念;
第2章介绍SpringCloud中包含的组件以及Spring Cloud约定的上下文;
第3章介绍Spring Cloud的基础Spring Boot,包括如何构建一个Spring Boot服务、Spring Boot的配置等;
第4~13章详细讲解Spring Cloud组件,包括Eureka (服务注册与发现)、OpenFeign (声明式RESTful客户端)、Hystrix (断路器). Ribbon (客户端负载均衡器)、Gateway ( API网关)、Config (配置中心)、Stream (消息驱动)、Bus(消息总线)、Security (认证与授权)、Sleuth (服务链路追踪)。本书的目标是深入到Spring Cloud组件实现的技术内幕,并介绍了进阶应用的思路,为读者提供使用Spring Cloud进行微服务架构实践的参考。
各章节介绍
第一章:微服务架构介绍
从单体应用架构发展到SOA架构,再到微服务架构,应用架构经历了多年的不断演进。微服务架构不是凭空产生的,而是技术发展的必然结果,分布式云平台的应用环境使得微服务代替单体应用成为互联网大型系统的架构选择。目前,虽然微服务架构还没有公认的技术标准和规范草案,但业界已经有了一些很有影响力的开源微服务架构解决方案,在进行微服务化开发或改造时可以进行相应的参考。
第二章:Spring Cloud总览
本章将会对SpringCloud架构及相关组件进行初步介绍,然后介绍SpringCloud上下文和Spring Cloud的公共抽象,这部分内容可能会在多个组件中出现,所以此处的介绍并不依赖具体的组件。
第三章:Spring Cloud的基础:
本章第一小节对SpringBoot功能和特点进行概述,包括SpringBoot中的核心特性;第二小节将搭建一个Spring Boot项目来快速了解基本开发流程;在第三小节中总结了Spring Boot的配置文件及应用。
第四章:服务注册与发现:
本章中,第一小节将对Eureka进行--个综合性的概述,同时搭建一个Eureka应用的简单例子,以演示运行机制;第二小节将从宏观的角度对Eureka的整体架构进行概述,对Eureka各组件和组件间的行为进行介绍;第三小节将从源码的角度对EurekaClient的运行原理进行解析,分析它与Eureka Server之间的交互行为;第四小节将对Euerka Server的源码进行讲解,分析其如何在微服务架构中发挥服务注册中心的作用;在第五小节将对Eureka中的配置属性和高级特性进行讲解。
第五章:声明式RESTful客户端:
在本章中,第一小节主要讲解了微服务交互的常见方式以及OpenFeign的基础应用;第二小节对OpenFeign的源码进行了分析,分别讲述了动态注册Spring实例定义( BeanDefinition)、实例初始化和函数调用与网络请求三部分的代码实现逻辑;第三小节则介绍了OpenFeign相关的高级进阶用法。
第六章:断路器:
本章中,第一小节将会搭建用于演示Hystrix服务断路作用的简单例子;第二小节将会对Hystrix中相关术语和设计原理进行介绍;第三小节将从源码的角度分析Hystrix的实现机制和运行原理;第四小节将对Hystrix中的配置属性和高级特性进行介绍。
本书适合具有一些Java基础的开发人员,特别适合正在尝试微服务实践并想要深人了解SpringCloud各个组件原理的开发人员和架构师。