-
内容大纲
本书以一个完整的实战应用的开发过程作为主线,介绍如何以Quarkus为框架来开发微服务架构的云原生应用。书中介绍了微服务和云原生开发的各个方面,包括微服务的开发和测试以及在Kubemetes上的部署运行,还包括应用的可观察性、安全和服务调用的健壮性等非功能性需求。通过本书的介绍,读者可以了解一个真实的云原生应用的开发过程,并学会如何从头开始开发个人的应用程序。
本书适合从事Quarkus云原生微服务开发以及对云原生微服务感兴趣的Java开发人员阅读。 -
作者介绍
成富 北京大学,硕士,全栈工程师。专注于基于云原生微服务架构的产品设计和开发,有14年从业经验.参与过很多企业级应用的设计与开发。出版过《深入理解Java 7》和《Exploring Java 9》等图书,在拉勾网开设了与云原生微服务相关的专栏。 -
目录
前言
第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
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...