写点什么

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

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

关注

评论

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

为什么CMS和G1都改用三色标记法,是可达性分析不香吗?

Java全栈架构师

Java 程序员 后端 JVM 架构师

2023主流系统 固资管理助力转型升级一步到位

加入高科技仿生人

低代码 企业数字化转型 资产管理

Seata-go 1.1.0 发布,补齐 AT 模式支持

SOFAStack

开源 互联网 开发者 开发 Seata框架

工业数字孪生:西门子工业网络与设备虚拟调试案例

Openlab_cosmoplat

工业互联网 开源社区 数字孪生

活动推荐 | 博睿数据数智领航营火热报名中

博睿数据

保险 博睿数据 活动报名 数智领航营

MQTT 5.0新特性:属性与载荷

EMQ映云科技

物联网 IoT mqtt 企业号 3 月 PK 榜 载荷

使用Nginx作为MySQL的TCP负载均衡器

Janwee

nginx 负载均衡 :MySQL 数据库

AREX-携程无代码侵入的自动化回归测试平台

AREX 中文社区

开源 自动化测试 回归测试

DBA必备的Mysql知识点:数据类型和运算符

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

十问babel

虎妞先生

前端工程化 babel 前端‘’

天工人巧日争新:昇腾AI的绚丽今日

脑极体

AI

什么大模型?我是时尚产业“大模王”!

脑极体

AI

办公要有新享法,「MIAOYUN生活梦想家」焕新升级!

MIAOYUN

搬迁公告 乔迁 办公升级

3d建筑软件:Vectorworks 2023激活版

真大的脸盆

Mac Mac 软件 3D建筑动画

尚硅谷Node.js实战教程发布

小谷哥

毕业设计

张贺

mybatis plus怎么使用注解的方式执行原生sql

俊俊哥

mybatis Mybatis-Plus 原生sql

倒计时2天:百度“文心一言”即将上线!

引迈信息

人工智能 低代码 AIGC ChatGPT 文心一言

我在京东做研发第五期:京东云自研服务器,如何将开发成本降低 60% 的同时还更低碳环保?

京东科技开发者

cpu 服务器 环保 节能 企业号 3 月 PK 榜

关于 SysOM 2.0 网络/存储相关诊断功能介绍及案例展示 | 第 72-73 期

OpenAnolis小助手

开源 直播 系统运维 技术分享 龙蜥大讲堂

EFCore之CodeFirst

青柚1943

ORM SqlServer NET6 EFCore

Java中让两个线程交替执行的实现方式

Janwee

并发 信号量 java 多线程、

提示工程在AI绘画领域中的应用

FinFish

AI绘画 提示工程

Rust的安全性和稳健型

非凸科技

最新Blender 3.3安装包+详细安装教程

Finovy Cloud

blender 3D软件

微信小程序管理软件助力企业数字化转型,实现智能化升级

FinFish

私有小程序技术 小程序管理平台 小程序技术 小程序管理

研发效能度量从 0 到 1 的『六脉神剑』

思码逸研发效能

研发效能 效能度量 研发效能度量

vue项目中babel的最佳实践

虎妞先生

前端 Vue 3 vue cli babel

Java线程池执行器的饱和策略

Janwee

线程池 java

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