《Vert.x实战》[73M]百度网盘|pdf下载|亲测有效
《Vert.x实战》[73M]百度网盘|pdf下载|亲测有效

Vert.x实战 pdf下载

出版社 清华大学出版社京东自营官方旗舰店
出版年 2022-06
页数 390页
装帧 精装
评分 9.0(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供Vert.x实战电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

Vert.x是Java虚拟机中一系列库的集合,它简化了基于事件的异步编程的过程。Vert.x应用程序可以处理各种繁杂的任务,如异步通信、并发处理、消息机制和数据持久化,并且它易于扩展、修改和维护。Vert.x由Eclipse Foundation支持,被Red Hat等公司使用,支持多种语言的代码。

  《Vert.x实战》教你使用Java构建具有产品级质量的反应式应用程序。本书涵盖了Vert.x的核心概念,以及异步编程和反应式编程的基本原理。通过阅读本书,你将掌握如何用Vert.x工具包开发微服务,如何与数据库通信,如何进行持久化的消息通信,以及如何测试应用程序的弹性。书中包含的各种模式和技术都可以转化到Vert.x以外的其他反应式技术和框架中。


内容简介

主要内容
● 如何构建反应式的服务
● 如何对外部服务的故障做出响应
● 如何进行水平扩展
● Vert.x工具包的架构及其测试方式
● 如何基于Docker和Kubernetes部署服务

作者简介

 本书作者Julien Ponge是Red Hat公司的首席软件工程师,致力于Eclipse Vert.x项目。

精彩书评

Vert.x 是JVM上一款非常优秀的反应式框架,本书从各个方面详实地介绍了Vert.x在各种场景下的应用,相信您一定可以从本书中获益颇丰。
——何品 ,淘宝反应式架构升级小组成员


“如果你想了解Vert.x及其工作原理,以及利用它的最佳方式,那么本书正适合你。”
——Sanket Naik,
Aruba Networks


“本书全面概述了Vert.x框架的功能,并深入介绍了广义上的反应式编程。强烈推荐!”
——Damian Esteban,
BetterPT


“这是用于构建弹性Java应用程序的完整工具箱。”
——Michal Ambroziewicz,
KYP.ai


“本书包含构建可靠的大规模并发应用程序所需的全部信息。”
——Jerry Stralko,
Wolters Kluwer

目录

第Ⅰ部分 基于Vert.x的异步编程基本原理

第1章 Vert.x、异步编程和反应式系统 3

1.1 分布式和网络化是常态 3

1.2 我们不是在孤岛上生活 4

1.3 网络上没有免费的午餐 5

1.4 简洁的阻塞式API 5

1.5 阻塞式API浪费了资源,增加了成本 7

1.6 基于非阻塞I/O的异步

编程 9

1.7 事件驱动的多路复用:事件循环 12

1.8 什么是反应式系统 15

1.9 反应式还有哪些含义 16

1.10 什么是Vert.x 17

1.11 你的第一个Vert.x应用 程序 18

1.11.1 准备项目 18

1.11.2 VertxEcho类 19

1.11.3 回调函数的角色 21

1.11.4 它是反应式的吗 22

1.12 Vert.x的替代品 23

1.13 本章小结 25

第2章 Verticle:Vert.x的基本处理单元 27

2.1 编写一个Verticle 27

2.1.1 准备项目 28

2.1.2 实现Verticle类 29

2.1.3 运行并初次观察 30

2.2 关于Verticle的更多细节 32

2.2.1 阻塞与事件循环 32

2.2.2 生命周期事件的异步通知 33

2.2.3 部署Verticle 35

2.2.4 传递配置参数 38

2.3 当代码需要阻塞时 39

2.3.1 Worker Verticle 39

2.3.2 executeBlocking方法 40

2.4 Verticle中到底有什么 42

2.4.1 Verticle及其环境 42

2.4.2 关于Verticle Context的更多细节 43

2.4.3 桥接Vert.x线程和非Vert.x线程 45

2.5 本章小结 46

第3章 事件总线:Vert.x应用程序的骨干 47

3.1 什么是事件总线 47

3.1.1 事件总线是不是另一种消息代理 48

3.1.2 “点对点”模式 49

3.1.3 “请求-应答”模式 49

3.1.4 “发布-订阅”模式 50

3.2 事件总线的示例 51

3.2.1 温度传感器Verticle 52

3.2.2 监听器Verticle 53

3.2.3 传感器数据Verticle 54

3.2.4 HTTP服务器Verticle 54

3.2.5 启动应用程序 58

3.3 集群化和分布式的事件总线 59

3.3.1 Vert.x中的集群 59

3.3.2 从事件总线到分布式事件总线 60

3.4 本章小结 63

第4章 异步数据和事件流 65

4.1 统一的流模型 65

4.2 什么是背压 68

4.3 开发一个音乐流点唱机 70

4.3.1 功能与用法 71

4.3.2 HTTP处理:宏观视图 73

4.3.3 点唱机Verticle的基础 73

4.3.4 传入的HTTP连接 75

4.3.5 尽可能高效地下载 76

4.3.6 读取MP3文件,但不能太快 77

4.4 解析简单的流 81

4.5 解析复杂的流 83

4.6 关于流获取模式的简短说明 86

4.7 本章小结 88

第5章 回调以外的异步编程模型 89

5.1 构建异步操作:一个边缘服务的示例 89

5.1.1 应用场景 90

5.1.2 温度传感器Verticle 91

5.1.3 快照服务Verticle 92

5.2 回调 93

5.2.1 实现 93

5.2.2 运行 95

5.2.3 “回调地狱”不是根本问题 96

5.3 Future和Promise 98

5.3.1 Vert.x中的Future和Promise 98

5.3.2 Vert.x 4中基于Future的API 100

5.3.3 与CompletionStage API的互操作 100

5.3.4 使用Vert.x Future特性实现的Collector

Service 102

5.4 反应式扩展 103

5.4.1 RxJava的简要说明 104

5.4.2 RxJava与Vert.x 107

5.4.3 用RxJava实现的CollectorService 108

5.5 Kotlin协程 111

5.5.1 什么是协程 111

5.5.2 Vert.x与Kotlin的协程 112

5.5.3 使用协程实现边缘服务 113

5.6 究竟应该用哪一种模型 115

5.7 本章小结 116

第6章 不只是事件总线 117

6.1 用服务API重新实现温度传感器 117

6.2 RPC的回归 118

6.3 定义服务接口 119

6.4 服务的实现 121

6.5 启用Proxy代码自动生成 122

6.6 部署事件总线服务 122

6.7 回调之外的服务代理 123

6.8 Vert.x中的测试 125

6.8.1 在Vert.x中使用JUnit 5 125

6.8.2 测试DataVerticle 126

6.8.3 运行测试 129

6.9 本章小结 129

第Ⅱ部分 用Vert.x开发反应式服务

第7章 设计一个反应式应用程序 133

7.1 反应式应用程序的必要条件 133

7.2 “一万步挑战” 134

7.3 一个应用程序,多个服务 137

7.4 服务规范 139

7.4.1 用户资料服务 139

7.4.2 数据收集服务 140

7.4.3 用户活动服务 141

7.4.4 对外接口服务 143

7.4.5 用户Web应用程序 144

7.4.6 事件统计服务 145

7.4.7 贺信服务 146

7.4.8 公告牌Web应用程序 146

7.5 运行应用程序 147

7.6 本章小结 149

第8章 Web技术栈 151

8.1 实现对外接口服务 152

8.1.1 路由HTTP请求 152

8.1.2 发起HTTP请求 154

8.2 用JWT令牌进行访问控制 156

8.2.1 使用JWT令牌 156

8.2.2 JWT令牌中有

什么 158

8.2.3 用Vert.x处理JWT令牌 159

8.2.4 用Vert.x签发JWT令牌 161

8.3 跨域资源共享(CORS) 162

8.3.1 问题在哪里 162

8.3.2 在Vert.x中支持CORS 164

8.4 一个现代化的Web前端 165

8.4.1 Vue.js 165

8.4.2 Vue.js应用程序结构及构建集成 166

8.4.3 后端集成的效果演示 168

8.4.4 在Vert.x中服务静态内容 170

8.5 编写集成测试 171

8.6 本章小结 175

第9章 Vert.x中的消息机制与事件流 177

9.1 用Vert.x实现基于事件驱动的服务 177

9.1.1 Vert.x为我们提供了什么 178

9.1.2 我们会用到的中间件和服务 179

9.1.3 AMQP和Message Broker简介 179

9.1.4 Kafka简介 180

9.2 通过HTTP和AMQP

可靠地接收消息 181

9.2.1 从AMQP接收数据 181

9.2.2 将AMQP消息转换成Kafka记录 183

9.2.3 从HTTP接收数据 185

9.3 发送贺信 186

9.3.1 监听每日步数变化 187

9.3.2 发送邮件 188

9.4 集成测试 190

9.4.1 测试收取功能 190

9.4.2 测试贺信功能 193

9.5 本章小结 196

第10章 用数据库进行持久化状态管理 197

10.1 数据库与Vert.x 197

10.1.1 Eclipse Vert.x支持的数据库客户端 198

10.1.2 数据对象映射并非必需 199

10.2 使用MongoDB的用户资料服务 200

10.2.1 数据模型 200

10.2.2 用户资料API Verticle及其初始化 201

10.2.3 校验用户输入 202

10.2.4 在MongoDB中添加用户 203

10.2.5 用户的认证 206

10.2.6 获取用户数据 207

10.2.7 更新用户数据 208

10.3 使用PostgreSQL的用户活动服务 209

10.3.1 服务的数据模型 209

10.3.2 打开一个连接池 210

10.3.3 设备更新事件的生命周期 210

10.3.4 插入新记录 211

10.3.5 生成设备的每日运动更新 213

10.3.6 用户活动服务的查询接口 214

10.4 集成测试 215

10.4.1 测试用户资料服务 215

10.4.2 测试用户活动服务接口 218

10.4.3 测试用户活动服务的事件处理 219

10.5 本章小结 222

第11章 端到端的实时反应式事件处理 223

11.1 使用Kafka和RxJava实现高级的流式数据处理 223

11.1.1 生成用户当天步数更新 224

11.1.2 计算数据收集服务的吞吐量 226

11.1.3 计算各城市的数据趋势 227

11.2 实时的反应式Web应用 程序 229

11.2.1 将Kafka消息转发至Vert.x事件总线 230

11.2.2 桥接事件总线和Web应用程序 231

11.2.3 Web应用程序基于Kafka消息的实时更新 233

11.3 流与状态 235

11.3.1 数据更新流 235

11.3.2 排名数据的水合阶段 235

11.3.3 根据消息流周期性地更新排名 237

11.4 本章小结 240

第12章 通过负载测试和混沌测试提升系统响应能力 241

12.1 初始实验:系统的性能 好吗 242

12.1.1 负载测试前的一些考量 242

12.1.2 用Locust模拟用户 243

12.1.3 用Hey进行负载测试 246

12.2 混沌测试 250

12.2.1 测试方案 250

12.2.2 用Pumba进行混沌测试 251

12.2.3 系统尚不具备回弹性 253

12.3 从“可扩展性”到“可扩展

性+回弹性” 254

12.3.1 强制超时 254

12.3.2 使用断路器 256

12.3.3 回弹性与后备策略 260

12.4 本章小结 264


前言/序言





时间回到2012年的一天,我正坐在一个舒适的电影院里参加Devoxx Belgium(在比利时召开的一年一度的Java开发者大会)。在我计划参加的众多会议里,有一场让我遇到了Tim Fox。他在这场会议中介绍了他的一个新项目——Vert.x。当时的Node.js正如日中天,回归异步编程成为所有涉及可扩展性问题的神奇解决方案。通过Tim那天的演讲,我(和许多其他与会者)确信他已经为JVM上的异步编程奠定了坚实的基础:Vert.x既包含Java生态系统的力量,又吸收了Node.js的优秀思想。使用Vert.x,可以抛开那些复杂的基于注解的框架和应用程序服务,转而编写简单的Java代码,这一点当时给我留下了深刻的印象。Vert.x就像一股新鲜空气。从那以后,我一直关注着这个项目。时间快进到几年以后:现在的我已经在Red Hat的Vert.x团队中工作了,这在2012年时我是不敢想象的!

在应用程序被部署到虚拟化环境和容器的时代,Vert.x变得越来越有意义。如今,我们对应用程序提出了很多期望:它应当能够扩展或收缩规模以适应波动的流量,且具有低延迟性,在其他系统出现故障时具备回弹能力,还可将尽可能多的应用程序打包到指定的服务器上。简而言之,我们需要的是资源高效、便于扩展且可靠的应用程序。

这正是反应式应用程序的意义所在:随着工作负载的增加和故障的发生,反应式应用程序的响应延迟始终都在可控范围内。Vert.x是构建这类反应式应用程序的坚实基础,但Vert.x本身并不是灵丹妙药。反应式应用程序的构建并不简单,开发人员不太可能像从货架上取货那样将它拿起来就用。在设计和开发反应式应用程序时,还需要一些方法论。

本书将探讨如何使用Vert.x编写反应式应用程序。在这个过程中,我们不仅会学习Vert.x,还会讨论一些关于异步编程的基础知识,并且学习如何评估一个应用程序是否真正实现了反应式。最后,也是很重要的一点:Vert.x很有趣,通过它的简单性,以及忘掉一些所谓的“最佳实践”,你会发现这是一场解放。