新書推薦:
《
汗青堂丛书138·帝国的切口:近代中国口岸的冲突与交流(1832-1914)
》
售價:HK$
127.4
《
人世事,几完缺 —— 啊,晚明
》
售價:HK$
115.6
《
樊树志作品:重写明晚史系列(全6册 崇祯传+江南市镇的早期城市化+明史十二讲+图文中国史+万历传+国史十六讲修订版)
》
售價:HK$
498.0
《
真谛全集(共6册)
》
售價:HK$
1156.4
《
敦煌通史:魏晋北朝卷
》
售價:HK$
162.3
《
唯美手编16:知性优雅的编织
》
售價:HK$
54.9
《
情绪的惊人力量:跟随内心的指引,掌控情绪,做心想事成的自己
》
售價:HK$
50.4
《
棉的全球史(历史·文化经典译丛)
》
售價:HK$
109.8
|
編輯推薦: |
Quarkus是开发云原生微服务时的主流架构。《Quarkus云原生微服务开发实战》融合了云原生领域资深专家14年一线工作经验,以一个完整的实战应用的开发过程作为主线,介绍如何以Quarkus为框架来开发微服务架构的云原生应用。双色印刷,突出重点,并配有二维码视频,使读者身临其境,迅速、深入地掌握各种经验和技巧。
|
內容簡介: |
《Quarkus云原生微服务开发实战》以一个完整的实战应用的开发过程作为主线,介绍如何以Quarkus为框架来开发微服务架构的云原生应用。书中介绍了微服务和云原生开发的各个方面,包括微服务的开发和测试以及在Kubernetes上的部署运行,还包括应用的可观察性、安全和服务调用的健壮性等非功能性需求。通过本书的介绍,读者可以了解一个真实的云原生应用的开发过程,并学会如何从头开始开发个人的应用。
《Quarkus云原生微服务开发实战》适合从事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
|
內容試閱:
|
微服务和云原生是当前比较热门的技术概念。云原生微服务架构是微服务架构和云原生技术的结合。微服务作为一种架构风格,所解决的问题是复杂软件系统的架构与设计。云原生技术作为一种实现方式,所解决的问题是复杂软件系统的运行和维护。这两者相辅相成,是开发复杂软件系统的选择之一。
《Quarkus云原生微服务开发实战》以一个外卖点餐应用的后台服务作为实战示例,详细介绍了微服务架构的云原生应用的完整开发过程。开发微服务时使用的框架是Java平台上的Quarkus。在GraalVM的支持下,Quarkus应用可以打包成启动速度快、资源消耗少、体积小的原生可执行文件。这一点对于云原生应用来说至关重要。
第1章到第4章介绍云原生微服务相关的背景知识和Quarkus的核心概念。第1章介绍云原生微服务和Quarkus的基本概念。第2章介绍Quarkus应用的创建和代码的组织结构,并对Quarkus应用的开发流程,以及实战示例进行了介绍。第3章介绍了Quarkus中依赖注入的实现方式,包括Bean的使用、拦截器和事件相关的内容。第4章介绍Quarkus应用的配置管理,包括使用不同的配置源保存配置信息,以及如何在应用中读取配置项的值。
第5章到第7章介绍不同微服务的开发模式。每一章以实战应用的一个微服务作为示例,详细说明每种开发模式的实现细节。第5章介绍的微服务以关系型数据库作为存储,并发布REST API。微服务之间使用同步的API调用。第6章介绍的微服务发布gRPC API,微服务之间使用Apache Kafka进行异步消息传递。第7章介绍的微服务使用反应式编程开发,微服务之间使用反应式流进行交互。这3章的内容涵盖了大部分微服务的实现模式。
第8到第10章主要介绍与微服务的部署和运维相关的内容,属于非功能性需求相关的部分。第8章介绍了如何将云原生应用打包成容器镜像,并部署到Kubernetes。第9章介绍了如何产生可观察性相关的数据,包括性能指标数据、分布式追踪信息、日志和异常信息等。第10章介绍了应用安全相关内容,包括用户管理、认证和授权,同时还介绍了如何保证服务调用的健壮性。这3章介绍的内容虽然与具体的业务无关,但却是实际应用中必不可少的功能。
第11章介绍了Quarkus的一些附加功能,包括创建计划任务、创建命令行程序、使用字符串模板、发送邮件和基于GraphQL的API组合等。
限于篇幅,书中只对实战应用中的部分代码进行了介绍。完整的代码请参考代码仓库(https://github.com/alexcheng1982/happy-takeaway)。
由于本人水平有限,疏漏之处在所难免,恳请广大读者批评指正。
|
|