构建新一代的K8s原生Java微服务+Quarkus实战

这篇具有很好参考价值的文章主要介绍了构建新一代的K8s原生Java微服务+Quarkus实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

送书第一期 《用户画像:平台构建与业务实践》
送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》
送书第二期 《Spring Cloud Alibaba核心技术与实战案例》
送书第三期 《深入浅出Java虚拟机》
送书第四期 《AI时代项目经理成长之道》
送书第五期 《Kubernetes原生微服务开发》



★前言

Kubernetes原生微服务开发

过去几年来,Quarkus 作为一种微服务开发框架大为流行,而Eclipse MicroProfile 也持续演进成一组Java 微服务开发API。本书详细介绍如何基于MicroProfile 和Spring API新建、开发和调试Quarkus 微服务,并部署到Kubernetes 上。 除了微服务的开发和部署,本书还涵盖Kubernetes 微服务的其他方方面面,比如应用健康管理、监控、可观测性、安全性以及API 可视化。

构建新一代的K8s原生Java微服务+Quarkus实战,送书活动,Java微服务,kubernetes,java,微服务,k8s,Quarkus,云原生,原力计划


☆一、推荐

构建新一代的Kubernetes原生Java微服务+Quarkus实战

微服务开发并不容易。其中涉及大量的概念与复杂的技术,令很多开发者忘而却步。Quarkus是一个全能的基础框架,除了基础的Web应用开发能力外,还包括服务发现与调用、熔断限流和观测等微服务治理体系。Quarkus 在提供强大性的同时,力求通过降低对实际业务开发的侵入性来减轻开发者的负担。从两个方面就可见一斑:①为让现有Spring框架的开发者更容易上手,Quarkus 在常见性上提供与Spring框架的直接兼容;②如果要用Quarkus生成原生二进制可执行程序,只需要添加相应配置和编译参数即可,无论是开发过程、编程语言语法,还是业务代码,都不需要修改。我们发现,基于Quarkus开发云原生微服务变得轻松又愉悦。

国内的Java开发和微服务技术社区都相当活跃。近年来,Quarkus 逐步被更多团队应用到实际项目中,人们热切渴望Quarkus 方面的实战材料,供新人学习,供有经验者参考。本书是一本由红帽专家亲作的Quarkus实战型入门书籍。无论是从未使用过其他开发框架的人,还是已有其他框架使用经验的开发者,书中都提供了相应内容,让开发者迅速建立使用Quarkus开发微服务所需的知识体系。Quarkus 并非独立存在,而与微服务和容器技术相辅相成。读者若要更好地理解本书的内容,更顺利地完成书中的实验,有必要参考其他有关微服务的资料,并了解如何使用容器和Kubernetes之类的工具。

☆二、内容简介

《Kubernetes原生微服务开发》 内容简介

运用新的“Kubernetes优先”工具高效地开发微服务!Quarkus与容器和Kubernetes的结合浑然天成,从根本上简化了微服务的开发与部署。Quarkus这个功能强大的框架从一开始就是基于Java构建的,因而能与现有的JVM代码库无缝集成,极大地缩短了启动时间,减少了内存消耗量。
在《Kubernetes原生微服务开发》的指导下,你将使用容器、Kubernetes和Quarkus框架开发微服务。将首先开发基于Quarkus和MicroProfile API的可部署应用;此后,将了解如何借助Quarkus天然的启动速度和运行速度优势,通过运用GraalVM原生编译,来获得性能跃升。在学习过程中,你将体验到如何在Quarkus应用中集成Spring开发,并吸收作者关于微服务监控和管理的真知灼见。 主要内容 ? 在Kubernetes上部署企业级Java应用 ? 运用Quarkus运行时框架开发应用 ? 运用GraalVM原生编译获得**性能 ? 充分运用MicroProfile规范

2.1、通过本书能学到什么?

2.1.1、第1章

首先向读者介绍微服务和微服务架构的概念,以及我们为什么需要微服务相关的规范;接着介绍Eclipse MicroProfile、Quarkus 和Kubernetes。后会提到一些Kubernetes 原生微服务的典型性。

2.1.2、第2章

从创建新的Quarkus 项目开始,逐渐深入探讨Quarkus。该章介绍几个重要的话题,例如实时编码、编写测试、原生可执行程序,以及将Quarkus 应用打包和部署到Kubernetes 的过程。

2.1.3、第3章

首先介绍Quarkus 中基于Eclipse MicroProfile 的配置功能,包括如何设置并获取配置值;接着介绍如何运用ConfigSource 在Quarkus 中定义新的配置源。

2.1.4、第4章

