作者 |
[西班牙]亚历克斯·索托·布埃诺(Alex Soto Bueno),[美]詹森·波特(Jason Porter) |
丛书名 |
O’Reilly精品图书系列 |
出版社 |
机械工业出版社 |
ISBN |
9787111677635 |
简要 |
简介 |
内容简介书籍计算机书籍 Quarkus 建立在我们已熟知的基础技术之上。它使用 JPA、JAX-RS、Eclipse Vert.x、Eclipse MicroProfile 和 CDI 等一些熟悉的技术,并将这些技术组合到一个紧凑、易于部署、针对 OpenJDK Hotspot 或 GraalVM 的 Kubernetes 优化的容器中。 本书首先介绍Quarkus的基础知识;接着介绍Quarkus的核心部分——使用 CDI 和 Eclipse MicroProfile 构建RESTful应用程序,并展示如何打包应用程序;然后介绍容错、持久性、安全性、与其他服务的交互以及 Quarkus与Kubernetes的其他集成;最后讲述使用Quarkus进行响应式编程,以及框架的一些附加功能,如模板、调度和 OpenAPI。 |
目录 |
序言1 前言3 第1章 Quarkus概述7 1.1 开发者友好7 1.2 与Kubernetes集成8 1.3 内存和第一响应时间8 1.4 Quarkus基本工作流程9 第2章 搭建脚手架10 2.1用Maven搭建Quarkus项目的脚手架10 2.2用Gradle搭建Quarkus项目的脚手架12 2.3 用Quarkus Start Coding网站搭建Quarkus项目的脚手架13 2.4 用Visual Studio Code搭建Quarkus项目的脚手架15 2.5 使用开发模式实时重载19 2.6 提供静态资源20 第3章 开发RESTful服务22 3.1 创建一个简单的REST API端点22 3.2 提取请求参数24 3.3 使用HTTP响应状态码25 3.4 绑定HTTP方法28 3.5 启用跨源资源共享29 3.6 使用响应式路由30 3.7拦截HTTP请求33 3.8 使用SSL进行安全连接35 第4章 配置37 4.1使用自定义属性配置应用程序37 4.2 以程序化的方式访问配置属性41 4.3 在外部覆盖配置值41 4.4 使用profile进行配置43 4.5 修改日志配置44 4.6 添加应用程序日志45 4.7 高级日志配置46 4.8 使用自定义profile进行配置49 4.9 创建自定义配置源51 4.10 创建自定义转换器53 4.11 配置值的分组55 4.12 验证配置值57 第5章 编程模型59 5.1 对JSON进行编组和解组59 5.2 对XML进行编组和解组62 5.3 校验输入值和输出值65 5.4 创建自定义校验69 5.5 以程序化的方式校验对象71 5.6依赖注入73 5.7 创建工厂类75 5.8 执行对象生命周期事件77 5.9 执行应用程序生命周期事件78 5.10 使用命名限定符79 5.11 使用自定义限定符81 5.12 限定和配置注解82 5.13 创建拦截器83 5.14 行为测试85 5.15 单元测试89 5.16 创建mock对象91 5.17使用Mockito创建mock对象92 5.18用元注解将多个注解组合为一个注解94 5.19 在测试代码前后执行代码95 5.20测试本地可执行文件101 第6章 打包Quarkus应用程序104 6.1 在命令行模式下运行104 6.2创建一个可运行的JAR文件106 6.3 über-JAR打包108 6.4 构建原生可执行文件108 6.5 为JAR文件构建一个Docker容器110 6.6 为原生可执行文件构建一个Docker容器111 6.7 构建和容器化原生SSL应用程序112 第7章 持久化115 7.1配置数据源115 7.2 使用多个数据源116 7.3 添加数据源的健康检查117 7.4 定义事务的边界118 7.5 设置事务的上下文119 7.6 程序化事务控制120 7.7 设置和修改事务超时时间121 7.8 使用persistence.xml122 7.9 不使用persistence.xml122 7.10 使用不同JAR文件的实体123 7.11 用Panache持久化数据123 7.12 用Panache listAll方法查找所有实体条目125 7.13 用Panache findById方法查找单个实体125 7.14 用Panache find和list方法查找实体126 7.15 用Panache count方法获取实体计数127 7.16 用Panache page方法对实体列表进行分页127 7.17 用Panache stream方法对结果进行流处理128 7.18 测试Panache实体128 7.19 使用数据访问对象和repository模式129 7.20 使用Amazon DynamoDB130 7.21 使用MongoDB135 7.22 用Panache连接MongoDB139 7.23 使用Neo4j140 7.24 使用Flyway144 7.25 以程序化的方式使用Flyway145 第8章 容错146 8.1 自动重试146 8.2 超时148 8.3 使用舱壁模式进行过载保护149 8.4 使用断路器模式避免故障传递151 8.5 禁用容错功能153 第9章 可观察性155 9.1 使用自动化健康检查155 9.2 创建自定义健康检查157 9.3 暴露指标160 9.4 创建指标162 9.5 使用分布式跟踪167 9.6 自定义分布式跟踪173 第10章 与Kubernetes集成176 10.1 构建和推送容器镜像176 10.2 生成Kubernetes资源179 10.3 生成带有健康检查的Kubernetes资源182 10.4 在Kubernetes上部署服务184 10.5 在OpenShift上部署服务185 10.6 自动构建和部署容器镜像189 10.7 通过Kubernetes配置应用程序190 10.8 使用配置扩展通过Kubernetes配置应用程序192 10.9 以程序化的方式与Kubernetes集群进行交互193 10.10 测试Kubernetes Client交互197 10.11 实现一个Kubernetes Operator198 10.12 用Knative部署和管理无服务器工作负载211 第11章 认证与授权215 11.1 使用Elytron属性文件配置进行认证和授权219 11.2 使用Elytron Security JDBC配置进行认证和授权222 11.3 使用MicroProfile JWT进行授权226 11.4 使用OpenId Connect进行授权和认证232 11.5 使用OpenId Connect保护网络资源236 第12章 应用程序密钥管理237 12.1 使用Kubernetes中的secret存储数据237 12.2使用Vault安全地存储配置的secret240 12.3 密码即服务243 12.4 生成数据库密码并存入secret246 12.5 使用Vault Kubernetes Auth进行认证服务250 第13章 Quarkus REST客户端255 13.1使用JAX-RS Web客户端255 13.2 使用MicroProfile REST客户端258 13.3实现CRUD客户端261 13.4操作header264 13.5 使用REST客户端处理多部分消息266 13.6 使用REST客户端配置SSL267 第14章 使用Spring API开发Quarkus应用程序272 14.1使用Spring依赖注入272 14.2 使用Spring Web275 14.3 使用Spring Data JPA277 14.4使用Spring Security279 14.5 使用Spring Boot属性281 第15章 使用响应式编程模型284 15.1 创建异步HTTP端点284 15.2 异步流式数据传输285 15.3 使用消息传递解耦组件286 15.4 响应Apache Kafka消息288 15.5 向Apache Kafka发送消息291 15.6 序列化与反序列化293 15.7 使用Kafka Streams API294 15.8 使用AMQP300 15.9 使用MQTT301 15.10 使用响应式SQL进行查询302 15.11 使用响应式SQL客户端进行插入304 15.12 使用响应式MongoDB客户端305 15.13 使用响应式Neo4j客户端308 第16章 Quarkus的附加功能310 16.1 使用Qute模板引擎创建模板310 16.2 使用Qute渲染HTML312 16.3 更改Qute模板的位置314 16.4 扩展Qute数据类314 16.5 用OpenAPI描述端点315 16.6 自定义OpenAPI规范318 16.7同步发送电子邮件322 16.8 以响应式方式发送电子邮件325 16.9创建调度任务327 16.10使用应用程序数据缓存329 附录A minikube333 附录B Keycloak334 附录C Knative337 关于作者 关于封面 |