【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

Vert.x 3.3.0 增强了网络、微服务、测试等特性

  • 2016-07-04
  • 本文字数:1482 字

    阅读完需:约 5 分钟

Vert.x 发布了其工具集的 3.3.0 版本。该工具集用于基于 JVM 构建反应式、分布式、多语言应用程序。

该版本提供了大量的新特性和改进,下面将介绍其中最重要的内容。

网络

Vert.x 3.3.0 内置支持 HTTP2,允许开发人员创建 HTTP2 客户端和服务器,包括 H2C 和 HTTP2 push。

HTTP/2 是一个帧协议,使用帧表示 HTTP 请求和响应。该版本允许应用程序在请求上使用 customFrameHandler 方法接收自定义帧,每次有自定义帧到达时,该方法都会被调用。下面是文档中提供的一个例子:

复制代码
request.customFrameHandler(frame -> {
System.out.println("Received a frame type=" + frame.type() +
" payload" + frame.payload().toString());
});

该版本还新增了对 Socks5 和 HTTP 代理的支持,允许用户在配置 TCP 和 HTTP 客户端时配置代理设置。

在 Java 中,DNS 域名解析是一个阻塞事务,使用一个比较慢的 DNS 服务可能会长时间阻塞 Vert.x 事件循环,这与 Vert.x 的宗旨不符:“永不阻塞事件循环”。为了避免这种情况,Vert.x 3.3.0 集成了一个异步 DNS 解析器。现在,当创建 HTTP 客户端或者 TCP 客户端时,主机名解析会异步进行。在 TCP 和 HTTP 服务器初始化时也会用到这个异步解析器。

Vert.x 事件总线是 Vert.x 应用程序的骨架。它允许 Vert.x 应用程序的不同部分通过消息进行通信。以前,用户是无法对这类通信的 TCP 层面进行配置的,但在 3.3.0 版本中,你可以配置通信的所有层面,包括 SSL,因此,你可以通过事件总线安全地交换消息。

集成

Vert.x 应用程序通常会集成进更大的系统,Vert.x 3.3.0 改进了 Vert.x 与系统其他部分的交互方式。首先,它提供了同 Apache Camel 的桥接功能,后者是一个流行的集成框架,提供了超过 100 个组件来连接各种应用程序。

Vert.x 3.3.0 提供了一个 RabbitMQ 客户端、一个 AMQP 1.0 客户端和桥接器。AMQP 1.0 是一种流行的跨平台消息协议,可以广泛应用于多种场景。

鉴于安全是任何互联网应用程序的一个核心问题,Vert.x 3.3.0 增加了对 OAuth 2 身份验证机制的支持,因此,你现在可以轻松地将应用程序连接到任何 OAuth 2 提供商,比如 Google、LinkedIn、Github、KeyCloak、Twitter 和 Facebook。

微服务

自创建之初,Vert.x 就成为了微服务架构的先驱,但有关微服务的实践已经发生了变化,在 Vert.x 3.3.0 中,我们提供了如下两个特性:

  • 服务发现
  • 断路器

服务发现是一种提升服务位置透明度的方法;服务是在运行时发现的,服务位置不需要硬编码。使用 Consul 或 Kubernetes 可以扩展服务发现的支持环境。

Vert.x 总是将故障作为一等公民,但有时候,你需要更为高级的故障管理,尤其是要避免对(故障)服务施加过大的压力。针对这种情况,Vert.x 提供了自己的断路器模式实现。

监控

Vert.x 3.3.0 还扩展了收集的指标集合。当然,这为 HTTP2 提供了支持,但它还让更好地监控由 Vert.x 管理的线程成为可能。例如,现在可以监控工作队列了,这样就可以对它的大小进行配置以满足你的需求。

此外,为了改进调优功能,JDBC 连接池还增强了反馈指标。

使用 Vert.x 编程

Vert.x 3.3.0 还改进了开发模型,包括改进用于并行执行任务的 Futures 类的构成,简化了异步操作的链接。