介绍运用Panache 进行数据库交互。该章首先解释Quarkus 数据源的工作原理,然后讨论使用Panache 进行数据库访问的三种模式:JPA、活动记录和数据仓储;后,解释如何在Kubernetes 中部署PostgreSQL 数据库。

2.1.5、第5章

介绍如何在Quarkus 中基于MicroProfile 消费外部服务:使用REST 客户端并为外部服务定义类型安全的表示形式。该章介绍REST 客户端的两种用法:CDI 和编程式API,以及如何模拟REST 客户端并开展测试。后,该章讨论如何向客户端请求添加标头,介绍用于处理请求的额外过滤器与提供程序。
VI Kubernetes 原生微服务开发

2.1.6、第6章

介绍应用健康管理的概念,以及MicroProfile Health 规范与Kubernetes Pod 生命周期的集成方式。该章介绍如何将相似的检查组合为自定义分组,并从UI 便利地查看检查结果。

2.1.7、第7章

介绍MicroProfile Fault Tolerance 规范包含的所有韧性策略,包括舱壁、降级、重试和熔断器。该章还讨论如何通过配置属性覆写这些策略的设置。

2.1.8、第8章

介绍反应式流,解释反应式流的概念,以及它们在发布者、订阅者和处理者中的处理过程。该章接着解释如何在Quarkus 中利用Reactive Messaging 创建响应式流,并利用生成器将命令式代码与响应式代码桥接起来。后讨论在Kubernetes 上部署Apache Kafka,以及一个反应式系统的过程,其中的反应式系统由数个微服务构成,微服务之间以Apache Kafka 作为相互联结的骨架。

2.1.9、第9章

讨论现有的Spring 开发者如何以极小的变动就可以把他们的应用转换为Quarkus 应用。接着讨论如何使用Spring 配置服务器作为Quarkus 的配置源。后,该章详细介绍Spring 与Quarkus 之间,在Web 和数据访问方面不必修改代码就已具备的兼容性。

2.1.10、第10章

解释指标在应用监控领域(尤其是微服务架构体系)中的重要性。该章介绍如何运用 Prometheus 和Grafana 对指标进行可视化,包括MicroProfile Metrics 和Micrometer格式。

2.1.11、第11章

介绍运用 MicroProfile 和OpenTracing 跟踪微服务,解释如何在Kubernetes上部署Jaeger,从微服务向Jaeger 发送跟踪信息,并通过UI 查看这些跟踪信息。该章讨论如何自定义分段名称,以及通过注入跟踪器创建自定义分段。后,该章还介绍如何跟踪数据库调用以及与Apache Kafka 之间的消息通信。

2.1.12、第12章

验证使用 MicroProfile OpenAPI 对API 进行可视化,并使用Swagger UI 查看所生成的 API 文档。接着讨论如何定制OpenAPI 文档,在REST 端点中体现应用信息、结构信息以及定的操作详情。后讨论设计先行模式,介绍存量OpenAPI 文档的使用方法。

2.1.13、第13章

解释微服务的认证和授权,首先讨论基于文件的认证,以及OpenID Connect和KeyCloak 的搭配使用。接着讨论对定资源进行保护以及测试授权流程的方法。然后解释Json Web 令牌(JWT),以及从令牌各个部分获取的API。后讨论如何利用JWT 为微服务添加安全保护,并在微服务之间传递令牌。


☆三、作者简介

Kubernetes原生微服务开发 作者简介

John Clingan 是红帽高级产品主管,研究方向是企业级Java标准和Quarkus。 Ken Finnigan 是Workday高级软件工程师主管,此前在红帽的Quarkus团队工作。

☆四、目录

