写点什么

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

2016-07-04 19:003060
用户头像

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

关注

评论

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

微店API接口详解:如何高效获取商品详情及简短代码示例

代码忍者

官宣!通义灵码 AI 程序员全面上线

阿里巴巴云原生

阿里云 云原生 通义灵码

垂类大模型 | 领域专家:更高维度的认知参与

澳鹏Appen

模型幻觉 垂类大模型 领域专家

见证广州地铁11号线开通:30个智慧公厕点亮城市新风貌

光明源智慧厕所

智慧厕所如何颠覆传统公共设施?功能与价值全面解析

光明源智慧厕所

阿里巴巴1688 API接口深度解析:如何高效获取商品详情与SKU信息

代码忍者

CAD图纸分割与布局导出功能怎么用?

在路上

cad cad看图 CAD看图王

中微公司发明专利再获中国专利奖殊荣

新消费日报

点赞!TeleDB入选2024大数据星河案例!

天翼云开发者社区

云计算 大数据 云服务

IPv6升级改造三种技术方案优劣分析及选择

国科云

作业帮的一二面,难度不逊于各大厂

王中阳Go

面试

从0到1只需“拖一拖”,开发时间按秒算——低代码到底有多牛

JeeLowCode低代码平台

低代码开发 低代码前端 低代码,

唯品会API接口深度解析:商品详情与关键词搜索的高效应用

代码忍者

G1原理—G1回收器的分区机制

不在线第一只蜗牛

架构 JVM

沙利文公布2024企业级产品应用竞争力排名,百度智能云第一

新消费日报

天润融通助力一鸣食品,AI技术实现全渠道客户服务升级

天润融通

小白秒变行业专家,天润融通智能客服系统Copilot来帮忙!

天润融通

Python在多个Excel文件中找出缺失数据行数多的文件

快乐非自愿限量之名

Python Excel

《深入理解Mybatis原理》MyBatis数据源与连接池详解

EquatorCoco

数据库 mybatis

杭州铭师堂的云原生升级实践

阿里巴巴云原生

阿里云 云原生

解读ENS网络连接,面向多云多池网络的高效互联

快乐非自愿限量之名

Web 网络

官宣!通义灵码 AI 程序员全面上线

阿里云云效

阿里云 云原生 通义灵码

文献解读-Effectiveness of mRNA BNT162b2 COVID-19 vaccine up to 6 months in a large integrated health system in the USA: a retrospect

INSVAST

基因检测 临床试验 生信分析 Sentieon 变异检测

国际认可!天翼云合规领域影响力up!

天翼云开发者社区

云计算 天翼云

智慧公厕的定义、核心功能、优势与应用场景

光明源智慧厕所

Windows(Win10/Win11) 系统开机自启

玄兴梦影

开机自启

解读智慧厕所的环保与高效双重优势,助力可持续城市建设

光明源智慧厕所

区块链项目外包开发流程

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

第一!天翼云全面领跑智算云服务市场

天翼云开发者社区

云计算 云服务 天翼云

预见未来,智控风险:数据驱动风险管控新范式

用友智能财务

数据处理 财会

Java验证邮箱是否有用的实现与解析

不在线第一只蜗牛

Java 前端

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