写点什么

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:003265
用户头像

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

关注

评论

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

联手豆包大模型,容联七陌打造更懂客户的智能客服

新消费日报

知识图谱融入向量数据库,带来RAG效果飞升

Zilliz

知识图谱 向量数据库 LLMs rag

TikTok养号推荐:海外独享原生IP

Ogcloud

TikTok tiktok运营 海外原生IP TikTok养号 tiktok矩阵

2025包装展-2025年广州国际包装供应链博览会

秋硕展览

浅谈kafka

京东科技开发者

用豆包MarsCode 和CozeAPI接口全自动做一个文生图组件

Trae

人工智能 大数据 AI Chat

SIGGRAPH Asia 2024 | 网易伏羲研究成果入选,3D面部动画技术再获新突破

网易伏羲

论文 网易伏羲

深度学习在视觉识别中的突破:从理论到实践

测吧(北京)科技有限公司

测试

【论文速读】|用于安全代码评估的大语言模型:一项多语言实证研究

云起无垠

《Programming from the Ground Up》阅读笔记:p217-p238

codists

汇编 编程人

SD-WAN帮助跨国企业实现网络加速

Ogcloud

网络加速 SD-WAN SD-WAN组网 SDWAN SD-WAN国际专线

国内外大模型应用的现状与未来:以ChatGPT、Mixtral和Llama为例

测吧(北京)科技有限公司

测试

2024年第3届海南跨博会及低空经济产业博览会

秋硕展览

文生图与文生视频:从文本到视觉的创作革命

测吧(北京)科技有限公司

测试

AI时代,2024火山引擎飞连新品发布会盛大开启

新消费日报

AIGC技术的变革:语音识别与视觉识别的深度融合

测吧(北京)科技有限公司

测试

智能体Agent应用的前沿:图文、短视频与流程图的生成技术

测吧(北京)科技有限公司

测试

除了deadline,我们还能用什么驱动开发?

思码逸研发效能

程序员 DevOps 软件开发 编码 IT 运维

安全基础设施如何形成统一生态标准?OASA 硬件安全合作计划启动 | 2024 龙蜥大会

OpenAnolis小助手

安全 操作系统 龙蜥社区 龙蜥操作系统大会 龙蜥社区安全联盟

同风起,耀星河!华为携手伙伴一起创造无限可能

HarmonyOS开发者

HarmonyOS

检索增强生成(RAG)技术在知识图谱中的应用:Neo4j的探索

测吧(北京)科技有限公司

测试

实现MySQL异地多活场景

NineData

数据一致性 数据同步 异地多活 NineData 单元节点

【免费可视化仪表盘】轻松实现静态/动态数据可视化图表—积木仪表盘

JEECG低代码

数据分析 数据可视化 BI 报表 数据仪表盘

全局视角看技术-Java多线程演进史

京东科技开发者

开源大模型的私有部署:Llama与千问的比较研究

测吧(北京)科技有限公司

测试

大模型在商业领域的应用:如何提升决策效率与用户体验

测吧(北京)科技有限公司

测试

智能合约与大语言模型的结合:未来的应用场景探索

测吧(北京)科技有限公司

测试

制造已然走出国门,数据如何走向全球?

奇点云

人工智能 AI 互联网 软件 制造业

谈JVM xmx, xms等内存相关参数合理性设置

京东科技开发者

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