类似推荐
编辑推荐
以“问题-解决方案-讨论”的方式,展示如何利用Quarkus快速提高工作效率和创建可扩展的云原生应用程序。
内容简介
Quarkus建立在我们已经实现的基础技术之上。它使用JPA,JAX-RS,Eclipse Vert.x,Eclipse MicroProfile和CDI等一些熟悉的技术,将这些知识结合到一个适当的,易于部署的,针对OpenJDK您可以高效利用Kubernetes,在应用程序需要扩展时,极大限度地利用机器上的资源。
作者简介
章节目录
版权信息
O'Reilly Media,Inc.介绍
译者序
序言
前言
第1章 Quarkus概述
1.1 开发者友好
1.2 与Kubernetes集成
1.3 内存和第一响应时间
1.4 Quarkus基本工作流程
第2章 搭建脚手架
2.1 用Maven搭建Quarkus项目的脚手架
问题
解决方案
讨论
2.2 用Gradle搭建Quarkus项目的脚手架
问题
解决方案
讨论
2.3 用Quarkus Start Coding网站搭建Quarkus项目的脚手架
问题
解决方案
讨论
另见
2.4 用Visual Studio Code搭建Quarkus项目的脚手架
问题
解决方案
讨论
另见
2.5 使用开发模式实时重载
问题
解决方案
讨论
2.6 提供静态资源
问题
解决方案
第3章 开发RESTful服务
3.1 创建一个简单的REST API端点
问题
解决方案
3.2 提取请求参数
问题
解决方案
讨论
另见
3.3 使用HTTP响应状态码
问题
解决方案
讨论
另见
3.4 绑定HTTP方法
问题
解决方案
另见
3.5 启用跨源资源共享
问题
解决方案
讨论
另见
3.6 使用响应式路由
问题
解决方案
讨论
另见
3.7 拦截HTTP请求
问题
解决方案
讨论
另见
3.8 使用SSL进行安全连接
问题
解决方案
讨论
另见
第4章 配置
4.1 使用自定义属性配置应用程序
问题
解决方案
讨论
4.2 以程序化的方式访问配置属性
问题
解决方案
4.3 在外部覆盖配置值
问题
解决方案
4.4 使用profile进行配置
问题
解决方案
讨论
4.5 修改日志配置
问题
解决方案
4.6 添加应用程序日志
问题
解决方案
讨论
4.7 高级日志配置
问题
解决方案
讨论
另见
4.8 使用自定义profile进行配置
问题
解决方案
讨论
4.9 创建自定义配置源
问题
解决方案
讨论
4.10 创建自定义转换器
问题
解决方案
讨论
4.11 配置值的分组
问题
解决方案
讨论
4.12 验证配置值
问题
解决方案
讨论
第5章 编程模型
5.1 对JSON进行编组和解组
问题
解决方案
讨论
另见
5.2 对XML进行编组和解组
问题
解决方案
讨论
另见
5.3 校验输入值和输出值
问题
解决方案
讨论
另见
5.4 创建自定义校验
问题
解决方案
讨论
另见
5.5 以程序化的方式校验对象
问题
解决方案
讨论
5.6 依赖注入
问题
解决方案
讨论
另见
5.7 创建工厂类
问题
解决方案
讨论
另见
5.8 执行对象生命周期事件
问题
解决方案
讨论
另见
5.9 执行应用程序生命周期事件
问题
解决方案
讨论
另见
5.10 使用命名限定符
问题
解决方案
讨论
另见
5.11 使用自定义限定符
问题
解决方案
讨论
另见
5.12 限定和配置注解
问题
解决方案
另见
5.13 创建拦截器
问题
解决方案
讨论
另见
5.14 行为测试
问题
解决方案
讨论
另见
5.15 单元测试
问题
解决方案
讨论
另见
5.16 创建mock对象
问题
解决方案
讨论
5.17 使用Mockito创建mock对象
问题
解决方案
5.18 用元注解将多个注解组合为一个注解
问题
解决方案
讨论
5.19 在测试代码前后执行代码
问题
解决方案
讨论
另见
5.20 测试原生可执行文件
问题
解决方案
讨论
第6章 打包Quarkus应用程序
6.1 在命令行模式下运行
问题
解决方案
讨论
6.2 创建一个可运行的JAR文件
问题
解决方案
讨论
另见
6.3 über-JAR打包
问题
解决方案
6.4 构建原生可执行文件
问题
解决方案
讨论
6.5 为JAR文件构建一个Docker容器
问题
解决方案
6.6 为原生可执行文件构建一个Docker容器
问题
解决方案
讨论
6.7 构建和容器化原生SSL应用程序
问题
解决方案
讨论
第7章 持久化
7.1 配置数据源
问题
解决方案
讨论
7.2 使用多个数据源
问题
解决方案
讨论
7.3 添加数据源的健康检查
问题
解决方案
讨论
另见
7.4 定义事务的边界
问题
解决方案
讨论
7.5 设置事务的上下文
问题
解决方案
讨论
7.6 程序化事务控制
问题
解决方案
另见
7.7 设置和修改事务超时时间
问题
解决方案
讨论
另见
7.8 使用persistence.xml
问题
解决方案
讨论
7.9 不使用persistence.xml
问题
解决方案
讨论
7.10 使用不同JAR文件的实体
问题
解决方案
讨论
7.11 用Panache持久化数据
问题
解决方案
讨论
7.12 用Panache listAll方法查找所有实体条目
问题
解决方案
7.13 用Panache findById方法查找单个实体
问题
解决方案
7.14 用Panache find和list方法查找实体
问题
解决方案
7.15 用Panache count方法获取实体计数
问题
解决方案
7.16 用Panache page方法对实体列表进行分页
问题
解决方案
讨论
另见
7.17 用Panache stream方法对结果进行流处理
问题
解决方案
另见
7.18 测试Panache实体
问题
解决方案
另见
7.19 使用数据访问对象和repository模式
问题
解决方案
另见
7.20 使用Amazon DynamoDB
问题
解决方案
讨论
7.21 使用MongoDB
问题
解决方案
讨论
7.22 用Panache连接MongoDB
问题
解决方案
讨论
7.23 使用Neo4j
问题
解决方案
另见
7.24 使用Flyway
问题
解决方案
讨论
7.25 以程序化的方式使用Flyway
问题
解决方案
讨论
第8章 容错
8.1 自动重试
问题
解决方案
讨论
另见
8.2 超时
问题
解决方案
另见
8.3 使用舱壁模式进行过载保护
问题
解决方案
讨论
另见
8.4 使用断路器模式避免故障传递
问题
解决方案
讨论
另见
8.5 禁用容错功能
问题
解决方案
第9章 可观察性
9.1 使用自动化健康检查
问题
解决方案
讨论
另见
9.2 创建自定义健康检查
问题
解决方案
讨论
另见
9.3 暴露指标
问题
解决方案
讨论
另见
9.4 创建指标
问题
解决方案
计数器
直方图
讨论
9.5 使用分布式跟踪
问题
解决方案
讨论
另见
9.6 自定义分布式跟踪
问题
解决方案
讨论
第10章 与Kubernetes集成
10.1 构建和推送容器镜像
问题
解决方案
讨论
另见
10.2 生成Kubernetes资源
问题
解决方案
讨论
另见
10.3 生成带有健康检查的Kubernetes资源
问题
解决方案
讨论
另见
10.4 在Kubernetes上部署服务
问题
解决方案
讨论
10.5 在OpenShift上部署服务
问题
解决方案
10.6 自动构建和部署容器镜像
问题
解决方案
讨论
10.7 通过Kubernetes配置应用程序
问题
解决方案
讨论
另见
10.8 使用配置扩展通过Kubernetes配置应用程序
问题
解决方案
10.9 以程序化的方式与Kubernetes集群进行交互
问题
解决方案
讨论
另见
10.10 测试Kubernetes Client交互
问题
解决方案
10.11 实现一个Kubernetes Operator
问题
解决方案
讨论
另见
10.12 用Knative部署和管理无服务器工作负载
问题
解决方案
讨论
另见
第11章 认证与授权
11.1 使用Elytron属性文件配置进行认证和授权
问题
解决方案
讨论
11.2 使用Elytron Security JDBC配置进行认证和授权
问题
解决方案
讨论
11.3 使用MicroProfile JWT进行授权
问题
解决方案
讨论
另见
11.4 使用OpenId Connect进行授权和认证
问题
解决方案
另见
11.5 使用OpenId Connect保护网络资源
问题
解决方案
第12章 应用程序密钥管理
12.1 使用Kubernetes中的secret存储数据
问题
解决方案
讨论
另见
12.2 使用Vault安全地存储配置的secret
问题
解决方案
讨论
另见
12.3 密码即服务
问题
解决方案
讨论
另见
12.4 生成数据库密码并存入secret
问题
解决方案
讨论
另见
12.5 使用Vault Kubernetes Auth进行认证服务
问题
解决方案
讨论
另见
第13章 Quarkus REST客户端
13.1 使用JAX-RS Web客户端
问题
解决方案
讨论
另见
13.2 使用MicroProfile REST客户端
问题
解决方案
讨论
另见
13.3 实现CRUD客户端
问题
解决方案
讨论
13.4 操作header
问题
解决方案
讨论
13.5 使用REST客户端处理多部分消息
问题
解决方案
13.6 使用REST客户端配置SSL
问题
解决方案
讨论
第14章 使用Spring API开发Quarkus应用程序
14.1 使用Spring依赖注入
问题
解决方案
讨论
14.2 使用Spring Web
问题
解决方案
讨论
14.3 使用Spring Data JPA
问题
解决方案
讨论
14.4 使用Spring Security
问题
解决方案
讨论
14.5 使用Spring Boot属性
问题
解决方案
第15章 使用响应式编程模型
15.1 创建异步HTTP端点
问题
解决方案
另见
15.2 异步流式数据传输
问题
解决方案
另见
15.3 使用消息传递解耦组件
问题
解决方案
讨论
另见
15.4 响应Apache Kafka消息
问题
解决方案
讨论
另见
15.5 向Apache Kafka发送消息
问题
解决方案
讨论
另见
15.6 序列化与反序列化
问题
解决方案
讨论
15.7 使用Kafka Streams API
问题
解决方案
讨论
另见
15.8 使用AMQP
问题
解决方案
另见
15.9 使用MQTT
问题
解决方案
讨论
另见
15.10 使用响应式SQL进行查询
问题
解决方案
讨论
另见
15.11 使用响应式SQL客户端进行插入
问题
解决方案
另见
15.12 使用响应式MongoDB客户端
问题
解决方案
另见
15.13 使用响应式Neo4j客户端
问题
解决方案
第16章 Quarkus的附加功能
16.1 使用Qute模板引擎创建模板
问题
解决方案
讨论
另见
16.2 使用Qute渲染HTML
问题
解决方案
讨论
16.3 更改Qute模板的位置
问题
解决方案
16.4 扩展Qute数据类
问题
解决方案
16.5 用OpenAPI描述端点
问题
解决方案
讨论
参考
16.6 自定义OpenAPI规范
问题
解决方案
讨论
参考
16.7 同步发送电子邮件
问题
解决方案
讨论
另见
16.8 以响应式方式发送电子邮件
问题
解决方案
讨论
参考
16.9 创建调度任务
问题
解决方案
讨论
另见
16.10 使用应用程序数据缓存
问题
解决方案
讨论
附录A minikube
附录B Keycloak
附录C Knative
关于作者
关于封面
Quarkus实战:专为Kubernetes而优化的Java解决方案是2021年由机械工业出版社华章公司出版,作者[西班牙] 亚历克斯·索托·布埃诺。
得书感谢您对《Quarkus实战:专为Kubernetes而优化的Java解决方案》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。