具体描述
作 者:方志朋 著作 定 价:69 出 版 社:人民邮电出版社 出版日期:2018年03月01日 页 数:262 装 帧:平装 ISBN:9787115475220 1. 深入浅出讲解Spring Cloud组件、开发工具、框架等知识点。2. 使读者全面理解微服务的构建原理。3. 实例丰富,解释清晰,易于读者真正理解原理,并学以致用。4. 深入讲解Spring Cloud OAuth2,直击市场需求痛点。
●目 录 * 1章 微服务简介11.1 单体架构及其存在的不足11.1.1 单体架构简介11.1.2 单体架构存在的不足21.1.3 单体架构使用服务器集群及存在的不足21.2 微服务31.2.1 什么是微服务41.2.2 微服务的优势81.3 微服务的不足91.3.1 微服务的复杂度91.3.2 分布式事务91.3.3 服务的划分111.3.4 服务的部署111.4 微服务和SOA的关系121.5 微服务的设计原则12* 2章 Spring Cloud简介142.1 微服务应该具备的功能142.1.1 服务的注册与发现152.1.2 服务的负载均衡152.1.3 服务的容错172.1.4 服务网关182.1.5 服务配置的统一管理192.1.6 服务链路追踪202.2 Spring Cloud212.2.1 简介212.2.2 常用组件212.2.3 项目一览表232.3 Dubbo简介242.4 Spring Cloud与Dubbo比较252.5 Kubernetes简介262.6 Spring Could与Kubernetes比较272.7 总结29第3章 构建微服务的准备303.1 JDK的安装303.1.1 JDK的下载和安装303.1.2 环境变量的配置303.2 IDEA的安装313.2.1 IDEA的下载313.2.2 用IDEA创建一个Spring Boot工程323.2.3 用IDEA启动多个Spring Boot工程实例343.3 构建工具Maven的使用353.3.1 Maven简介353.3.2 Maven的安装353.3.3 Maven的核心概念373.3.4 编写Pom文件373.3.5 Maven构建项目的生命周期393.3.6 常用的Maven命令40第4章 开发框架Spring Boot434.1 Spring Boot简介434.1.1 Spring Boot的特点434.1.2 Spring Boot的优点444.2 用IDEA构建Spring Boot工程444.2.1 项目结构444.2.2 在Spring Boot工程中构建Web454.2.3 Spring Boot的测试464.3 Spring Boot配置文件详解464.3.1 自定义属性474.3.2 将配置文件的属性赋给实体类474.3.3 自定义配置文件494.3.4 多个环境的配置文件504.4 运行状态监控Actuator504.4.1 查看运行程序的健康状态524.4.2 查看运行程序的Bean534.4.3 使用Actuator关闭应用程序554.4.4 使用shell连接Actuator564.5 Spring Boot整合JPA574.6 Spring Boot整合Redis604.6.1 Redis简介604.6.2 Redis的安装604.6.3 在Spring Boot中使用Redis604.7 Spring Boot整合Swagger2,搭建Restful API在线文档62第5章 服务注册和发现Eureka665.1 Eureka简介665.1.1 什么是Eureka665.1.2 为什么选择Eureka665.1.3 Eureka的基本架构675.2 编写Eureka Server675.3 编写Eureka Client705.4 源码解析Eureka735.4.1 Eureka的一些概念735.4.2 Eureka的高可用架构745.4.3 Register服务注册745.4.4 Renew服务续约785.4.5 为什么Eureka Client获取服务实例这么慢805.4.6 Eureka 的自我保护模式805.5 构建高可用的Eureka Server集群815.6 总结83第6章 负载均衡Ribbon846.1 RestTemplate简介846.2 Ribbon简介856.3 使用RestTemplate和Ribbon来消费服务856.4 LoadBalancerClient简介886.5 源码解析Ribbon90第7章 声明式调用Feign1017.1 写一个Feign客户端1017.2 FeignClient详解1057.3 FeignClient的配置1067.4 从源码的角度讲解Feign的工作原理1077.5 在Feign中使用HttpClient和OkHttp1107.6 Feign是如何实现负载均衡的1127.7 总结114第8章 熔断器Hystrix1158.1 什么是Hystrix1158.2 Hystrix解决了什么问题1158.3 Hystrix的设计原则1178.4 Hystrix的工作机制1178.5 在RestTemplate和Ribbon上使用熔断器1188.6 在Feign上使用熔断器1198.7 使用Hystrix Dashboard监控熔断器的状态1208.7.1 在RestTemplate中使用Hystrix Dashboard1208.7.2 在Feign中使用Hystrix Dashboard1238.8 使用Turbine聚合监控124第9章 路由网关Spring Cloud Zuul1269.1 为什么需要Zuul1269.2 Zuul的工作原理1269.3 案例实战1289.3.1 搭建Zuul服务1289.3.2 在Zuul上配置API接口的版本号1319.3.3 在Zuul上配置熔断器1329.3.4 在Zuul中使用过滤器1339.3.5 Zuul的常见使用方式135* 10章 配置中心Spring Cloud Config13710.1 Config Server从本地读取配置 文件13710.1.1 构建Config Server13710.1.2 构建Config Client13810.2 Config Server从远程Git仓库读取配置文件14010.3 构建高可用的Config Server14110.3.1 构建Eureka Server14110.3.2 改造Config Server14210.3.3 改造Config Client14310.4 使用Spring Cloud Bus刷新配置144* 11章 服务链路追踪Spring Cloud Sleuth14711.1 为什么需要Spring Cloud Sleuth14711.2 基本术语14711.3 案例讲解14811.3.1 构建Zipkin Server14811.3.2 构建User Service14911.3.3 构建Gateway Service15111.3.4 项目演示15211.4 在链路数据中添加自定义数据15311.5 使用RabbitMQ 传输链路数据15411.6 在MySQL数据库中存储链路数据15511.6.1 使用Http传输链路数据,并存储在MySQL数据库中15611.6.2 使用RabbitMQ传输链路数据,并存储在MySQL数据库中15711.7 在ElasticSearch中存储链路数据15811.8 用Kibana展示链路数据159* 12章 微服务监控Spring Boot Admin16112.1 使用Spring Boot Admin监控Spring Cloud微服务16112.1.1 构建Admin Server16112.1.2 构建Admin Client16312.2 在Spring Boot Admin中集成Turbine16612.2.1 改造Eureka Client16612.2.2 另行构建Eureka Client16712.2.3 构建Turbine工程16812.2.4 在Admin Server中集成Turbine16912.3 在Spring Boot Admin中添加安全登录界面172* 13章 Spring Boot Security详解17413.1 Spring Security简介17413.1.1 什么是Spring Security17413.1.2 为什么选择Spring Security17413.1.3 Spring Security提供的安全模块17513.2 Spring Boot Security与Spring Security的关系17613.3 Spring Boot Security案例详解17613.3.1 构建Spring Boot Security工程17613.3.2 配置Spring Security17813.3.3 编写相关界面18013.3.4 Spring Security方法级别上的保护18513.3.5 从数据库中读取用户的认证信息18813.4 总结193* 14章 使用Spring Cloud OAuth2保护微服务系统19514.1 什么是OAuth219514.2 如何使用Spring OAuth219614.2.1 OAuth2 Provider19614.2.2 OAuth2 Client20014.3 案例分析20114.3.1 编写Eureka Server20214.3.2 编写Uaa授 权服务20214.3.3 编写service-hi资源服务20914.4 总结215* 15章 使用Spring Security OAuth2和JWT保护微服务系统21715.1 JWT简介21715.1.1 什么是JWT21715.1.2 JWT的结构21815.1.3 JWT的应用场景21915.1.4 如何使用JWT21915.2 案例分析21915.2.1 案例架构设计21915.2.2 编写主Maven工程22015.2.3 编写Eureka Server22115.2.4 编写Uaa授 权服务22215.2.5 编写user-service资源服务22715.3 总结236* 16章 使用Spring Cloud构建微服务综合案例23716.1 案例介绍23716.1.1 工程结构23716.1.2 使用的技术栈23816.1.3 工程架构23816.1.4 功能展示24016.2 案例详解24416.2.1 准备工作24416.2.2 构建主Maven工程24416.2.3 构建eureka-server工程24516.2.4 构建config-server工程24616.2.5 构建zipkin-service工程24716.2.6 构建monitoring-service工程24816.2.7 构建uaa-service工程25016.2.8 构建gateway-service工程25116.2.9 构建admin-service工程25316.2.10 构建user-service工程25316.2.11 构建blog-service工程25616.2.12 构建log-service工程25616.3 启动源码工程26016.4 项目演示26116.5 总结262
内容简介
本书共分16章,全面涵盖了Spring Cloud构建微服务相关的知识点。* 1、2章详细介绍了微服务架构和Spring Cloud。第3、4章讲解了用Spring Cloud构建微服务的准备工作。第5~12章以案例为切入点,讲解了Spring Cloud构建微服务的基础组件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Config、Sleuth、Admint等组件。* 13~15章讲述了使用Spring Cloud OAuth2来保护微服务系统的相关知识。* 16章用一个综合案例,全面讲解了如何使用Spring Cloud构建微服务,可以作为实际开发的样例工程。本书既适合Spring Cloud初学者入门使用,又适合正在做微服务实践的架构师或打算实施微服等 方志朋 著作 方志朋,毕业于武汉理工大学硕士学位。CSDN博客专家、Spring Cloud中国社区联合创始人。对技术有着狂热的追求,活跃于各大技术社区,包括CSDN、GitHub、掘金、简书、Spring Cloud中国社区。
《解构云原生:Kubernetes实战指南》 内容梗概: 《解构云原生:Kubernetes实战指南》并非一本纯粹的技术手册,而是一次深度探索和实践的旅程,旨在引领读者从宏观的云原生理念出发,逐步深入到Kubernetes这个现代应用部署与管理的核心利器。本书的价值在于其清晰的逻辑脉络、丰富的实战案例以及对复杂概念的深入浅出解读,致力于帮助开发者、运维工程师以及架构师们构建、部署、扩展和管理其云原生应用。 本书的起点,并非直接跳入Kubernetes的各种命令和API,而是首先构建一个坚实的云原生思维模型。我们将从“为什么需要云原生?”这个根本性问题出发,探讨其背后的驱动力,包括敏捷开发的需求、弹性伸缩的必要性、容器化带来的标准化优势,以及微服务架构在分布式环境下的挑战与机遇。在此基础上,我们将详细阐述容器技术(以Docker为代表)的核心概念,如镜像、容器、仓库等,并解释容器化如何为微服务提供轻量级、隔离性强且可移植的运行环境。 随后,本书将重心转移到Kubernetes本身。我们不会仅仅罗列其组件和功能,而是深入剖析Kubernetes的架构设计,包括其核心组件(API Server, etcd, Controller Manager, Scheduler)和工作节点组件(Kubelet, Kube-proxy, Container Runtime)的职责与协作方式。理解这些底层机制,是后续深入掌握Kubernetes各种高级特性的基础。 本书的核心篇幅将集中在Kubernetes的四大核心抽象对象:Pod, Service, Deployment, 和StatefulSet。我们会详细讲解每个对象的概念、用途、YAML文件结构以及它们如何协同工作来管理和暴露应用。例如,在讲解Pod时,我们将深入探讨Pod的生命周期、就绪探针、存活探针的重要性,以及如何通过Init Containers和Sidecar模式来增强Pod的功能。在Service部分,我们将区分ClusterIP, NodePort, LoadBalancer等不同的Service类型,并讲解Kubernetes如何实现服务的发现与负载均衡。Deployment将作为本书的重头戏之一,我们不仅会讲解如何创建和管理无状态应用,还会深入探讨滚动更新、回滚、金丝雀发布等高级部署策略,以及如何通过ReplicaSet和Resource Quotas来保障应用的可用性和资源使用。对于有状态应用,StatefulSet的讲解将是关键,我们将深入分析其与Deployment的区别,以及如何利用PersistentVolume和PersistentVolumeClaim来管理有状态应用的数据持久化。 除了基础资源的管理,本书还将触及Kubernetes在实际生产环境中的关键考量。我们将详细讲解网络模型,包括CNI(Container Network Interface)插件的作用,以及Pod间通信、Service网络以及Ingress Controller的原理。安全性是云原生应用部署的重中之重,因此,本书将 devote considerable attention to Kubernetes Security。我们将深入探讨RBAC(Role-Based Access Control)的配置,Namespace的隔离作用,Secrets和ConfigMaps的管理,以及Pod Security Policies(虽然已弃用,但其理念仍有参考价值)和Network Policies的应用。 在部署和运维方面,本书将涵盖CI/CD流水线与Kubernetes的集成。我们将介绍如何利用Jenkins, GitLab CI, Argo CD等工具,将代码构建、镜像打包、部署到Kubernetes的整个流程自动化。 Helm,作为Kubernetes的包管理工具,也将得到详细的讲解,包括Chart的创建、依赖管理以及如何使用Helm来简化应用的部署和升级。 本书不会止步于Kubernetes的部署和管理,还将触及更广泛的云原生生态系统。我们将会探讨监控与日志解决方案,如Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana),以及如何将它们集成到Kubernetes集群中,实现对应用和基础设施的全面监控与日志分析。此外,分布式追踪(如Jaeger, Zipkin)在排查微服务问题中的作用也将得到阐述。 为了使本书更具实践指导意义,每个章节都将配有丰富的代码示例、YAML配置文件以及详细的操作步骤。我们会从简单的Hello World应用开始,逐步构建更复杂的微服务场景,例如,如何将多个微服务部署到Kubernetes,如何配置服务发现,如何实现API网关,以及如何处理数据库等有状态服务的部署。本书还会包含一些常见的Kubernetes运维场景和故障排除指南,帮助读者在遇到问题时能够快速定位和解决。 本书的受众广泛,无论是初次接触Kubernetes的新手,还是希望深入理解其工作原理和高级特性的开发者和运维人员,都能从中受益。对于那些正在探索或已经迈入云原生转型的组织而言,《解构云原生:Kubernetes实战指南》将是他们构建健壮、可伸缩、高可用云原生应用的宝贵参考。本书的目标是让读者不仅学会“怎么做”,更能理解“为什么这样做”,从而在云原生时代游刃有余。 本书特色: 理论与实践深度结合: 在讲解Kubernetes核心概念的同时,提供大量贴近实际的部署和管理案例,帮助读者快速上手。 循序渐进的知识体系: 从云原生理念到容器化基础,再到Kubernetes核心组件和高级特性,构建清晰的学习路径。 丰富的配置示例与操作指南: 提供详尽的YAML配置和详细的操作步骤,确保读者可以轻松复现和应用。 关注生产环境的关键考量: 深入探讨网络、安全、监控、日志、CI/CD等生产环境必须考虑的要素。 全面覆盖云原生生态: 除了Kubernetes本身,还涉及Docker、Helm、Prometheus、Grafana等关键工具。 深入浅出的讲解风格: 力求将复杂的技术概念用通俗易懂的语言解释清楚,降低学习门槛。 《解构云原生:Kubernetes实战指南》不仅是技术学习的工具,更是您迈向云原生时代的信心之源。