第1章 云原生微服务概述
1.1 了解微服务架构
1.1.1 了解单体应用存在的问题
1.1.2 微服务架构概述
1.1.3 云原生与微服务架构
1.1.4 云原生的发展趋势
1.2 了解容器化技术
1.3 了解容器编排技术
1.3.1 使用Docker进行简单的编排
1.3.2 使用Docker Compose进行编排
1.3.3 Kubernetes介绍
1.4 Quarkus介绍
第2章 Quarkus开发入门
2.1 创建新的项目
2.2 通用的应用开发流程
2.2.1 使用开发模式
2.2.2 调试应用
2.2.3 实用的插件命令
2.3 源代码组织
2.4 实战应用介绍
2.5 微服务的设计
第3章 Quarkus的依赖注入
3.1 CDI中的Bean 及其作用域
3.2 使用依赖注入
3.2.1 了解不同的依赖注入方式
3.2.2 注入@Dependent作用域的Bean
3.2.3 获取注入点的元数据
3.3 Bean的使用
3.3.1 使用修饰符区分相同类型的Bean
3.3.2 使用生产方法和字段创建Bean
3.3.3 使用默认Bean和替代Bean
3.3.4 在代码中选择Bean实例
3.4 使用拦截器实现横切的业务逻辑
3.5 使用事件进行消息传递
3.5.1 同步的事件发布和处理
3.5.2 异步的事件发布和处理
3.5.3 使用修饰符来区分事件
3.5.4 获取事件的元数据
3.6 Quarkus的CDI实现
3.6.1 共享代码中Bean的发现
3.6.2 Bean的特殊处理
3.6.3 客户端代理的使用
第4章 Quarkus微服务的配置
4.1 使用配置源
4.1.1 Quarkus提供的默认配置源
4.1.2 使用YAML格式的配置文件
4.1.3 创建自定义的配置源
4.1.4 生成Quarkus框架的配置文件
4.1.5 使用外部配置源
4.2 获取配置项的值
4.3 使用类型安全的配置类
4.3.1 绑定配置类中的字段
4.3.2 绑定配置接口中的方法
4.3.3 验证配置项的值
4.4 通过配置Profile区分不同的环境
4.5 配置项的类型转换
4.6 Kubernetes上的Quarkus应用配置
第5章 同步调用方式——餐馆微服务
5.1 访问关系型数据库
5.1.1 创建数据源
5.1.2 使用Flyway迁移数据库模式
5.1.3 使用JPA和Hibernate访问数据库
5.1.4 使用Panache简化数据库访问
5.1.5 服务层实现
5.1.6 事务管理
5.1.7 分页和排序
5.2 发布REST API
5.2.1 使用JAX-RS注解标注REST控制器
5.2.2 使用JSON格式进行序列化
5.3 微服务的单元测试
5.3.1 数据访问层测试
5.3.2 服务层测试
5.3.3 REST API测试
5.4 生成OpenAPI文档
5.5 消费其他微服务的REST API
5.6 使用Elasticsearch检索菜单
5.7 使用Redis执行地理位置查询
5.8 使用Quarkus测试资源
第6章 异步消息传递——订单微服务实现
6.1 发布gRPC API
6.1.1 使用protobuf描述消息格式
6.1.2 创建gPRC的接口定义
6.1.3 实现gRPC API
6.1.4 消费其他微服务的gRPC API
6.2 异步消息传递
6.2.1 异步消息传递概述
6.2.2 事件、命令和消息的含义
6.2.3 数据的最终一致性
6.2.4 使用Apache Kafka传递消息
6.2.5 事务性消息
6.3 使用WebSocket
第7章 反应式微服务——送货微服务实现
7.1 反应式编程概述
7.2 使用Mutiny进行反应式编程
7.2.1 Mutiny中的事件
7.2.2 创建Uni和Multi对象
7.2.3 处理Multi和Uni中的元素
7.2.4 订阅反应式流
7.3 反应式数据访问
7.4 开发反应式REST API
7.4.1 使用RESTEasy
7.4.2 创建反应式路由
7.4.3 上传文件
7.5 开发反应式gRPC
7.6 使用反应式消息
7.6.1 SmallRye反应式消息库的基本用法
7.6.2 使用Kafka作为消息代理
7.6.3 送货微服务的实现
7.6.4 反应式消息的单元测试
第8章 Quarkus应用部署
8.1 应用打包方式
8.1.1 使用JVM模式
8.1.2 创建原生可执行文件
8.2 创建容器镜像
8.3 部署到Kubernetes
8.3.1 发布Docker镜像
8.3.2 容器镜像的标签
8.3.3 创建Kubernetes部署资源
8.3.4 完整的应用部署
8.3.5 持续集成与部署
第9章 应用的可观察性
9.1 健康检查
9.1.1 MicroProfile Health规范
9.1.2 自定义的健康检查过程
9.1.3 SmallRye Health的扩展功能
9.2 分布式追踪
9.2.1 分布式追踪的基本概念
9.2.2 追踪JAX-RS和gRPC
9.2.3 使用OpenTracing API
9.3 性能指标数据
9.3.1 使用Micrometer
9.3.2 使用Prometheus
9.4 日志管理与异常处理
9.4.1 记录日志和相关配置
9.4.2 使用MDC传递数据
9.4.3 使用Sentry记录异常
第10章 应用安全及弹性服务
10.1 用户管理
10.2 身份认证
10.2.1 Quarkus的认证机制
10.2.2 基于JWT的令牌认证
10.2.3 使用MicroProfile JWT
10.2.4 使用Keycloak
10.3 用户授权管理
10.4 弹性服务
10.4.1 调用超时与重试
10.4.2 回退值
10.4.3 熔断器和隔板
10.5 使用服务网格
第11章 框架和服务的集成
11.1 创建计划任务
11.1.1 计划任务API
11.1.2 使用Quartz
11.2 实用功能与框架集成
11.2.1 创建命令行程序
11.2.2 使用字符串模板
11.2.3 发送邮件
11.2.4 Apache Camel集成
11.3 使用GraphQL组合API