第Ⅰ部分 基础知识
第1 章 Quarkus、MicroProfile 和
Kubernetes 简介. 3
1.1 什么是微服务3
1.1.1 微服务的兴起.6
1.1.2 微服务架构6
1.1.3 微服务规范的需求7
1.2 MicroProfile 规范.7
1.2.1 MicroProfile 的发展历程.8
1.2.2 MicroProfile 社区核心原则9
1.3 Quarkus 10
1.3.1 快乐开发 10
1.3.2 对MicroProfile 的支持 11
1.3.3 运行时效率 11
1.4 Kubernetes 12
1.5 Kubernetes 原生微服务 15
1.6 本章小结 16
第2 章 初次开发Quarkus 应用19
2.1 创建项目 19
2.2 使用实时编码进行开发 24
2.3 编写测试 32
2.4 生成原生可执行程序 37
2.5 在Kubernetes 上运行应用. 40
2.5.1 生成 Kubernetes YAML . 40
2.5.2 应用打包 43
2.5.3 应用部署与运行. 43
2.6 本章小结 45
第Ⅱ部分 微服务开发
第3 章 微服务配置.49
3.1 MicroProfile Config架构概述 50
3.2 访问配置 50
3.3 银行服务 51
3.3.1 创建银行服务. 51
3.3.2 配置银行服务的名称字段. 53
3.4 配置源. 54
3.5 配置mobileBanking 字段 57
3.6 使用@ConfigProperties 对配置属性分组. 57
3.7 Quarkus 有的配置功能 59
3.7.1 Quarkus 配置编组. 59
3.7.2 配置属性表达式 60
3.7.3 Quarkus ConfigMapping 功能 61
3.7.4 运行期和构建期配置属性. 62
3.8 Kubernetes 上的配置 63
3.8.1 Kubernetes 上的常见配置源. 63
3.8.2 在Quarkus 应用中使用ConfigMap 65
3.8.3 编辑ConfigMap. 66
3.8.4 Kubernetes Secret 67
3.9 本章小结 69
第4 章 使用Panache 访问数据71
4.1 数据源. 71
4.2 JPA 73
4.3 简化数据库开发 78
X Kubernetes 原生微服务开发
4.3.1 活动记录 78
4.3.2 数据仓储 81
4.3.3 数据访问模式选型 83
4.4 部署到Kubernetes 84
4.4.1 部署PostgreSQL 数据库 84
4.4.2 打包与部署 85
4.5 本章小结 86
第5 章 微服务客户端87
5.1 MicroProfile REST Client规范 88
5.2 定义服务接口 89
5.2.1 CDI REST 客户端 90
5.2.2 以编程方式使用REST客户端 95
5.2.3 选用CDI 还是编程式API. 96
5.2.4 异步响应类型. 96
5.3 定制REST 客户端. 98
5.3.1 客户端请求头. 98
5.3.2 声明提供程序101
5.4 本章小结.106
第6 章 应用的健康管理.107
6.1 开发者在应用健康管理领域日益重要的地位107
6.2 MicroProfile Health 规范108
6.2.1 存活状态与就绪状态.109
6.2.2 确定存活状态与就绪状态109
6.3 开始学习MicroProfile Health.110
6.3.1 账户服务中的MicroProfile
Health 存活状态.112
6.3.2 为账户服务创建存活健康检查113
6.3.3 账户服务的MicroProfile Health
就绪状态.114
6.3.4 禁用第三方就绪健康检查115
6.3.5 创建新的就绪健康检查115
6.3.6 Quarkus 健康分组118
6.3.7 使用Quarkus 健康状态界面 119
6.4 Kubernetes 存活和就绪探针.120
6.4.1 定制健康检查属性.121
6.4.2 部署到Kubernetes122
6.4.3 测试Kubernetes 中的就绪健康检查124
6.5 本章小结126
第7 章 应用韧性策略 127
7.1 韧性策略简介127
7.2 用@Asynchronous 启用单独的线程执行方法128
7.3 用舱壁模式限制并发128
7.4 在交易服务中使用舱壁.130
7.5 以降级处理的方式处理异常.131
7.6 为调用指定超时.132
7.7 用@Retry 从临时故障中恢复.135
7.8 用熔断器避免持续故障.136
7.8.1 MicroProfile Fault Tolerance规范中的@CircuitBreaker 136
7.8.2 熔断器的工作原理.137
7.8.3 更新交易服务,运用@CircuitBreaker138
7.8.4 测试熔断器140
7.9 用配置属性覆盖注解参数142
7.10 部署到Kubernetes.144
7.11 本章小结.145
第8 章 命令式世界的反应式编程 147
8.1 反应式编程的示例147
8.2 反应式流149
8.2.1 发布者、订阅者和处理者149
8.2.2 回压的重要性150
8.3 Quarkus 中的反应式消息.152
8.3.1 借用生成器结合使用命令式与反应式编程152
8.3.2 关于阻塞.155
8.3.3 以内存模式测试157
8.4 原理分析.160
8.4.1 MicroProfile 反应式消息规范160
8.4.2 消息内容和元数据.161
8.4.3 消息流中的消息164
8.5 部署到Kubernetes164
8.5.1 Minikube 中的Apache Kafka 165
8.5.2 汇总所有步骤167
8.6 本章小结.169
第9 章 在Quarkus 中开发Spring微服务171
9.1 Quarkus 与Spring API兼容性简介171
9.2 Spring 依赖注入和配置的兼容性172
9.2.1 搭建Spring Cloud 配置服务器.173
9.2.2 将Spring 配置服务器用作配置源.174
9.2.3 将银行服务转换为使用Spring Configuration API175
9.3 Quarkus 与Spring Web API的兼容性176
9.4 Quarkus 与Spring Data JPA的兼容性179
9.5 部署到Kubernetes183
9.6 Spring API 兼容性在Quarkus中的实现原理184
9.7 常见的Quarkus/Spring 兼容性相关的问题184
9.8 对比Spring Boot 与Quarkus的启动过程185
9.9 本章小结.186
第Ⅲ部分 可观测性、API 定义和微服务安全
第10 章 记录指标 189
10.1 指标在微服务架构中的角色189
10.2 了解MicroProfile Metrics规范.190
10.2.1 利用Prometheus 和Grafana绘制指标图线.191
10.2.2 MicroProfile Metrics 规范197
10.2.3 为账户服务添加埋点201
10.2.4 为交易服务添加埋点202
10.2.5 创建业务指标.209
10.2.6 MicroProfile Metrics 与MicroProfile Fault Tolerance、JAX-RS 的集成. 211
10.2.7 Micrometer 指标213
10.2.8 模拟繁忙的生产系统215
10.3 本章小结.216
第11 章 微服务跟踪 217
11.1 跟踪的工作原理.218
11.2 Jaeger219
11.2.1 跟踪采样219
11.2.2 配置 Minikube 环境220
11.2.3 安装Jaeger 220
11.2.4 使用Jaeger 跟踪微服务.222
11.3 跟踪的规范226
11.3.1 OpenTracing.226
11.3.2 MicroProfile OpenTracing 227
11.3.3 OpenTelemetry227
11.4 在应用中定制跟踪228
11.4.1 使用@Traced228
11.4.2 注入跟踪器.228
11.4.3 跟踪数据库调用230
11.4.4 跟踪Kafka 消息232
11.5 本章小结.238
XII Kubernetes 原生微服务开发
第12 章 API 可视化239
12.1 在Swagger UI 中查看OpenAPI 文档240
12.1.1 启用OpenAPI.240
12.1.2 Swagger UI 242
12.2 MicroProfile OpenAPI244
12.2.1 应用信息244
12.2.2 定制输出内容的结构246
12.2.3 定义操作247
12.2.4 操作的响应248
12.2.5 为操作添加标签251
12.2.6 过滤 OpenAPI 的内容252
12.3 设计先行开发253
12.3.1 从文件加载OpenAPI253
12.3.2 混用文件与注解254
12.4 代码先行还是OpenAPI先行255
12.5 本章小结.255
第13 章 微服务安全257
13.1 认证和授权简介257
13.2 使用基于文件的认证与授权259
13.3 基于OpenID Connect 的认证与授权263
13.3.1 OpenID Connect(OIDC)
简介264
13.3.2 OIDC 与Keycloak264
13.3.3 使用OpenID Connect 访问受保护的资源.266
13.3.4 测试授权码流程268
13.4 JSON Web 令牌和
MicroProfile JWT271
13.4.1 JWT 令牌的头部272
13.4.2 JWT 令牌的正文272
13.4.3 JWT 签名.274
13.5 使用MicroProfile JWT 为交易服务添加安全保护276
13.6 传递JWT278
13.6.1 为账户服务API 端点添加安全保护278
13.6.2 由交易服务向账户服务传递JWT 令牌.279
13.7 在Kubernetes 上运行服务.280
13.8 本章小结.281


