Spring微服务实战(第2版)

Spring微服务实战(第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

一本为Java/Spring开发人员编写的微服务实战指南。

内容简介

本书以一个名为O-stock的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将O-stock项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并最终自动部署到云环境中。

作者简介

作者约翰·卡内尔,一位资深云工程师,拥有二十多年的Java开发经验。他大部分时间都在使用AWS平台构建基于电话的微服务。他的日常工作主要是设计和构建跨Java、Clojure和Go等多种技术平台的微服务。

章节目录

版权信息

内容提要

译者序

前言

致谢

关于本书

关于作者

封面插图

资源与支持

第1章 欢迎迈入云世界,Spring

1.1 微服务架构的演进

1.1.1 n层架构

1.1.2 什么是单体架构

1.1.3 什么是微服务

1.1.4 为什么要改变构建应用的方式

1.2 使用Spring开发微服务

1.3 我们在构建什么

1.4 本书涵盖什么内容

1.4.1 在本书中你会学到什么

1.4.2 为什么本书与你有关

1.5 云和基于微服务的应用程序

1.5.1 使用Spring Boot来构建微服务

1.5.2 云计算到底是什么

1.5.3 为什么是云和微服务

1.6 微服务不只是编写代码

1.7 核心开发模式

1.8 路由模式

1.9 客户端弹性模式

1.10 安全模式

1.11 日志记录和跟踪模式

1.12 应用程序度量模式

1.13 构建/部署模式

1.14 小结

读者服务:

第2章 使用Spring Cloud探索微服务世界

2.1 什么是Spring Cloud

2.1.1 Spring Cloud Config

2.1.2 Spring Cloud服务发现

2.1.3 Spring Cloud LoadBalancer和Resilience4j

2.1.4 Spring Cloud API Gateway

2.1.5 Spring Cloud Stream

2.1.6 Spring Cloud Sleuth

2.1.7 Spring Cloud Security

2.2 通过示例来介绍Spring Cloud

2.3 如何构建云原生微服务

2.3.1 代码库

2.3.2 依赖

2.3.3 配置

2.3.4 后端服务

2.3.5 构建、发布和运行

2.3.6 进程

2.3.7 端口绑定

2.3.8 并发

2.3.9 可任意处置

2.3.10 开发环境/生产环境等同

2.3.11 日志

2.3.12 管理进程

2.4 确保本书的示例是有意义的

2.5 使用Spring Boot和Java来构建微服务

2.5.1 设置环境

2.5.2 从骨架项目开始

2.5.3 引导Spring Boot应用程序:编写引导类

2.6 小结

读者服务:

第3章 使用Spring Boot构建微服务

3.1 架构师的故事:设计微服务架构

3.1.1 分解业务问题

3.1.2 建立服务粒度

3.1.3 定义服务接口

3.2 何时不要使用微服务

3.2.1 构建分布式系统时的复杂性

3.2.2 服务器或容器散乱

3.2.3 应用程序的类型

3.2.4 数据事务和一致性

3.3 开发人员的故事:用Spring Boot和Java构建微服务

3.3.1 构建微服务的入口:Spring Boot控制器

3.3.2 将国际化添加到许可证服务

3.3.3 实现Spring HATEOAS来显示相关的链接

3.4 DevOps故事:构建运行时的严谨性

3.4.1 服务装配:打包和部署微服务

3.4.2 服务引导:管理微服务的配置

3.4.3 服务注册和发现:客户端如何与微服务通信

3.4.4 传达微服务的健康状况

3.5 将视角综合起来

3.6 小结

读者服务:

第4章 欢迎来到Docker

4.1 容器还是虚拟机

4.2 Docker是什么

4.3 Dockerfile

4.4 Docker Compose

4.5 集成Docker与微服务

4.5.1 构建Docker镜像

4.5.2 使用Spring Boot创建Docker镜像

4.5.3 使用Docker Compose启动服务

4.6 小结

读者服务:

第5章 使用Spring Cloud Config服务器端控制配置

5.1 关于管理配置(和复杂性)

5.1.1 配置管理架构

5.1.2 实施选择

5.2 构建Spring Cloud Config服务器端

5.2.1 创建Spring Cloud Config引导类

5.2.2 使用带有文件系统的Spring Cloud Config服务器端

5.2.3 创建服务的配置文件

5.3 将Spring Cloud Config与Spring Boot客户端集成

5.3.1 建立许可证服务的Spring Cloud Config服务依赖项

5.3.2 配置许可证服务以使用Spring Cloud Config

5.3.3 使用Spring Cloud Config服务器端连接数据源

5.3.4 使用@ConfigurationProperties直接读取属性

5.3.5 使用Spring Cloud Config服务器端刷新属性

5.3.6 使用Spring Cloud Config服务器端和Git

5.3.7 使用Spring Cloud Config服务集成Vault

5.3.8 Vault UI

5.4 保护敏感配置信息

5.4.1 创建对称加密密钥

5.4.2 加密和解密属性

5.5 最后的想法

5.6 小结

读者服务:

第6章 关于服务发现

6.1 我的服务在哪里

6.2 云中的服务发现

6.2.1 服务发现架构

6.2.2 使用Spring和Netflix Eureka进行服务发现实战

6.3 构建Spring Eureka服务

6.4 通过Spring Eureka注册服务

6.4.1 Eureka的REST API

6.4.2 Eureka仪表板

6.5 使用服务发现来查找服务

6.5.1 使用Spring Discovery Client查找服务实例

6.5.2 使用带有Load Balancer功能的Spring Rest模板调用服务

6.5.3 使用Netflix Feign客户端调用服务

6.6 小结

读者服务:

第7章 当糟糕的事情发生时:使用Spring Cloud和Resilience4j的弹性模式

7.1 什么是客户端弹性模式

7.1.1 客户端负载均衡模式

7.1.2 断路器模式

7.1.3 后备模式

7.1.4 舱壁模式

7.2 为什么客户端弹性很重要

7.3 实现Resilience4j

7.4 设置许可证服务以使用Spring Cloud和Resilience4j

7.5 实现断路器

7.5.1 向组织服务添加断路器

7.5.2 定制断路器

7.6 后备处理

7.7 实现舱壁模式

7.8 实现重试模式

7.9 实现限流器模式

7.10 ThreadLocal和Resilience4j

7.11 小结

读者服务:

第8章 使用Spring Cloud Gateway进行服务路由

8.1 什么是服务网关

8.2 Spring Cloud Gateway简介

8.2.1 建立Spring Cloud Gateway项目

8.2.2 配置Spring Cloud Gateway与Eureka进行通信

8.3 在Spring Cloud Gateway中配置路由

8.3.1 通过服务发现自动映射路由

8.3.2 使用服务发现手动映射路由

8.3.3 动态重新加载路由配置

8.4 Spring Cloud Gateway的真正威力:断言和过滤器工厂

8.4.1 内置的断言工厂

8.4.2 内置的过滤器工厂

8.4.3 自定义过滤器

8.5 构建前置过滤器

8.6 在服务中使用关联ID

8.6.1 UserContextFilter:拦截传入的HTTP请求

8.6.2 UserContext:使服务易于访问HTTP首部

8.6.3 自定义RestTemplate和UserContextInteceptor:确保关联ID被传播

8.7 构建接收关联ID的后置过滤器

8.8 小结

读者服务:

第9章 保护微服务

9.1 OAuth2是什么

9.2 Keycloak简介

9.3 从小事做起:使用Spring和Keycloak来保护单个端点

9.3.1 将Keycloak服务添加到Docker

9.3.2 设置Keycloak

9.3.3 注册客户端应用程序

9.3.4 配置O-stock用户

9.3.5 对O-stock用户进行身份认证

9.4 使用Keycloak保护组织服务

9.4.1 将Spring Security和Keycloak JAR添加到各个服务

9.4.2 配置服务以指向Keycloak服务

9.4.3 定义什么和谁可以访问服务

9.4.4 传播访问令牌

9.4.5 从JWT中解析自定义字段

9.5 关于微服务安全的一些总结

9.5.1 对所有业务通信使用HTTPS/安全套接字层(SSL)

9.5.2 使用服务网关访问微服务

9.5.3 将服务划分到公共API和私有API

9.5.4 通过封锁不需要的网络端口来限制微服务的攻击面

9.6 小结

读者服务:

第10章 使用Spring Cloud Stream的事件驱动架构

10.1 消息传递、EDA和微服务的案例

10.1.1 使用同步请求-响应方式来传达状态变化

10.1.2 使用消息传递在服务之间传达状态更改

10.1.3 消息传递架构的缺点

10.2 Spring Cloud Stream简介

10.3 编写简单的消息生产者和消费者

10.3.1 在Docker中配置Apache Kafka和Redis

10.3.2 在组织服务中编写消息生产者

10.3.3 在许可证服务中编写消息消费者

10.3.4 在实际操作中查看消息服务

10.4 Spring Cloud Stream用例:分布式缓存

10.4.1 使用Redis来缓存查找

10.4.2 定义自定义通道

10.5 小结

读者服务:

第11章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪

11.1 Spring Cloud Sleuth与关联ID

11.1.1 将Spring Cloud Sleuth添加到许可证服务和组织服务中

11.1.2 剖析Spring Cloud Sleuth跟踪

11.2 日志聚合与Spring Cloud Sleuth

11.2.1 Spring Cloud Sleuth/ELK技术栈实现实战

11.2.2 在服务中配置Logback

11.2.3 在Docker中定义和运行ELK技术栈应用程序

11.2.4 配置Kibana

11.2.5 在Kibana中搜索Spring Cloud Sleuth的跟踪ID

11.2.6 使用Spring Cloud Gateway将关联ID添加到HTTP响应

11.3 使用Zipkin进行分布式跟踪

11.3.1 设置Spring Cloud Sleuth和Zipkin依赖项

11.3.2 配置服务以指向Zipkin

11.3.3 配置Zipkin服务器端

11.3.4 设置跟踪级别

11.3.5 使用Zipkin跟踪事务

11.3.6 可视化更复杂的事务

11.3.7 捕获消息传递踪迹

11.3.8 添加自定义跨度

11.4 小结

读者服务:

第12章 部署微服务

12.1 构建/部署管道的架构

12.2 在云中设置O-stock的核心基础设施

12.2.1 使用亚马逊的RDS创建PostgreSQL数据库

12.2.2 在AWS中创建Redis集群

12.3 超越基础设施:部署O-stock和ELK

12.3.1 创建运行EKL的EC2实例

12.3.2 在EC2实例中部署ELK技术栈

12.3.3 创建一个EKS集群

12.4 构建/部署管道实战

12.5 创建构建/部署管道

12.5.1 设置GitHub

12.5.2 使服务能够在Jenkins中构建

12.5.3 理解并生成管道脚本

12.5.4 创建Kubernetes管道脚本

12.6 关于构建/部署管道的总结

12.7 小结

读者服务:

附录A 微服务架构最佳实践

A.1 Richardson成熟度模型

A.2 Spring HATEOAS

A.3 外部化配置

A.4 持续集成和持续交付

A.5 监控

A.6 日志记录

A.7 API网关

读者服务:

附录B OAuth2授权类型

B.1 密码授权类型

B.2 客户端凭据授权类型

B.3 授权码授权类型

B.4 隐式授权类型

B.5 如何刷新令牌

读者服务:

附录C 监控微服务

C.1 引入Spring Boot Actuator进行监控

C.1.1 添加Spring Boot Actuator

C.1.2 启用Actuator端点

C.2 设置Micrometer和Prometheus

C.2.1 了解Micrometer和Prometheus

C.2.2 实现Micrometer和Prometheus

C.3 配置Grafana

C.4 小结

Spring微服务实战(第2版)是2022年由人民邮电出版社出版,作者[美] 约翰·卡内尔。

得书感谢您对《Spring微服务实战(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
微服务实战 电子书
微服务架构设计实践教程书籍,微服务与容器部署开发运维指南,代码基于Python语言,覆盖从微服务设计、部署到运维的各个阶段的技术实战书。
深入理解Spring Cloud与微服务构建 电子书
适读人群 :本书既适合Spring Cloud初学者入门使用,又适合正在做微服务实践的架构师或打算实施微服务的团队作为参考用书,同时也可作为高等院校计算机相关专业的师生用书和培训学校的教材。 1. 深入浅出讲解Spring Cloud组件、开发工具、框架等知识点。 2. 使读者全面理解微服务的构建原理。 3. 实例丰富,解释清晰,易于读者真正理解原理,并学以致用。 4. 深入讲解Spring Cloud OAuth2,直击市场需求痛点。
SpringCloud微服务架构实战 电子书
本书以实战化训练为宗旨,用详尽的案例讲述SpringCloud的项目搭建方法和常用技术。
Spring Cloud微服务和分布式系统实践 电子书
以微服务与分布式开发结合的独特视角展现来自一线开发者的实战经验总结。
JavaEE实战精粹:MyBatis+Spring+SpringMVC 电子书
主要讲解Java EE框架MyBatis、Spring和Spring MVC的核心开发技术,帮助读者进行“精要”式的学习和项目实战,同时汲取Java EE的思想,并最终将其灵活运用到实际工作中。