新書推薦:
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:HK$
66.1
《
控制权视角下的家族企业管理与传承
》
售價:HK$
87.4
《
冯友兰和青年谈心系列
》
售價:HK$
167.3
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:HK$
77.3
《
认知行为疗法:心理咨询的顶层设计
》
售價:HK$
99.7
《
FANUC工业机器人装调与维修
》
售價:HK$
99.7
《
吕著中国通史
》
售價:HK$
62.7
《
爱琴海的光芒 : 千年古希腊文明
》
售價:HK$
199.4
|
編輯推薦: |
Quarkus针对Kubernetes进行了优化,旨在帮助你创建云优先、容器原生和无服务器能力的Java应用。在本书中,两位作者提供了在微服务开发和生产中安装Quarkus、与Quarkus交互和使用Quarkus的详细解决方案。本书向熟悉Java企业应用开发的中高级开发人员展示了如何快速上手Quarkus。你将了解如何在更广泛的Java生态系统中使用Quarkus,并掌握如何使该框架满足自己的特殊需求。每一章都以问题-解决方案-讨论的格式编写。你将学会: 通过在开发模式下启用实时重载来缩短开发周期。 连接到 Kafka 并与之通信。 使用响应式编程模型进行开发并轻松地为服务添加容错功能。 将应用程序构建为一个 Kubernetes 就绪的容器。 使用 OpenAPI 轻松地开发和测试本地 Quarkus 应用程序。
|
內容簡介: |
Quarkus 建立在我们已熟知的基础技术之上。它使用 JPA、JAX-RS、Eclipse Vert.x、Eclipse MicroProfile 和 CDI 等一些熟悉的技术,将这些知识结合到一个紧凑的、易于部署的、针对 OpenJDK Hotspot 或 GraalVM 的 Kubernetes 优化的容器中。你可以高效利用 Kubernetes 集群,在应用程序需要扩展时,极大限度地利用机器上的资源。
|
關於作者: |
◆ 作者简介 ◆
Alex Soto Bueno 是Red Hat的开发者体验总监,自 2017 年以来一直是 Java Champion。
Jason Porter 是一名首席软件工程师,在Red Hat从事中间件工程服务、Arquillian、Quarkus 和其他开发者体验项目。
◆ 译者简介 ◆
张晓宇 腾讯云专家工程师,目前从事腾讯专有云场景下的云原生研发工作,曾就职于阿里云和中兴通讯。同时也是Kubernetes社区和云原生社区成员,多场KubeCon的演讲嘉宾。
刘岩 容器开发工程师,云原生社区成员,目前从事云原生应用平台建设相关的工作,热衷于云原生技术。
宋净超 Tetrate 布道师,云原生社区创始人,CNCF Ambassador,多本云原生相关图书作译者。
|
目錄:
|
序言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 RE
|
內容試閱:
|
与传统的Java框架不同,Quarkus建立在我们已熟知的技术之上。它使用JPA、JAX-RS、Eclipse Vert.x、Eclipse MicroProfile和CDI等一些熟悉的技术,并将这些技术组合到一个紧凑、易于部署、针对OpenJDK Hotspot或GraalVM的Kubernetes优化的容器中。你可以高效地使用Kubernetes集群,在应用程序需要扩展时,最大限度地利用机器上的资源。无论你处于Kubernetes的什么阶段,都会发现它的用处,本书将为你提供掌握Quarkus所需的工具和资源。
本书目标读者
显然,我们希望每个人都能阅读本书!不过,我们的目标读者需要:
熟悉Java和应用程序开发。
了解传统的软件开发。
经常将服务部署到机器集群或云中。
写作原因
Quarkus是一个相对较新的框架,又处于新的领域(原生Java和GraalVM)。我们想深入研究一些互联网上找不到的例子和实践。本书中没有需要理解的大型应用,所有的例子都是自包含的,可以随时使用。我们希望本书能够作为Quarkus开发的参考!
阅读指南
本书的章节组织相对松散,基本顺序如下:
第1章和第2章介绍Quarkus和项目的建立。
第3~6章介绍Quarkus的核心部分使用CDI和Eclipse MicroProfile构建RESTful应用程序。这些章节还将展示如何打包应用程序。
第7~14章将更加深入地介绍一些重要的概念,如容错、持久性、安全性,以及与其他服务的交互。你还将了解Quarkus与Kubernetes的集成。
第15章和第16章讲述使用Quarkus进行响应式编程(reactive programming),以及框架的一些附加功能,如模板、调度和OpenAPI。
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、 数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。
等宽斜体(Constant width italic)
表示应由用户提供的值或由上下文确定的值替换的文本。
该图示表示提示或建议。
该图示表示一般性说明。
该图示表示警告或注意。
该图示表示需要记住的要点。
示例代码
可以从https:oreil.lyquarkus-cookbook-code下载补充材料(示例代码、练习等)。
这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系OReilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布OReilly的示例代码则需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处的形式包含书名、作者、出版社和ISBN,例如:
Quarkus Cookbook,作者Alex Soto Bueno和 Jason Porter,由OReilly出版,书号978-1-492-06265-3
如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过permissions@oreilly.com联系我们。
OReilly在线学习平台(OReilly Online Learning)
40多年来,OReilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。OReilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及OReilly和200多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http:oreilly.com。
如何联系我们
对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
OReilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至bookquestions@oreilly.com。
本书配套网站https:oreil.lyquarkus-cookbook上列出了勘误表、示例以及其他信息。
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http:www.oreilly.com。
我们在Facebook上的地址:http:facebook.comoreilly
我们在Twitter上的地址:http:twitter.comoreillymedia
我们在YouTube上的地址:http:www.youtube.comoreillymedia
致谢
Jason Porter:在疫情隔离期间做什么?当然是写书了!感谢所有奋战在医疗一线的勇士。我要感谢Quarkus和GraalVM背后的团队提供了一个神奇的工具和有趣的开发体验。我从事软件开发已经有20多年了,Quarkus给我带来了像刚开始学习软件开发时的乐趣。非常感谢Georgios Andrianakis和Daniel Hinojosa对本书的技术审阅,使得本书更易理解、更加实用,希望学习Quarkus的人能够喜欢。还要感谢Red Hat公司让我有机会写作本书。感谢Alex再次邀请我一起写书。最后,感谢我的5个孩子(Kaili、Emily、Zackary、Nicolas和Rebecca)和妻子Tessie。
Alex Soto Bueno:本书是在COVID-19流行期间完成的,所以首先我要感谢所有的医护人员。还要感谢Red Hat开发者团队,特别是Burr Sutter,让我有机会写作本书。能和Jason一起写书是我的荣幸。最后,感谢我的父母、妻子Jessica,还有女儿Ada和Alexandra。
|
|