云原生 Spring 实战 中文翻译
序言、前言、关于本书
欢迎
第 1 章 云原生简介
1.1 什么是云原生
1.2 云和云计算模型
1.3 云原生应用的特性
1.4 支持云原生的文化和实践
1.5 上云是最好的选择吗?
1.6 云原生拓扑
1.7 云原生应用架构
总结
第 2 章 云原生模式和技术
2.1 云原生开发原则
2.2 使用 Spring 构建云原生应用
2.3 使用 Docker 容器化应用
2.4 使用 Kubernetes 管理容器
2.5 极地书店:云原生应用
总结
第 3 章 进行云原生应用开发
3.1 创建云原生项目
3.2 使用内嵌服务器
3.3 使用 Spring MVC 构建 RESTful 应用
3.4 使用 Spring 测试 RESTful 应用
3.5 使用 GitHub Actions 进行持续集成
总结
第 4 章 配置管理外部化
4.1 Spring 中的配置
4.2 外部化配置
4.3 使用 Config Server 进行集中化配置管理
4.4 通过 Config Client 使用配置服务
总结
第 5 章 云中的数据持久化和管理
5.1 云原生系统的数据库
5.2 使用 Spring Data JDBC 进行数据持久化
5.3 使用 Spring 和 Testcontainers 测试数据持久化
5.4 使用 Flyway 管理生产环境中的数据库
总结
第 6 章 Spring Boot 容器化
6.1 使用 Docker 处理容器镜像
6.2 将 Spring Boot 应用打包为容器镜像
6.3 使用 Docker Compose 管理容器
6.4 部署流水线:打包和发布
总结
第 7 章 Kubernetes 基础
7.1 从 Docker 过渡到 Kubernetes
7.1.1 使用本地 Kubernetes 集群
7.1.2 在本地集群中管理数据服务
7.2 Spring Boot 的 Kubernetes Deployment
7.2.1 从容器到 Pod
7.2.2 使用 Deployment 控制 Pod
7.2.3 为 Spring Boot 应用程序创建 Deployment
7.3 服务发现和负载均衡
7.3.1 理解服务发现和负载均衡
7.3.2 客户端服务发现和负载均衡
7.3.3 服务器端服务发现和负载均衡
7.3.4 使用 Kubernetes Service 暴露 Spring Boot 应用程序
7.4 可扩展性和可弃置性
7.4.1 确保可弃置性:快速启动
7.4.2 确保可弃置性:优雅关闭
7.4.3 扩展 Spring Boot 应用程序
7.5 使用 Tilt 进行本地 Kubernetes 开发
7.5.1 使用 Tilt 的内部开发循环
7.5.2 使用 Octant 可视化 Kubernetes 工作负载
7.6 部署流水线:验证 Kubernetes 清单
7.6.1 在提交阶段验证 Kubernetes 清单
7.6.2 使用 GitHub Actions 自动化 Kubernetes 清单验证
总结
第 8 章 响应式 Spring
8.1 异步和非阻塞架构
8.1.1 从每请求一个线程到事件循环
8.1.2 Project Reactor:使用 Mono 和 Flux 的响应式流
8.1.3 理解 Spring 响应式技术栈
8.2 使用 Spring WebFlux 构建响应式服务器
8.2.1 使用 Spring Boot 引导响应式应用
8.2.2 使用 Spring Data R2DBC 响应式持久化数据
8.2.3 使用响应式流实现业务逻辑
8.2.4 使用 Spring WebFlux 暴露 REST API
8.3 使用 Spring WebClient 构建响应式客户端
8.3.1 Spring 中的服务间通信
8.3.2 理解如何交换数据
8.3.3 使用 WebClient 实现 REST 客户端
8.4 使用响应式 Spring 构建弹性应用
8.4.1 超时
8.4.2 重试
8.4.3 回退
8.5 测试响应式应用
8.5.1 使用 Mock Web Server 测试 REST 客户端
8.5.2 使用 DataR2dbcTest 和 Testcontainers 测试数据持久化
总结
第 9 章 API 网关和断路器
9.1 边缘服务器和 Spring Cloud Gateway
9.1.1 使用 Spring Cloud Gateway 引导边缘服务器
9.1.2 定义路由和谓词
9.1.3 通过过滤器处理请求和响应
9.2 使用 Circuit Breaker 实现容错
9.2.1 使用 Spring Cloud Circuit Breaker 引入断路器
9.2.2 使用 Resilience4J 配置断路器
9.2.3 使用 Spring WebFlux 定义回退 REST API
9.2.4 组合断路器、重试和时间限制器
9.3 请求限流
9.3.1 以容器方式运行 Redis
9.3.2 将 Spring 与 Redis 集成
9.3.3 配置请求限流器
9.4 分布式会话管理
9.4.1 使用 Spring Session Data Redis 处理会话
9.5 使用 Kubernetes Ingress 管理外部访问
9.5.1 理解 Ingress API 和 Ingress Controller
9.5.2 使用 Ingress 对象
总结
第 10 章 事件驱动应用和函数
10.1 事件驱动架构
10.2 使用 RabbitMQ 的消息代理
10.3 Spring Cloud Function
10.4 Spring Cloud Stream
10.5 Spring Cloud Stream 生产者和消费者
总结
第 11 章 安全:认证和 SPA
11.1 理解 Spring Security 基础
11.2 使用 Keycloak 管理用户账户
11.3 使用 OpenID Connect、JWT 和 Keycloak 进行认证
11.4 使用 Spring Security 和 OpenID Connect 认证用户
11.5 将 Spring Security 与 SPA 集成
11.6 测试 Spring Security 和 OpenID Connect
总结
第 12 章 安全:授权和审计
12.1 使用 Spring Cloud Gateway 和 OAuth2 实现授权和角色
12.2 使用 Spring Security 和 OAuth2 保护 API(命令式)
12.3 使用 Spring Security 和 OAuth2 保护 API(响应式)
12.4 使用 Spring Security 和 Spring Data 保护和审计数据
总结
第 13 章 可观测性和监控
13.1 使用 Spring Boot、Loki 和 Fluent Bit 管理日志
13.2 使用 Spring Boot Actuator 和 Kubernetes 实现健康探针
13.3 使用 Spring Boot Actuator、Prometheus 和 Grafana 进行指标监控
13.4 使用 OpenTelemetry 和 Tempo 实现分布式追踪
13.5 使用 Spring Boot Actuator 进行应用管理和监控
总结
第 14 章 配置和密钥管理
14.1 在 Kubernetes 上配置应用
14.2 在 Kubernetes 中使用 ConfigMaps 和 Secrets
14.3 使用 Kustomize 管理配置
总结
第 15 章 持续交付和 GitOps
15.1 部署流水线:验收阶段
15.2 为生产环境配置 Spring Boot
15.3 部署流水线:生产阶段
15.4 使用 GitOps 实现持续部署
总结
第 16 章 Serverless、GraalVM 和 Knative
16.1 使用 Spring Native 与 GraalVM 构建原生镜像
16.2 使用 Spring Cloud Function 构建 Serverless 应用
16.3 使用 Knative 部署 Serverless 应用
总结
附录 A 设置开发环境
附录 B 在 DigitalOcean 上生产环境的 Kubernetes
本书使用 HonKit 发布
1.7 云原生应用架构
1.7 云原生应用程序的架构
云原生应用程序通常采用分布式架构,由多个独立的服务组成。本节将介绍从传统多层架构到微服务架构的演进,以及云原生应用程序的架构模式。
图 1.12 云原生架构元素
results matching "
"
No results matching "
"