★总结

本次送书 2 本 评论区抽2位小伙伴送书

活动时间:截止到 2023-10-22 20:00:00

抽奖方式:利用网络公开的在线抽奖工具进行抽奖

参与方式:关注、点赞、收藏,评论

随机抽取的2位小伙伴将免费获得此书!

小伙伴也可以访问链接进行自主购买哦~

京东特惠7.31折(京东物流快捷方便) -《Kubernetes原生微服务开发》

🔥 注:活动结束后,会私信中奖粉丝的,各位注意查看私信哦!
送书抽奖工具链接:https://blog.csdn.net/s445320/article/details/133349692文章来源地址https://www.toymoban.com/news/detail-712818.html

到了这里,关于构建新一代的K8s原生Java微服务+Quarkus实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 如何基于 Apache Doris 构建新一代日志分析平台

    如何基于 Apache Doris 构建新一代日志分析平台

    作者:肖康,SelectDB 技术 副总裁 、Apache Doris Committer 日志数据是企业大数据体系中重要的组成部分之一,这些数据记录了网络设备、操作系统以及应用程序的详细历史行为,蕴含了丰富的信息价值,在可观测性、网络安全、业务分析等关键业务领域发挥着重要作用,可帮助企

    2024年02月15日
    浏览(17)
  • 一文详解新一代高效前端构建工具VITE-达观数据

    一文详解新一代高效前端构建工具VITE-达观数据

    Vite 是一个快速、简单且高效的前端构建工具,它的出现为前端开发者带来了新的构建体验。在本文中,我们将探讨 Vite 的技术原理、优点和使用方法。 Vite 的技术原理 Vite 的核心技术是基于 ES Modules 和浏览器原生模块系统的构建工具。Vite 的构建过程是基于 ES Modules 实现的,

    2024年02月16日
    浏览(16)
  • 腾讯大数据 x StarRocks|构建新一代实时湖仓

    2023 年 9 月 26 日,腾讯大数据团队与 StarRocks 社区携手举办了一场名为“构建新一代实时湖仓”的盛大活动。活动聚集了来自腾讯大数据、腾讯视频、腾讯游戏、同程旅行以及 StarRocks 社区的技术专家,共同深入探讨了湖仓一体技术以及其应用实践等多个备受瞩目的话题,观看

    2024年02月07日
    浏览(12)
  • 百度安全七大开源项目构建新一代人工智能安全技术栈

    新技术、新业态催生了传统网络安全格局的深刻变革。伴随移动互联网,大数据、云计算、人工智能等新一代信息技术的快速发展,围绕网络和数据的服务与应用呈现爆发式增长,智能设备将无所不在,智能家居、无人车、物联网将渗透到人类社会的各个角落,丰富的应用场

    2024年02月22日
    浏览(14)
  • 中国在构建新一代人工智能开放平台方面的策略与目标

    作者:禅与计算机程序设计艺术 随着人工智能技术的不断提升和应用,传统的人工智能解决方案正在被颠覆。越来越多的公司和机构都在探索着如何利用人工智能技术实现更高效、更可靠、更智能的业务模型。近年来,中国政府已经率先开启了构建新一代人工智能开放平台的

    2024年02月07日
    浏览(13)
  • 如何构建新一代实时湖仓?袋鼠云基于数据湖的探索升级之路

    如何构建新一代实时湖仓?袋鼠云基于数据湖的探索升级之路

    在之前的实时湖仓系列文章中,我们已经介绍了实时湖仓对于当前企业数字化转型的重要性,实时湖仓的功能架构设计,以及实时计算和数据湖结合的应用场景。 在本篇文章中,将介绍袋鼠云数栈在构建实时湖仓系统上的探索与落地实践,及未来规划。 数栈作为一个数据开

    2024年02月05日
    浏览(14)
  • 腾讯安全周斌:用模型对抗,构建新一代业务风控免疫力

    腾讯安全周斌:用模型对抗,构建新一代业务风控免疫力

    6月13日,腾讯安全联合IDC发布“数字安全免疫力”模型框架,主张将守护企业数据和数字业务两大资产作为企业安全建设的核心目标。腾讯安全副总裁周斌出席研讨论坛并发表主题演讲,他表示, 在新技术的趋势影响下,黑灰产的攻击行为会进一步模拟真人行为,传统基于过

    2024年02月09日
    浏览(13)
  • AutoMQ 携手阿里云共同发布新一代云原生 Kafka,帮助得物有效压缩 85% Kafka 云支出!

    3 月 9 日, “AutoMQ x  阿里云云原生创新论坛” 在阿里巴巴西溪园区圆满落幕。本次论坛现场不仅重磅发布了新一代云原生 Kafka 产品(AutoMQ On-Prem 版),还邀请了来自得物的稳定生产负责人分享 AutoMQ 在生产场景中的应用实践,以及阿里云的资深专家为大家剖析多 AZ 块存储的

    2024年03月17日
    浏览(14)
  • 轻松并发,玩转StampedLock——Java 新一代读写锁

      在并发编程中,读写锁是一种常用的技术来保证数据的安全性和高效性。Java 中的 ReadWriteLock 可以让多个线程同时读取共享资源而不会出现竞争,只有在写操作时才需要独占资源。但是,如果我们想要在读操作时也可以同时写入,就需要使用 Java 8 引入的新的读写锁:St

    2024年02月03日
    浏览(8)
  • Spring Cloud Gateway - 新一代微服务API网关

    Spring Cloud Gateway - 新一代微服务API网关

    如果没有网关,难道不行吗?功能上是可以的,我们直接调用提供的接口就可以了。那为什么还需要网关? 因为网关的作用不仅仅是转发请求而已。我们可以试想一下,如果需要做一个请求认证功能,我们可以接入到 API 服务中。但是倘若后续又有服务需要接入,我们又需要

    2024年02月16日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包