应用程序测试至关重要,经过改进的 Vert.x Unit 允许使用任何断言框架。你不必再局限于由TestContext提供的断言;你可以使用 Hamcrest、 AssertJ 或 Rest-Assured。

上述只是其中的部分特性和改进。 Vert.x 3.3.0 提供的其他特性和改进还有许多,包括 JDBC 批处理支持、Redis geo 指令,等等。要了解更多信息,请查看 Vertx.io 网站。

查看英文原文 Vert.x 3.3.0 Features Enhanced Networking Microservices, Testing and more

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2016-07-04 19:002866
用户头像

发布了 1008 篇内容, 共 373.5 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

蚂蚁金服+拼多多+抖音+天猫Java面经合集,金九银十Java开发校招社招福音!

编程susu

Java 编程 程序员 计算机 技术宅

内核热补丁,真的安全么?| 龙蜥技术

OpenAnolis小助手

操作系统 内核 热替换

公司刚来的京东架构师:看完我写的spring笔记,甩给了我一份文档

编程菌

Java 编程 程序员 计算机 技术宅

撒花!!金九银十喜提offer!秋招蚂蚁金服Java研发岗四面

编程菌

Java 编程 程序员 计算机 技术宅

centos7中docker安装

消失的子弹

Docker Kubernetes 云原生

云小课|原来云备份不仅仅是能备份...

华为云开发者联盟

云备份 迁移数据 复制备份

27岁到来之际,我在阿里实现了年薪40W+的小目标

编程菌

Java 编程 程序员 计算机 技术宅

netty系列之:轻轻松松搭个支持中文的服务器

程序那些事

Java Netty 程序那些事

C#多线程开发-线程基础 01

Andy阿辉

C# 多线程 8月日更 c#多线程

Spring的七大模块你了解吗?

4ye

Java spring 架构 后端 8月日更

最近很火的低代码到底是什么?

禅道项目管理

低代码 可视化 低代码平台

【浪潮云说】直播间第七期今日准时开播!

浪潮云

云计算运维

“不服跑个分?” 是噱头还是实力?| 龙蜥技术

OpenAnolis小助手

内核 Cgroups CFS调度器

Linux之tr命令

入门小站

Linux

微信业务架构&学生管理系统架构选型

John

python实现两台不同主机之间进行通信(客户端和服务端)——Socket

Python研究者

8月日更

06. 第三次AI浪潮:有何不同?

数据与智能

人工智能

LeetCode 每日一题「搜索插入位置」

陈皮的JavaLib

Java 面试 算法 LeetCode 8月日更

Rust从0到1-高级特性-函数和闭包进阶

rust 闭包 函数指针

做了好几年Java开发,一直碌碌无为,如今靠着这份面试题跟答案,我从15K变成了30K

编程susu

Java 编程 程序员 计算机 技术宅

比特币挖矿的未来只能依靠绿色能源?

CECBC

秒懂消息队列

yuexin_tech

消息队列

架构训练营第 1 期 模块六作业

高远

轮询锁在使用时遇到的问题与解决方案!

王磊

8月日更

Vue进阶(八十六):iframe 结合 window.postMessage 实现跨域通信

No Silver Bullet

Vue 8月日更 iframe

适女化科技(二):让女性更安全的两条技术路径:软件硬件化与硬件软件化

脑极体

最近很火的低代码到底是什么?

禅道项目管理

大前端 测试开发 语言 & 开发

去哪儿网库存搜索在高并发场景下的探索

Qunar技术沙龙

技术 高并发 投票机制

区块链在供应链金融应用优势与四类常见模式

CECBC

在线JSON转PHP Array工具

入门小站

工具

面试Go语言开发?让这本书帮你感动面试官!

博文视点Broadview

Vert.x 3.3.0增强了网络、微服务、测试等特性_Java_Clement Escoffier_InfoQ精选文章